1
0
Fork 0
mirror of https://github.com/myned/modufur.git synced 2024-11-01 21:02:38 +00:00

Added complete exception message from cogs/booru

also messing with youtube auths and uploading
This commit is contained in:
Myned 2017-10-02 15:24:34 -04:00
parent 8d11679435
commit 832acbba81

View file

@ -1,38 +1,60 @@
import asyncio import asyncio
import discord import discord
import httplib2
import mimetypes
import os
import requests_oauthlib as ro
import tempfile
import traceback import traceback
import webbrowser
from discord.ext import commands from discord.ext import commands
from cogs import booru from cogs import booru
from misc import checks from misc import checks
from misc import exceptions as exc from misc import exceptions as exc
from utils import formatter from utils import formatter
from apiclient.discovery import build
from apiclient.http import MediaFileUpload
from oauth2client.client import flow_from_clientsecrets
# flow = flow_from_clientsecrets('../client_secrets.json', scope='https://www.googleapis.com/auth/youtube.upload', login_hint='botmyned@gmail.com', redirect_uri='urn:ietf:wg:oauth:2.0:oob')
# flow.params['access_type'] = 'offline'
# webbrowser.open_new(flow.step1_get_authorize_url())
# credentials = flow.step2_exchange(input('Authorization code: '))
# youtube = build('youtube', 'v3', http=credentials.authorize(httplib2.Http()))
tempfile.tempdir = '../temp'
command_dict = {}
class Utils: class Utils:
def __init__(self, bot): def __init__(self, bot):
self.bot = bot self.bot = bot
def last():
pass
@commands.command(name='last', aliases=['l', ','], brief='Reinvokes last command', description='Reinvokes previous command executed', hidden=True) @commands.command(name='last', aliases=['l', ','], brief='Reinvokes last command', description='Reinvokes previous command executed', hidden=True)
async def last_command(self, ctx): async def last_command(self, ctx):
global command_dict
try: try:
# await ctx.invoke(command, args) if command_dict.get(str(ctx.message.author.id), {}).get('args', None) is not None:
await ctx.send('`' + booru.last_command[ctx.message.author.id] + '`') args = command_dict.get(str(ctx.message.author.id), {})['args']
print(command_dict)
await ctx.invoke(command_dict.get(str(ctx.message.author.id), {}).get('command', None), args)
except Exception: except Exception:
await ctx.send(exceptions.base) await ctx.send(exc.base + '\n```python' + traceback.format_exc(limit=1) + '```')
traceback.print_exc(limit=1) traceback.print_exc(limit=1)
# [prefix]ping -> Pong! # [prefix]ping -> Pong!
@commands.command(aliases=['p'], brief='Pong!', description='Returns latency from bot to Discord servers, not to user') @commands.command(aliases=['p'], brief='Pong!', description='Returns latency from bot to Discord servers, not to user')
@checks.del_ctx() @checks.del_ctx()
async def ping(self, ctx): async def ping(self, ctx):
global command_dict
try: try:
await ctx.send(ctx.message.author.mention + ' 🏓 `' + str(int(self.bot.latency * 1000)) + 'ms`', delete_after=5) await ctx.send(ctx.message.author.mention + ' 🏓 `' + str(int(self.bot.latency * 1000)) + 'ms`', delete_after=5)
except Exception: except Exception:
await ctx.send(exceptions.base) await ctx.send(exc.base + '\n```python' + traceback.format_exc(limit=1) + '```')
traceback.print_exc(limit=1) traceback.print_exc(limit=1)
command_dict.setdefault(str(ctx.message.author.id), {}).update({'command': ctx.command})
@commands.command(aliases=['pre'], brief='List bot prefixes', description='Shows all used prefixes') @commands.command(aliases=['pre'], brief='List bot prefixes', description='Shows all used prefixes')
@checks.del_ctx() @checks.del_ctx()
@ -40,7 +62,7 @@ class Utils:
try: try:
await ctx.send('**Prefix:** `,` or ' + ctx.me.mention) await ctx.send('**Prefix:** `,` or ' + ctx.me.mention)
except Exception: except Exception:
await ctx.send(exceptions.base) await ctx.send(exc.base + '\n```python' + traceback.format_exc(limit=1) + '```')
traceback.print_exc(limit=1) traceback.print_exc(limit=1)
@commands.group(name=',send', aliases=[',s'], hidden=True) @commands.group(name=',send', aliases=[',s'], hidden=True)
@ -55,3 +77,18 @@ class Utils:
@send.command(name='user', aliases=['u', 'member', 'm']) @send.command(name='user', aliases=['u', 'member', 'm'])
async def send_user(self, ctx, user, *message): async def send_user(self, ctx, user, *message):
await discord.utils.get(self.bot.get_all_members(), id=int(user)).send(formatter.tostring(message)) await discord.utils.get(self.bot.get_all_members(), id=int(user)).send(formatter.tostring(message))
@commands.command(aliases=['up', 'u', 'vid', 'v'])
@checks.is_listed()
async def upload(self, ctx):
global youtube
try:
print(mimetypes.guess_type(ctx.message.attachments[0].filename))
with tempfile.TemporaryFile() as temp:
await ctx.message.attachments[0].save(temp)
print(os.path.basename('../temp/*'))
print(mimetypes.guess_type(os.path.basename('../temp/*')))
# print('https://www.youtube.com/watch?v=' + youtube.videos().insert(part='snippet', body={'categoryId': '24', 'title': 'Test'}, media_body=MediaFileUpload('../temp/*', chunksize=-1))
except Exception:
await ctx.send(exc.base + '\n```python' + traceback.format_exc(limit=1) + '```')
traceback.print_exc(limit=1)