Removing birb as the site is down and adding youtube

This commit is contained in:
Luke Robles 2020-03-21 17:09:00 -07:00
parent 21dd26823f
commit 97b100e0a2
3 changed files with 109 additions and 105 deletions

View File

@ -36,10 +36,3 @@ def random_dog_reddit():
'zoomies', 'zoomies',
] ]
) )
def get_birb():
return "https://random.birb.pw/img/{}".format(
requests.get(
'https://random.birb.pw/tweet'
).text)

View File

@ -8,6 +8,8 @@ then imported into the main bot
import os import os
import random import random
import requests import requests
from urllib import parse, request
import re
import animals import animals
import core_utils 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'): if message.content.startswith('!clap'):
await client.delete_message(message) await client.delete_message(message)
await client.send_message( await client.send_message(
@ -370,104 +366,119 @@ async def on_message(message):
embed=generate_embed(embed_url=wallpaper.get_wall(message.content)) 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 len(message.content.split()) == 1: if message.content.startswith('!youtube'):
actions = ['restart', 'status', 'logs', 'map'] query_string = parse.urlencode({'search_query': message.content.split()[1:]})
await client.send_message( html_content = request.urlopen('http://www.youtube.com/results?' + query_string)
message.channel, # print(html_content.read().decode())
"\nSupported actions:```\n{}```".format(", ".join(actions)) search_results = re.findall('href=\"\\/watch\\?v=(.{11})', html_content.read().decode())
) print(search_results)
else: # I will put just the first result, you can loop the response to show more results
docker_client = docker.from_env() await client.send_message(
try: message.channel,
minecraft_container = docker_client.containers.get('beyondreality') 'https://www.youtube.com/watch?v=' + search_results[0]
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 confirm_restart: # if message.content.startswith('!minecraft'):
await client.send_message( # # Check permissions
message.channel, # if not role_check.docker_permissions(message.author.roles):
"Sending restart action to {} server".format( # await client.send_message(
minecraft_container.name # message.channel,
) # "You dont have permission to run docker commands"
) # )
# return
minecraft_container.restart() # 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
if action == 'status': # # Figure out what action they want to take
await client.send_message( # action = message.content.split()[1]
message.channel, # if action == 'restart':
"{} server is {}".format( # await client.send_message(
minecraft_container.name, # message.channel,
minecraft_container.status # "{}, restart the server? [!yes/!no]".format(
) # message.author.mention)
) # )
if action == 'logs': # confirm_restart = await client.wait_for_message(
if len(message.content.split()) == 3: # author=message.author,
num_lines = int(message.content.split()[2]) # channel=message.channel,
else: # content='!yes'
num_lines = 10 # )
log_stream = minecraft_container.logs( # if confirm_restart:
tail=num_lines # await client.send_message(
).decode('utf-8') # message.channel,
# "Sending restart action to {} server".format(
# minecraft_container.name
# )
# )
if len(log_stream) >= num_lines: # minecraft_container.restart()
await client.send_message(
message.channel,
"Pulling last {} lines from the {} server ".format(
num_lines,
minecraft_container.name
)
)
await client.send_message( # if action == 'status':
message.channel, # await client.send_message(
"```{}```".format( # message.channel,
minecraft_container.logs( # "{} server is {}".format(
tail=num_lines # minecraft_container.name,
).decode('utf-8') # minecraft_container.status
) # )
) # )
else: # if action == 'logs':
await client.send_message( # if len(message.content.split()) == 3:
message.channel, # num_lines = int(message.content.split()[2])
"There arent {} lines of output yet".format(num_lines) # else:
) # num_lines = 10
if action == 'map':
await client.send_message( # log_stream = minecraft_container.logs(
message.channel, # tail=num_lines
"https://luker.gq/minecraft" # ).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')) client.run(os.getenv('token'))

View File

@ -17,10 +17,6 @@ def get_help_message(method):
'Returns the avatar for the mentioned user', 'Returns the avatar for the mentioned user',
'\nUsage: !avatar @somebody' '\nUsage: !avatar @somebody'
], ],
'birb': [
'Sends an image of a birb',
'\nUsage: !birb'
],
'clap': [ 'clap': [
'Returns the shittiest meme created by sassy girls on twitter this century', 'Returns the shittiest meme created by sassy girls on twitter this century',
'Usage: !clap some text to be meme\'mt' 'Usage: !clap some text to be meme\'mt'
@ -139,13 +135,17 @@ def get_help_message(method):
'\nUsage: !tts who watches the watchmen?', '\nUsage: !tts who watches the watchmen?',
'\nTo list all languages, you can type `!tts langs`' '\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])) return "```css\n{}: {}\n```".format(method, ' '.join(supported_methods[method]))
def get_help_embed(client): def get_help_embed(client):
categories = { 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'], 'util': ['8ball', 'decide', 'icon', 'wallpaper', 'weather', 'stock', 'tts', 'issue'],
'users': ['help', 'invite', 'purge', 'roles', 'source', 'minecraft'], 'users': ['help', 'invite', 'purge', 'roles', 'source', 'minecraft'],
'admin': ['emoji', 'cleanup'] 'admin': ['emoji', 'cleanup']