From 97b100e0a25e8a6e55ab7861b2a553efb0909bef Mon Sep 17 00:00:00 2001 From: Luke Robles Date: Sat, 21 Mar 2020 17:09:00 -0700 Subject: [PATCH] Removing birb as the site is down and adding youtube --- app/animals.py | 7 -- app/dragon-bot.py | 197 +++++++++++++++++++++++--------------------- app/help_methods.py | 10 +-- 3 files changed, 109 insertions(+), 105 deletions(-) diff --git a/app/animals.py b/app/animals.py index c444822d..ba388fe2 100644 --- a/app/animals.py +++ b/app/animals.py @@ -36,10 +36,3 @@ def random_dog_reddit(): 'zoomies', ] ) - - -def get_birb(): - return "https://random.birb.pw/img/{}".format( - requests.get( - 'https://random.birb.pw/tweet' - ).text) \ No newline at end of file diff --git a/app/dragon-bot.py b/app/dragon-bot.py index bdb47787..610f0fd5 100644 --- a/app/dragon-bot.py +++ b/app/dragon-bot.py @@ -8,6 +8,8 @@ then imported into the main bot import os import random import requests +from urllib import parse, request +import re import animals import core_utils @@ -133,12 +135,6 @@ async def on_message(message): ) ) - 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( @@ -370,104 +366,119 @@ async def on_message(message): embed=generate_embed(embed_url=wallpaper.get_wall(message.content)) ) - if message.content.startswith('!minecraft'): - # Check permissions - if not role_check.docker_permissions(message.author.roles): - await client.send_message( - message.channel, - "You dont have permission to run docker commands" - ) - return + + 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 len(message.content.split()) == 1: - actions = ['restart', 'status', 'logs', 'map'] - 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('beyondreality') - except: - await client.send_message( - message.channel, - "The minecraft server is not running" - ) - return - # Figure out what action they want to take - action = message.content.split()[1] - 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 message.content.startswith('!minecraft'): + # # Check permissions + # if not role_check.docker_permissions(message.author.roles): + # await client.send_message( + # message.channel, + # "You dont have permission to run docker commands" + # ) + # return - if confirm_restart: - await client.send_message( - message.channel, - "Sending restart action to {} server".format( - minecraft_container.name - ) - ) + # if len(message.content.split()) == 1: + # actions = ['restart', 'status', 'logs', 'map'] + # 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('beyondreality') + # except: + # await client.send_message( + # message.channel, + # "The minecraft server is not running" + # ) + # return - minecraft_container.restart() + # # Figure out what action they want to take + # action = message.content.split()[1] + # if action == 'restart': + # await client.send_message( + # message.channel, + # "{}, restart the server? [!yes/!no]".format( + # message.author.mention) + # ) - if action == 'status': - await client.send_message( - message.channel, - "{} server is {}".format( - minecraft_container.name, - minecraft_container.status - ) - ) + # confirm_restart = await client.wait_for_message( + # author=message.author, + # channel=message.channel, + # content='!yes' + # ) - if action == 'logs': - if len(message.content.split()) == 3: - num_lines = int(message.content.split()[2]) - else: - num_lines = 10 + # if confirm_restart: + # await client.send_message( + # message.channel, + # "Sending restart action to {} server".format( + # minecraft_container.name + # ) + # ) - log_stream = minecraft_container.logs( - tail=num_lines - ).decode('utf-8') + # minecraft_container.restart() - if len(log_stream) >= num_lines: - await client.send_message( - message.channel, - "Pulling last {} lines from the {} server ".format( - num_lines, - minecraft_container.name - ) - ) + # if action == 'status': + # await client.send_message( + # message.channel, + # "{} server is {}".format( + # minecraft_container.name, + # minecraft_container.status + # ) + # ) - await client.send_message( - message.channel, - "```{}```".format( - minecraft_container.logs( - tail=num_lines - ).decode('utf-8') - ) - ) + # if action == 'logs': + # if len(message.content.split()) == 3: + # num_lines = int(message.content.split()[2]) + # else: + # num_lines = 10 - else: - await client.send_message( - message.channel, - "There arent {} lines of output yet".format(num_lines) - ) - if action == 'map': - await client.send_message( - message.channel, - "https://luker.gq/minecraft" - ) + # 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) + # ) + # if action == 'map': + # await client.send_message( + # message.channel, + # "https://luker.gq/minecraft" + # ) client.run(os.getenv('token')) diff --git a/app/help_methods.py b/app/help_methods.py index e6114f75..636acd6f 100644 --- a/app/help_methods.py +++ b/app/help_methods.py @@ -17,10 +17,6 @@ def get_help_message(method): 'Returns the avatar for the mentioned user', '\nUsage: !avatar @somebody' ], - 'birb': [ - 'Sends an image of a birb', - '\nUsage: !birb' - ], 'clap': [ 'Returns the shittiest meme created by sassy girls on twitter this century', 'Usage: !clap some text to be meme\'mt' @@ -139,13 +135,17 @@ def get_help_message(method): '\nUsage: !tts who watches the watchmen?', '\nTo list all languages, you can type `!tts langs`' ], + 'youtube': [ + 'Searches youtube for the query string and returns the first result', + '\nUsage: !youtube sick bmx tricks' + ], } return "```css\n{}: {}\n```".format(method, ' '.join(supported_methods[method])) def get_help_embed(client): categories = { - 'fun': ['clap', 'birb', 'dog', 'excuse', 'greentext', 'lewd', 'message', 'meme', 'homepage', 'pout', 'roll', 'smug', 'quake'], + 'fun': ['clap', 'youtube', 'dog', 'excuse', 'greentext', 'lewd', 'message', 'meme', 'homepage', 'pout', 'roll', 'smug', 'quake'], 'util': ['8ball', 'decide', 'icon', 'wallpaper', 'weather', 'stock', 'tts', 'issue'], 'users': ['help', 'invite', 'purge', 'roles', 'source', 'minecraft'], 'admin': ['emoji', 'cleanup']