From b72305330aa95a0fbbfd4ab4e2ebd440d163e3d0 Mon Sep 17 00:00:00 2001 From: deurstann <tristan.derouet@gmail.com> Date: Fri, 8 Jan 2021 02:28:26 +0100 Subject: [PATCH] Added birthday feature : show me a/an/more DAY MONTH --- launch.py | 38 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 36 insertions(+), 2 deletions(-) diff --git a/launch.py b/launch.py index 153bd4d..b311bd7 100644 --- a/launch.py +++ b/launch.py @@ -5,6 +5,8 @@ import random import re import csv import aiohttp +import requests +import datetime from dotenv import load_dotenv @@ -14,6 +16,7 @@ TOKEN = os.getenv('DISCORD_TOKEN') SECRET = os.getenv('REDDIT_SECRET') REDDIT_ID = os.getenv('REDDIT_ID') REDDIT_AGENT = os.getenv('REDDIT_AGENT') +HTTP_USER_AGENT = os.getenv('HTTP_USER_AGENT') PROXY = os.getenv('PROXY') postLimit = int(os.getenv('POST_LIMIT')) @@ -79,6 +82,29 @@ def create_embed(post,author,posturl): def send_waifu(post, author, posturl): return 'https://www.reddit.com' + str(posturl) + ' [' + str(author) + ']' +def verify_date(day,month): + try: + datetime.datetime.strptime(day+"-"+month,"%d-%m") + except ValueError: + return False + return True + +def create_embed_birthday(day,month): + embed = discord.Embed( + color = discord.Colour.blue() + ) + if month[0]=='0':month=month[1] + if day[0]=='0':day = day[1] + url = "http://www.animecharactersdatabase.com/api_series_characters.php?month="+month+"&day="+day + request = requests.get(url,headers = {"User-Agent":HTTP_USER_AGENT}) + request_json = request.json() + characters = request_json["characters"] + selected_character = characters[random.randint(0,len(characters))] + embed.set_image(url=selected_character["character_image"]) + embed.description = selected_character["name"] + return embed + + refresh_all_posts() if PROXY != "": @@ -96,18 +122,26 @@ async def on_message(message): return lower = message.content.lower() if lower == "show me an help" or lower == "show me a help": - mess = "Usage : ``show me a xxxx`` or ``show me an xxxx`` or ``show me more xxxx``\nCurrently, I can show :```" + mess = "Usage : ``show me a xxxx`` or ``show me an xxxx`` or ``show me more xxxx`` or ``show me a/an/more bd DAY MONTH``\nCurrently, I can show :```" for entry in subreddits.values(): mess += entry.name + " with a picture from r/" + entry.subName + "\n" mess += "\n```" await message.channel.send(mess) if ("show me a" in lower) or ("show me more" in lower): + birthday = re.search(r"show me (an?|more) bd ([0-9]+) ([0-9]+)", lower) + if birthday != None: + day = birthday.group(2) + month = birthday.group(3) + print('asking for birthday : ' + day + "/" + month) + if(not verify_date(day,month)): + return + await message.channel.send(embed = create_embed_birthday(day,month)) name = re.search(r"show me (an?|more) ([\S]+)s?", lower) if name == None: return else: name = name.group(2) - + if name in subreddits.keys(): print('asking for the following entry: ' + name) postnumber = random.randint(1,subreddits[name].totalimgs) -- GitLab