Removing birb as the site is down and adding youtube

This commit is contained in:
Luke 2020-03-21 17:09:00 -07:00
parent d2074987e9
commit 0a46ca0f2d
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 message.content.startswith('!youtube'):
if not role_check.docker_permissions(message.author.roles): 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())
"You dont have permission to run docker commands" search_results = re.findall('href=\"\\/watch\\?v=(.{11})', html_content.read().decode())
) print(search_results)
return # 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( # if message.content.startswith('!minecraft'):
author=message.author, # # Check permissions
channel=message.channel, # if not role_check.docker_permissions(message.author.roles):
content='!yes' # await client.send_message(
) # message.channel,
# "You dont have permission to run docker commands"
# )
# return
if confirm_restart: # if len(message.content.split()) == 1:
await client.send_message( # actions = ['restart', 'status', 'logs', 'map']
message.channel, # await client.send_message(
"Sending restart action to {} server".format( # message.channel,
minecraft_container.name # "\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': # confirm_restart = await client.wait_for_message(
await client.send_message( # author=message.author,
message.channel, # channel=message.channel,
"{} server is {}".format( # content='!yes'
minecraft_container.name, # )
minecraft_container.status
)
)
if action == 'logs': # if confirm_restart:
if len(message.content.split()) == 3: # await client.send_message(
num_lines = int(message.content.split()[2]) # message.channel,
else: # "Sending restart action to {} server".format(
num_lines = 10 # minecraft_container.name
# )
# )
log_stream = minecraft_container.logs( # minecraft_container.restart()
tail=num_lines
).decode('utf-8')
if len(log_stream) >= num_lines: # if action == 'status':
await client.send_message( # await client.send_message(
message.channel, # message.channel,
"Pulling last {} lines from the {} server ".format( # "{} server is {}".format(
num_lines, # minecraft_container.name,
minecraft_container.name # minecraft_container.status
) # )
) # )
await client.send_message( # if action == 'logs':
message.channel, # if len(message.content.split()) == 3:
"```{}```".format( # num_lines = int(message.content.split()[2])
minecraft_container.logs( # else:
tail=num_lines # num_lines = 10
).decode('utf-8')
)
)
else: # log_stream = minecraft_container.logs(
await client.send_message( # tail=num_lines
message.channel, # ).decode('utf-8')
"There arent {} lines of output yet".format(num_lines)
) # if len(log_stream) >= num_lines:
if action == 'map': # await client.send_message(
await client.send_message( # message.channel,
message.channel, # "Pulling last {} lines from the {} server ".format(
"https://luker.gq/minecraft" # 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']