aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar scragly <[email protected]>2019-02-09 13:55:18 +1000
committerGravatar GitHub <[email protected]>2019-02-09 13:55:18 +1000
commitb6245adcf1499c8b6af0c10664c5cd483ef0b14c (patch)
tree72afd04365efa24c12fae32478c11b70c6b82d5b
parentMerge pull request #99 from python-discord/config-update (diff)
parentfixed the issues (diff)
Merge pull request #105 from RohanJnr/savethedate_iceman
Added the command savethedate. Co-authored-by: null <[email protected]>
-rw-r--r--bot/constants.py1
-rw-r--r--bot/resources/valentines/date_ideas.json127
-rw-r--r--bot/seasons/valentines/savethedate.py41
3 files changed, 169 insertions, 0 deletions
diff --git a/bot/constants.py b/bot/constants.py
index 63f923d4..ec8a1a4d 100644
--- a/bot/constants.py
+++ b/bot/constants.py
@@ -61,6 +61,7 @@ class Client(NamedTuple):
class Colours:
soft_red = 0xcd6d6d
soft_green = 0x68c290
+ bright_green = 0x01d277
dark_green = 0x1f8b4c
orange = 0xe67e22
pink = 0xcf84e0
diff --git a/bot/resources/valentines/date_ideas.json b/bot/resources/valentines/date_ideas.json
new file mode 100644
index 00000000..09d31067
--- /dev/null
+++ b/bot/resources/valentines/date_ideas.json
@@ -0,0 +1,127 @@
+{
+ "ideas": [
+ {
+ "name": "Chick flick marathon",
+ "description": "This is a very basic yet highly romantic way of spending the day with your partner. Take a few days to prepare the right playlist and create a romantic atmosphere at home. You can order out some food, open a bottle of wine and cuddle up in front of the TV."
+ },
+
+ {
+ "name": "Recreate your first date",
+ "description": "Rated pretty high on the “romantic gestures scale,” this is guaranteed to impress your significant other. It requires a good memory and a bit of work to make it just right, but it is well worth it. Walk down the same streets where you first kissed and have a couple of drinks in that old coffee shop where you had your first drinks together. Don’t be afraid to spend a bit extra and add a little romantic gift into the mix."
+ },
+ {
+ "name": "Cook for your loved one",
+ "description": "Start researching good recipes for a romantic dinner for two, get the right ingredients and prepare a couple of practice dinners to make sure you’ve got your technique and presentation down pat. Cooking for someone can be a big turn on and you can create some incredible meals without spending too much money. Take it up a notch by dressing classy, decorating your dining room and presenting your partner with a printed menu."
+ },
+ {
+ "name": "Organize your very own ancient Greek party",
+ "description": "Here’s another one of those creative date ideas for the stay-at-home couple. The ancient Greek private party can be a very fun and erotic experience. You can decorate by using big bowls full of grapes, spreading some white sheets all over the place, placing some plastic vines here and there, putting up a few posters depicting Greek parties and having plenty of wine lying around. Wear nothing but light sheets or costumes and channel some of that hot-blooded Greek spirit."
+ },
+ {
+ "name": "A romantic weekend getaway in the mountains",
+ "description": "For those looking for a change of scenery and an escape from the busy city, there is nothing better than a quiet, romantic weekend in the mountains. There are plenty of fun activities like skiing that will keep you active. You can have fun making a snowman or engaging in a snowball fight, and, of course, there is plenty of privacy and great room service waiting for you back at your room."
+ },
+ {
+ "name": "Fun day at the shooting range",
+ "description": "A bit unconventional but an incredibly fun and exciting date that will get your blood pumping and put a huge smile on your faces. Try out a number of guns and have a bit of a competition. Some outdoor ranges have fully automatic rifles, which are a blast to shoot."
+ },
+ {
+ "name": "Rent an expensive sports car for a day",
+ "description": "Don’t be afraid to live large from time to time—even if you can’t afford the glamorous lifestyle of the stars, you can most definitely play pretend for a day. Put on some classy clothes and drive around town in a rented sports car. The quick acceleration and high speed are sure to provide an exhilarating experience. "
+ },
+ {
+ "name": "Go on a shopping spree together",
+ "description": "Very few things can elicit such a huge dopamine rush as a good old shopping spree. Get some new sexy lingerie, pretty shoes, a nice shirt and tie, a couple of new video games or whatever else you need or want. This is a unique chance to bond, have fun and get some stuff that you’ve been waiting to buy for a while now."
+ },
+ {
+ "name": "Hit the clubs",
+ "description": "For all the party animals out there, one of the best date ideas is to go out drinking, dancing, and just generally enjoying the night life. Visit a few good clubs, then go to an after-party and keep that party spirit going for as long as you can."
+ },
+ {
+ "name": "Spend the day driving around the city and visiting new places",
+ "description": "This one is geared towards couples who have been together for a year or two and want to experience a few new things together. Visit a few cool coffee places on the other side of town, check out interesting restaurants you’ve never been to, and consider going to see a play or having fun at a comedy club on open mic night."
+ },
+ {
+ "name": "Wine and chocolates at sunset",
+ "description": "Pick out a romantic location, such as a camping spot on a hill overlooking the city or a balcony in a restaurant with a nice view, open a bottle of wine and a box of chocolates and wait for that perfect moment when the sky turns fiery red to embrace and share a passionate kiss."
+ },
+ {
+ "name": "Ice skating",
+ "description": "There is something incredibly fun about ice skating that brings people closer together and just keeps you laughing (maybe it’s all the falling and clinging to the other person for dear life). You can have some great fun and then move on to a more private location for some alone time."
+ },
+ {
+ "name": "Model clothes for each other",
+ "description": "This one goes well when combined with a shopping spree, but you can just get a bunch of your clothes—old and new—from the closet, set up a catwalk area and then try on different combinations. You can be stylish, funny, handsome and sexy. It’s a great after-dinner show and a good way to transition into a more intimate atmosphere."
+ },
+ {
+ "name": "Dance the night away",
+ "description": "If you and your significant other are relatively good dancers, or if you simply enjoy moving your body to the rhythm of the music, then a night at salsa club or similar venue is the perfect thing for you. Alternatively, you can set up dance floor at home, play your favorite music, have a few drinks and dance like there is no tomorrow."
+ },
+ {
+ "name": "Organize a nature walk",
+ "description": "Being outside has many health benefits, but what you are going for is the beautiful view, seclusion, and the thrill of engaging in some erotic behavior out in the open. You can rent a cottage far from the city, bring some food and drinks, and explore the wilderness. This is nice way to spice things up a bit and get away from the loud and busy city life."
+ },
+ {
+ "name": "Travel abroad",
+ "description": "This takes a bit of planning in advance and may be a bit costly, but if you can afford it, there are very few things that can match a trip to France, Italy, Egypt, Turkey, Greece, or a number of other excellent locations."
+ },
+ {
+ "name": "Go on a hot-air balloon ride",
+ "description": "These are very fun and romantic—you get an incredible view, get to experience the thrill of flying, and you’ve got enough room for a romantic dinner and some champagne. Just be sure to wear warm clothes, it can get pretty cold high up in the air."
+ },
+ {
+ "name": "A relaxing day at the spa",
+ "description": "Treat your body, mind and senses to a relaxing day at the spa. You and your partner will feel fresh, comfortable, relaxed, and sexy as hell—a perfect date for the more serious couples who don’t get to spend as much time with each other as they’d like."
+ },
+ {
+ "name": "Fun times at a karaoke bar",
+ "description": "A great choice for couples celebrating their first Valentine’s Day together—it’s fairly informal and inexpensive, yet incredibly fun and allows for deeper bonding. Once you have a few drinks in your system and come to terms with the fact that you are making a complete fool of yourself, you’ll have the time of your life!"
+ },
+ {
+ "name": "Horseback riding",
+ "description": "Horseback riding is incredibly fun, especially if you’ve never done it before. And what girl doesn’t dream of a prince coming to take her on an adventure on his noble steed? It evokes a sense of nobility and is a very good bonding experience."
+ },
+ {
+ "name": "Plan a fun date night with other couples",
+ "description": "Take a break and rent a cabin in the woods, go to a mountain resort, a couple’s retreat, or just organize a huge date night at someone’s place and hang out with other couples. This is a great option for couples who have spent at least one Valentine’s Day together and allows you to customize your experience to suit your needs. Also, you can always retire early and get some alone time with your partner if you so desire."
+ },
+ {
+ "name": "Go to a concert",
+ "description": "There are a whole bunch of things happening around Valentine’s Day, so go online and check out what’s happening near you. You’ll surely be able to find tickets for a cool concert or some type of festival with live music."
+ },
+ {
+ "name": "Fancy night on the town",
+ "description": "Buy some elegant new clothes, rent a limo for the night and go to a nice restaurant, followed by a jazz club or gallery exhibition. Walk tall, make a few sarcastic quips, and have a few laughs with your partner while letting your inner snob take charge for a few hours."
+ },
+ {
+ "name": "Live out a James Bond film at a casino",
+ "description": "A beautiful lady in a simple yet sensual, form-fitting, black dress, and a strong and handsome, if somewhat stern-looking man in a fine suit walk up to a roulette table with drinks in hand and place bets at random as they smile at each other seductively. This is a scenario most of us wish to play out, but rarely get a chance. It can be a bit costly, but this is one of the most incredibly adventurous and romantic date ideas."
+ },
+ {
+ "name": "Go bungee jumping",
+ "description": "People in long-term relationships often talk about things like keeping a relationship fun and exciting, doing new things together, trusting each other and using aphrodisiacs. Well, bungee jumping is a fun, exhilarating activity you can both enjoy; it requires trust and the adrenaline rush you get from it is better than any aphrodisiac out there. Just saying, give it a shot and you won’t regret it. "
+ },
+ {
+ "name": "Play some sports",
+ "description": "Some one-on-one basketball, a soccer match against another couple, a bit of tennis, or even something as simple as a table tennis tournament (make it fun by stripping off items of clothing when you lose a game). You can combine this with date idea #13 and paint team uniforms on each other and play in the nude."
+ },
+ {
+ "name": "Take skydiving lessons",
+ "description": "An adrenaline-filled date, skydiving is sure to get your heart racing like crazy and leave you with a goofy grin for the rest of the day. You can offset all the excitement by ending the day with a quiet dinner at home."
+ },
+ {
+ "name": "Go for some paintball",
+ "description": "Playing war games is an excellent way to get your body moving, focus on some of that hand-eye-coordination, and engage your brain in coming up with tactical solutions in the heat of the moment. It is also a great bonding experience, adrenaline-fueled fun, and role-playing all wrapped into one. And when you get back home, you can always act out the wounded soldier scenario."
+ },
+ {
+ "name": "Couples’ Yoga",
+ "description": "Getting up close, hot, and sweaty? Sounds like a Valentine’s Day movie to me. By signing up with your partner for a couples’ yoga class, you can sneak in a workout while getting some face-to-face time with your date.This type of yoga focuses on poses that can be done with a partner, such as back-to-back bends, assisted stretches, and face-to-face breathing exercises. By working out together, you strengthen your bond while stretching away the stress of the week. Finish the date off by heading to the juice bar for a smoothie, or indulging in healthy salads for two. Expect to spend around $35 per person, or approximately $50 to $60 per couple."
+ },
+ {
+ "name": "Volunteer Together",
+ "description": "Getting your hands dirty for a good cause might not be the first thing that pops into your mind when you think “romance,” but there’s something to be said for a date that gives you a glimpse of your partner’s charitable side. Consider volunteering at an animal rescue, where you might be able to play with pups or help a few lovebirds pick out their perfect pet. Or, sign up to visit the elderly at a care center, where you can be a completely different kind of Valentine for someone in need."
+ }
+ ]
+}
+
+
diff --git a/bot/seasons/valentines/savethedate.py b/bot/seasons/valentines/savethedate.py
new file mode 100644
index 00000000..a9bddd34
--- /dev/null
+++ b/bot/seasons/valentines/savethedate.py
@@ -0,0 +1,41 @@
+import logging
+import random
+from json import load
+from pathlib import Path
+
+import discord
+from discord.ext import commands
+
+from bot.constants import Colours
+
+log = logging.getLogger(__name__)
+
+HEART_EMOJIS = [":heart:", ":gift_heart:", ":revolving_hearts:", ":sparkling_heart:", ":two_hearts:"]
+
+
+class SaveTheDate:
+ """
+ A cog that gives random suggestion, for a valentines date !
+ """
+
+ def __init__(self, bot):
+ self.bot = bot
+
+ @commands.command()
+ async def savethedate(self, ctx):
+ with open(Path('bot', 'resources', 'valentines', 'date_ideas.json'), 'r', encoding="utf8") as f:
+ valentine_dates = load(f)
+ random_date = random.choice(valentine_dates['ideas'])
+ emoji_1 = random.choice(HEART_EMOJIS)
+ emoji_2 = random.choice(HEART_EMOJIS)
+ embed = discord.Embed(
+ title=f"{emoji_1}{random_date['name']}{emoji_2}",
+ description=f"{random_date['description']}",
+ colour=Colours.pink
+ )
+ await ctx.send(embed=embed)
+
+
+def setup(bot):
+ bot.add_cog(SaveTheDate(bot))
+ log.debug("Save the date cog loaded")