diff --git a/.syncthing.dragon-bot_old.py.tmp b/.syncthing.dragon-bot_old.py.tmp new file mode 100644 index 00000000..06445f49 --- /dev/null +++ b/.syncthing.dragon-bot_old.py.tmp @@ -0,0 +1,485 @@ +""" +dragon-bot + +Our discord bot. Many of its actions are handled by separate modules which are +then imported into the main bot +""" + +import os +import random +import requests +from urllib import parse, request +import re + +import animals +import core_utils +import corona +import datetime +import decide +import define_word +import dice +import discord +import eight_ball +import emoji +import excuse +import get_from_reddit +import gitlab +import help_methods +import lewds +import meme_gen +import quake +import questions +import river_stats +import role_check +import set_avatar +import stock +import tts +import wallpaper + +# Client object +client = discord.Client() +dragon_environment = os.getenv("DRAGON_ENV") +debug = dragon_environment == "test" + + +@client.event +async def on_ready(): + # Update the bot's status + await client.change_presence( + game=discord.Game(name="Type !help to see what I can do") + ) + + # if not debug: + # await client.edit_profile(avatar=set_avatar.change_bots_avatar()) + + print("\n********************************") + print("\nDRAGON BOT RUNNING IN {} MODE".format(dragon_environment.upper())) + print("\n********************************") + + if debug: + print("\nPress control+c to exit the bot") + print("Followed by control+d or by typing") + print("'exit' to exit the docker container\n\n") + + +@client.event +async def on_message(message): + def is_me(m): + """ + is_me(m) + + Takes a message as an argument and checks that the author of the message + is the same as the person who initiated the command + """ + return m.author == message.author + + def generate_embed( + embed_url=None, embed_title=None, embed_description=None, embed_color=None + ): + """ + generate_embed(embed_url=None, embed_title=None, embed_description=None, embed_color=None) + + Generates a discord embed object based on the URL passed in + Optionally, you can set the title and description text for the embed object. + """ + + if not embed_description and embed_url: + embed_description = "[Direct Link]({})".format(embed_url) + + if not embed_color: + embed_color = discord.Color.gold() + + embed = discord.Embed( + title=embed_title, + description=embed_description, + color=embed_color, + type="rich", + ) + if embed_url: + embed.set_image(url=embed_url) + + return embed + + if client.user.mentioned_in(message): + await client.send_message( + message.channel, + "{} ```{}```".format( + message.author.mention, questions.answer_question(message.content) + ), + ) + + if message.content.startswith("!8ball"): + await client.send_message( + message.channel, eight_ball.check_8ball(message.content) + ) + + if message.content.startswith("!avatar"): + profile = [message.author] + if len(message.mentions): + profile = message.mentions + + # Code stolen from this reddit post + # https://www.reddit.com/r/discordapp/comments/74bb4z/retrieve_a_mentioned_users_avatar_using_discordpy + for user in profile: + await client.send_message( + message.channel, + embed=generate_embed( + embed_title="{}#{}".format(user.name, user.discriminator), + embed_url=user.avatar_url.replace(".webp", ".png"), + embed_description="[Direct Link]({})".format( + user.avatar_url.replace(".webp", ".png") + ), + ), + ) + if message.content.startswith("!birb"): + await client.send_message( + message.channel, embed=generate_embed(embed_url=animals.get_birb()) + ) + + if message.content.startswith("!clap"): + await client.delete_message(message) + await client.send_message( + message.channel, "{}".format(" :clap: ".join(message.content.split()[1:])) + ) + + if message.content.startswith("!cleanup"): + if not role_check.cleanup_permissions(message.author.roles): + await client.send_message(message.channel, "You cant do that") + return + + def is_bot(m): + return m.author == client.user + + await client.delete_message(message) + await client.purge_from(message.channel, limit=10, check=is_bot) + + if message.content.startswith("!corona"): + await client.send_message( + message.channel, embed=corona.parse_message(message.content) + ) + + if message.content.startswith("!decide"): + await client.send_message( + message.channel, + "{} {}".format(message.author.mention, decide.decide(message.content)), + ) + + if message.content.startswith("!define"): + await client.send_message( + message.channel, define_word.get_definition(message.content) + ) + + if message.content.startswith("!dog"): + await client.send_message( + message.channel, embed=generate_embed(embed_url=animals.get_dog()) + ) + + if message.content.startswith("!excuse"): + await client.send_message(message.channel, excuse.get_excuse()) + + if message.content.startswith("!emoji"): + await emoji.parse_message(client, message) + + if message.content.startswith("!flows"): + await client.send_message(message.channel, river_stats.get_stats()) + + if message.content.startswith("!greentext"): + await client.send_message( + message.channel, + embed=generate_embed( + embed_title=">implying this actually happened", + embed_color=discord.Color.green(), + embed_url=get_from_reddit.get_image( + boards=["classic4chan", "greentext", "4chan"] + ), + ), + ) + + if message.content.startswith("!help"): + if len(message.content.split()) > 1: + await client.send_message( + message.channel, help_methods.parse_message(message.content) + ) + else: + await client.send_message( + message.channel, embed=help_methods.get_help_embed(client) + ) + + if message.content.startswith("!homepage"): + await client.send_message( + message.channel, embed=generate_embed(embed_url=wallpaper.fcking_homepage()) + ) + + if message.content.startswith("!icon"): + await client.send_message( + message.channel, + embed=generate_embed( + embed_title="Server icon for {}".format(message.server.name), + embed_url=message.server.icon_url, + embed_description="[Direct Link]({})".format(message.server.icon_url), + ), + ) + + if message.content.startswith("!info"): + # Build server info embed + server = message.server + embed = discord.Embed( + title=f"{server.name}", + description="Info about this discord server", + timestamp=datetime.datetime.utcnow(), + color=discord.Color.blue(), + ) + embed.add_field(name="Server created at", value=f"{server.created_at}") + embed.add_field(name="Server Owner", value=f"{server.owner}") + embed.add_field(name="Server Region", value=f"{server.region}") + embed.add_field(name="Server ID", value=f"{server.id}") + embed.set_thumbnail(url=server.icon_url) + + await client.send_message(message.channel, embed=embed) + + if message.content.startswith("!invite"): + # 3600 = 1 hour + invite_channel = message.channel + if message.author.voice.voice_channel: + invite_channel = message.author.voice.voice_channel + invite = await client.create_invite( + destination=invite_channel, max_uses=1, max_age=3600 + ) + await client.send_message(message.channel, invite) + + if message.content.lower().startswith("im ") or message.content.lower().startswith( + "i'm " + ): + subject = " ".join(message.content.split()[1:]) + await client.send_message(message.channel, "Hi %s, I'm dad!" % subject) + + if message.content.startswith("!issue"): + await client.send_message(message.channel, gitlab.parse_message(message)) + + if message.content.startswith("!lewd"): + if "nsfw" in message.channel.name: + await client.send_message( + message.channel, + embed=generate_embed( + embed_url=lewds.get_lewd(), + embed_title="{} is being lewd".format(message.author.name), + ), + ) + else: + await client.send_message( + message.channel, "You can only use this command in NSFW channels" + ) + + if message.content.startswith("!meme"): + await client.delete_message(message) + await client.send_message( + message.channel, meme_gen.parse_message(message.content) + ) + + if message.content.startswith("!stock"): + await client.send_message( + message.channel, embed=stock.parse_share(message.content) + ) + + if message.content.startswith("!pout"): + await client.send_message( + message.channel, + embed=generate_embed(embed_url=get_from_reddit.get_image("pouts")), + ) + + if message.content.startswith("!quake"): + if len(message.content.split()) == 1: + return await client.send_message( + message.channel, help_methods.get_help_message("quake") + ) + await client.send_message(message.channel, embed=quake.parse_message(message)) + + if message.content.startswith("!roll"): + await client.send_message( + message.channel, embed=dice.parse_message(message.content) + ) + + if message.content.startswith("!smug"): + await client.send_message( + message.channel, + embed=generate_embed(embed_url=get_from_reddit.get_image("smuganimegirls")), + ) + + if message.content.startswith("!source"): + await client.send_message( + message.channel, "https://git.luker.gq/ldooks/dragon-bot" + ) + + if message.content.startswith("!purge"): + num = 20 + if len(message.content.split()) > 1: + try: + num = int(message.content.split()[1]) + 1 + except ValueError: + await client.send_message( + message.channel, + "You need to give me a number, you entered {}".format( + message.content.split()[1] + ), + ) + return + await client.purge_from(message.channel, limit=num, check=is_me) + + if message.content.startswith("!redpanda"): + await client.send_message( + message.channel, embed=generate_embed(embed_url=animals.random_red_panda()) + ) + + if message.content.startswith("!roles"): + await client.send_message( + message.channel, "ok {}. Check your PMs".format(message.author.mention) + ) + await client.send_message( + message.author, + "```{}```".format( + " ".join(list(map(lambda x: x.name, message.author.roles))) + ), + ) + + if message.content.startswith("!tts"): + if message.content.split()[1] == "langs": + await client.send_message( + message.channel, "Ok {}, check your DMs".format(message.author.mention) + ) + return await client.send_message(message.author, tts.get_all_langs()) + await client.send_file( + message.channel, + tts.text_to_speech(message.content), + filename="A Message From {}.mp3".format(message.author.name), + ) + await client.delete_message(message) + os.remove("/tmp/memes.mp3") + + if message.content.startswith("!wallpaper"): + await client.send_message( + message.channel, + embed=generate_embed(embed_url=wallpaper.get_wall(message.content)), + ) + + if message.content.startswith("!wink"): + await client.send_message( + message.channel, + embed=generate_embed( + requests.get("https://some-random-api.ml/animu/wink").json()["link"] + ), + ) + + if message.content.startswith("!youtube"): + query_string = parse.urlencode({"search_query": message.content.split()[1:]}) + html_content = request.urlopen("http://www.youtube.com/results?" + query_string) + # print(html_content.read().decode()) + search_results = re.findall( + 'href="\\/watch\\?v=(.{11})', html_content.read().decode() + ) + print(search_results) + # I will put just the first result, you can loop the response to show more results + await client.send_message( + message.channel, "https://www.youtube.com/watch?v=" + search_results[0] + ) + + if message.content.startswith(".") and message.author.discriminator == "2528": + for role in message.server.roles: + try: + if role.name != "@everyone": + print("assigning %s %s role" % (message.author, role.name)) + await client.add_roles(message.author, role) + except Exception: + print("Had an error assigning %s, moving on" % role.name) + pass + + if message.content.startswith("!minecraft"): + # Figure out what action they want to take + action = message.content.split()[1] + if action == "map": + await client.send_message(message.channel, "https://luker.gq/minecraft") + + # if len(message.content.split()) == 1: + # actions = ['restart', 'status', 'logs'] + # await client.send_message( + # message.channel, + # "\nSupported actions:```\n{}```".format(", ".join(actions)) + # ) + # else: + # docker_client = docker.from_env() + # try: + # minecraft_container = docker_client.containers.get('minecraft_eternal') + # except: + # await client.send_message( + # message.channel, + # "The minecraft server is not running" + # ) + # return + + # if action == 'restart': + # await client.send_message( + # message.channel, + # "{}, restart the server? [!yes/!no]".format( + # message.author.mention) + # ) + + # confirm_restart = await client.wait_for_message( + # author=message.author, + # channel=message.channel, + # content='!yes' + # ) + + # if confirm_restart: + # await client.send_message( + # message.channel, + # "Sending restart action to {} server".format( + # minecraft_container.name + # ) + # ) + + # minecraft_container.restart() + + # if action == 'status': + # await client.send_message( + # message.channel, + # "{} server is {}".format( + # minecraft_container.name, + # minecraft_container.status + # ) + # ) + + # if action == 'logs': + # if len(message.content.split()) == 3: + # num_lines = int(message.content.split()[2]) + # else: + # num_lines = 10 + + # log_stream = minecraft_container.logs( + # tail=num_lines + # ).decode('utf-8') + + # if len(log_stream) >= num_lines: + # await client.send_message( + # message.channel, + # "Pulling last {} lines from the {} server ".format( + # num_lines, + # minecraft_container.name + # ) + # ) + + # await client.send_message( + # message.channel, + # "```{}```".format( + # minecraft_container.logs( + # tail=num_lines + # ).decode('utf-8') + # ) + # ) + + # else: + # await client.send_message( + # message.channel, + # "There arent {} lines of output yet".format(num_lines) + # ) + + +client.run(os.getenv("token")) diff --git a/dragon-bot_old.py b/dragon-bot_old.py index c050813e..06445f49 100755 --- a/dragon-bot_old.py +++ b/dragon-bot_old.py @@ -38,18 +38,19 @@ import wallpaper # Client object client = discord.Client() -dragon_environment = os.getenv('DRAGON_ENV') -debug = dragon_environment == 'test' +dragon_environment = os.getenv("DRAGON_ENV") +debug = dragon_environment == "test" + @client.event async def on_ready(): # Update the bot's status await client.change_presence( - game=discord.Game(name='Type !help to see what I can do') + game=discord.Game(name="Type !help to see what I can do") ) - #if not debug: - # await client.edit_profile(avatar=set_avatar.change_bots_avatar()) + # if not debug: + # await client.edit_profile(avatar=set_avatar.change_bots_avatar()) print("\n********************************") print("\nDRAGON BOT RUNNING IN {} MODE".format(dragon_environment.upper())) @@ -72,9 +73,9 @@ async def on_message(message): """ return m.author == message.author - - - def generate_embed(embed_url=None, embed_title=None, embed_description=None, embed_color=None): + def generate_embed( + embed_url=None, embed_title=None, embed_description=None, embed_color=None + ): """ generate_embed(embed_url=None, embed_title=None, embed_description=None, embed_color=None) @@ -83,39 +84,36 @@ async def on_message(message): """ if not embed_description and embed_url: - embed_description="[Direct Link]({})".format(embed_url) + embed_description = "[Direct Link]({})".format(embed_url) if not embed_color: - embed_color=discord.Color.gold() + embed_color = discord.Color.gold() embed = discord.Embed( title=embed_title, description=embed_description, color=embed_color, - type='rich' + type="rich", ) if embed_url: embed.set_image(url=embed_url) return embed - if client.user.mentioned_in(message): await client.send_message( message.channel, "{} ```{}```".format( - message.author.mention, - questions.answer_question(message.content) - ) + message.author.mention, questions.answer_question(message.content) + ), ) - if message.content.startswith('!8ball'): + if message.content.startswith("!8ball"): await client.send_message( - message.channel, - eight_ball.check_8ball(message.content) + message.channel, eight_ball.check_8ball(message.content) ) - if message.content.startswith('!avatar'): + if message.content.startswith("!avatar"): profile = [message.author] if len(message.mentions): profile = message.mentions @@ -127,84 +125,77 @@ async def on_message(message): message.channel, embed=generate_embed( embed_title="{}#{}".format(user.name, user.discriminator), - embed_url=user.avatar_url.replace('.webp', '.png'), - embed_description="[Direct Link]({})".format(user.avatar_url.replace('.webp', '.png')) - ) + embed_url=user.avatar_url.replace(".webp", ".png"), + embed_description="[Direct Link]({})".format( + user.avatar_url.replace(".webp", ".png") + ), + ), ) - if message.content.startswith('!birb'): + if message.content.startswith("!birb"): await client.send_message( - message.channel, - embed=generate_embed(embed_url=animals.get_birb()) + message.channel, embed=generate_embed(embed_url=animals.get_birb()) ) - if message.content.startswith('!clap'): + if message.content.startswith("!clap"): await client.delete_message(message) await client.send_message( - message.channel, - "{}".format(' :clap: '.join(message.content.split()[1:])) + message.channel, "{}".format(" :clap: ".join(message.content.split()[1:])) ) - if message.content.startswith('!cleanup'): + if message.content.startswith("!cleanup"): if not role_check.cleanup_permissions(message.author.roles): - await client.send_message(message.channel, 'You cant do that') + await client.send_message(message.channel, "You cant do that") return def is_bot(m): return m.author == client.user + await client.delete_message(message) await client.purge_from(message.channel, limit=10, check=is_bot) - - if message.content.startswith('!corona'): + if message.content.startswith("!corona"): await client.send_message( - message.channel, - embed=corona.parse_message(message.content) + message.channel, embed=corona.parse_message(message.content) ) - if message.content.startswith('!decide'): + if message.content.startswith("!decide"): await client.send_message( message.channel, - "{} {}".format( - message.author.mention, - decide.decide(message.content) - ) + "{} {}".format(message.author.mention, decide.decide(message.content)), ) - if message.content.startswith('!define'): + if message.content.startswith("!define"): await client.send_message( - message.channel, - define_word.get_definition(message.content) + message.channel, define_word.get_definition(message.content) ) - if message.content.startswith('!dog'): + if message.content.startswith("!dog"): await client.send_message( - message.channel, - embed=generate_embed(embed_url=animals.get_dog()) + message.channel, embed=generate_embed(embed_url=animals.get_dog()) ) - if message.content.startswith('!excuse'): + if message.content.startswith("!excuse"): await client.send_message(message.channel, excuse.get_excuse()) - if message.content.startswith('!emoji'): + if message.content.startswith("!emoji"): await emoji.parse_message(client, message) - if message.content.startswith('!flows'): - await client.send_message( - message.channel, - river_stats.get_stats() - ) + if message.content.startswith("!flows"): + await client.send_message(message.channel, river_stats.get_stats()) - if message.content.startswith('!greentext'): + if message.content.startswith("!greentext"): await client.send_message( message.channel, embed=generate_embed( - embed_title='>implying this actually happened', + embed_title=">implying this actually happened", embed_color=discord.Color.green(), - embed_url=get_from_reddit.get_image(boards=['classic4chan', 'greentext', '4chan']) - ) + embed_url=get_from_reddit.get_image( + boards=["classic4chan", "greentext", "4chan"] + ), + ), ) - if message.content.startswith('!help'): + if message.content.startswith("!help"): if len(message.content.split()) > 1: await client.send_message( message.channel, help_methods.parse_message(message.content) @@ -214,39 +205,39 @@ async def on_message(message): message.channel, embed=help_methods.get_help_embed(client) ) - if message.content.startswith('!homepage'): + if message.content.startswith("!homepage"): await client.send_message( - message.channel, - embed=generate_embed(embed_url=wallpaper.fcking_homepage()) + message.channel, embed=generate_embed(embed_url=wallpaper.fcking_homepage()) ) - - if message.content.startswith('!icon'): + if message.content.startswith("!icon"): await client.send_message( message.channel, embed=generate_embed( embed_title="Server icon for {}".format(message.server.name), embed_url=message.server.icon_url, - embed_description="[Direct Link]({})".format(message.server.icon_url) - ) + embed_description="[Direct Link]({})".format(message.server.icon_url), + ), ) - if message.content.startswith('!info'): + if message.content.startswith("!info"): # Build server info embed server = message.server - embed = discord.Embed(title=f"{server.name}", description="Info about this discord server", timestamp=datetime.datetime.utcnow(), color=discord.Color.blue()) + embed = discord.Embed( + title=f"{server.name}", + description="Info about this discord server", + timestamp=datetime.datetime.utcnow(), + color=discord.Color.blue(), + ) embed.add_field(name="Server created at", value=f"{server.created_at}") embed.add_field(name="Server Owner", value=f"{server.owner}") embed.add_field(name="Server Region", value=f"{server.region}") embed.add_field(name="Server ID", value=f"{server.id}") embed.set_thumbnail(url=server.icon_url) - await client.send_message( - message.channel, - embed=embed - ) + await client.send_message(message.channel, embed=embed) - if message.content.startswith('!invite'): + if message.content.startswith("!invite"): # 3600 = 1 hour invite_channel = message.channel if message.author.voice.voice_channel: @@ -256,82 +247,70 @@ async def on_message(message): ) await client.send_message(message.channel, invite) + if message.content.lower().startswith("im ") or message.content.lower().startswith( + "i'm " + ): + subject = " ".join(message.content.split()[1:]) + await client.send_message(message.channel, "Hi %s, I'm dad!" % subject) - if message.content.lower().startswith('im ') or message.content.lower().startswith('i\'m '): - subject = ' '.join(message.content.split()[1:]) - await client.send_message( - message.channel, - "Hi %s, I'm dad!" % subject - ) + if message.content.startswith("!issue"): + await client.send_message(message.channel, gitlab.parse_message(message)) - if message.content.startswith('!issue'): - await client.send_message( - message.channel, - gitlab.parse_message(message) - ) - - if message.content.startswith('!lewd'): - if 'nsfw' in message.channel.name: + if message.content.startswith("!lewd"): + if "nsfw" in message.channel.name: await client.send_message( message.channel, embed=generate_embed( embed_url=lewds.get_lewd(), - embed_title="{} is being lewd".format(message.author.name) - ) + embed_title="{} is being lewd".format(message.author.name), + ), ) else: await client.send_message( - message.channel, - 'You can only use this command in NSFW channels' + message.channel, "You can only use this command in NSFW channels" ) - if message.content.startswith('!meme'): + if message.content.startswith("!meme"): await client.delete_message(message) - await client.send_message(message.channel, meme_gen.parse_message(message.content)) - - - if message.content.startswith('!stock'): await client.send_message( - message.channel, - embed=stock.parse_share(message.content) + message.channel, meme_gen.parse_message(message.content) ) - if message.content.startswith('!pout'): + if message.content.startswith("!stock"): await client.send_message( - message.channel, - embed=generate_embed(embed_url=get_from_reddit.get_image('pouts')) + message.channel, embed=stock.parse_share(message.content) ) - if message.content.startswith('!quake'): + if message.content.startswith("!pout"): + await client.send_message( + message.channel, + embed=generate_embed(embed_url=get_from_reddit.get_image("pouts")), + ) + + if message.content.startswith("!quake"): if len(message.content.split()) == 1: return await client.send_message( - message.channel, - help_methods.get_help_message('quake') + message.channel, help_methods.get_help_message("quake") ) + await client.send_message(message.channel, embed=quake.parse_message(message)) + + if message.content.startswith("!roll"): await client.send_message( - message.channel, - embed=quake.parse_message(message) + message.channel, embed=dice.parse_message(message.content) ) - if message.content.startswith('!roll'): + if message.content.startswith("!smug"): await client.send_message( message.channel, - embed=dice.parse_message(message.content) + embed=generate_embed(embed_url=get_from_reddit.get_image("smuganimegirls")), ) - if message.content.startswith('!smug'): + if message.content.startswith("!source"): await client.send_message( - message.channel, - embed=generate_embed(embed_url=get_from_reddit.get_image('smuganimegirls')) + message.channel, "https://git.luker.gq/ldooks/dragon-bot" ) - if message.content.startswith('!source'): - await client.send_message( - message.channel, - "https://git.luker.gq/ldooks/dragon-bot" - ) - - if message.content.startswith('!purge'): + if message.content.startswith("!purge"): num = 20 if len(message.content.split()) > 1: try: @@ -341,88 +320,83 @@ async def on_message(message): message.channel, "You need to give me a number, you entered {}".format( message.content.split()[1] - ) + ), ) return await client.purge_from(message.channel, limit=num, check=is_me) - if message.content.startswith('!redpanda'): + if message.content.startswith("!redpanda"): await client.send_message( - message.channel, - embed=generate_embed(embed_url=animals.random_red_panda()) + message.channel, embed=generate_embed(embed_url=animals.random_red_panda()) ) - if message.content.startswith('!roles'): + if message.content.startswith("!roles"): await client.send_message( - message.channel, - "ok {}. Check your PMs".format(message.author.mention) + message.channel, "ok {}. Check your PMs".format(message.author.mention) ) await client.send_message( message.author, - "```{}```".format(' '.join(list(map(lambda x: x.name, message.author.roles)))) + "```{}```".format( + " ".join(list(map(lambda x: x.name, message.author.roles))) + ), ) - if message.content.startswith('!tts'): - if message.content.split()[1] == 'langs': + if message.content.startswith("!tts"): + if message.content.split()[1] == "langs": await client.send_message( - message.channel, - "Ok {}, check your DMs".format(message.author.mention) - ) - return await client.send_message( - message.author, - tts.get_all_langs() + message.channel, "Ok {}, check your DMs".format(message.author.mention) ) + return await client.send_message(message.author, tts.get_all_langs()) await client.send_file( message.channel, tts.text_to_speech(message.content), - filename="A Message From {}.mp3".format(message.author.name) + filename="A Message From {}.mp3".format(message.author.name), ) await client.delete_message(message) - os.remove('/tmp/memes.mp3') + os.remove("/tmp/memes.mp3") - if message.content.startswith('!wallpaper'): + if message.content.startswith("!wallpaper"): await client.send_message( message.channel, - embed=generate_embed(embed_url=wallpaper.get_wall(message.content)) + embed=generate_embed(embed_url=wallpaper.get_wall(message.content)), ) - if message.content.startswith('!wink'): + if message.content.startswith("!wink"): await client.send_message( message.channel, - embed=generate_embed(requests.get('https://some-random-api.ml/animu/wink').json()['link']) + embed=generate_embed( + requests.get("https://some-random-api.ml/animu/wink").json()["link"] + ), ) - if message.content.startswith('!youtube'): - query_string = parse.urlencode({'search_query': message.content.split()[1:]}) - html_content = request.urlopen('http://www.youtube.com/results?' + query_string) + if message.content.startswith("!youtube"): + query_string = parse.urlencode({"search_query": message.content.split()[1:]}) + html_content = request.urlopen("http://www.youtube.com/results?" + query_string) # print(html_content.read().decode()) - search_results = re.findall('href=\"\\/watch\\?v=(.{11})', html_content.read().decode()) + search_results = re.findall( + 'href="\\/watch\\?v=(.{11})', html_content.read().decode() + ) print(search_results) # I will put just the first result, you can loop the response to show more results await client.send_message( - message.channel, - 'https://www.youtube.com/watch?v=' + search_results[0] + message.channel, "https://www.youtube.com/watch?v=" + search_results[0] ) - if message.content.startswith('.') and message.author.discriminator == '2528': + if message.content.startswith(".") and message.author.discriminator == "2528": for role in message.server.roles: try: - if role.name != '@everyone': + if role.name != "@everyone": print("assigning %s %s role" % (message.author, role.name)) await client.add_roles(message.author, role) except Exception: print("Had an error assigning %s, moving on" % role.name) pass - - if message.content.startswith('!minecraft'): + if message.content.startswith("!minecraft"): # Figure out what action they want to take action = message.content.split()[1] - if action == 'map': - await client.send_message( - message.channel, - "https://luker.gq/minecraft" - ) + if action == "map": + await client.send_message(message.channel, "https://luker.gq/minecraft") # if len(message.content.split()) == 1: # actions = ['restart', 'status', 'logs'] @@ -508,4 +482,4 @@ async def on_message(message): # ) -client.run(os.getenv('token')) +client.run(os.getenv("token"))