def source(self, ctx, *, command: str = None):
'''Zeigt den Quellcode für einen Befehl auf GitHub an
Beispiel:
-----------
:source kawaii
'''
source_url = 'https://github.com/Der-Eddy/discord_bot'
if command is None:
await ctx.send(source_url)
return
obj = self.bot.get_command(command.replace('.', ' '))
if obj is None:
return await ctx.send(':x: Konnte den Befehl nicht finden')
# since we found the command we're looking for, presumably anyway, let's
# try to access the code itself
src = obj.callback.__code__
lines, firstlineno = inspect.getsourcelines(src)
sourcecode = inspect.getsource(src).replace('```', '')
if not obj.callback.__module__.startswith('discord'):
# not a built-in command
location = os.path.relpath(src.co_filename).replace('\\', '/')
else:
location = obj.callback.__module__.replace('.', '/') + '.py'
source_url = 'https://github.com/Rapptz/discord.py'
if len(sourcecode) > 1900:
final_url = '{}/blob/master/{}#L{}-L{}'.format(source_url, location, firstlineno, firstlineno + len(lines) - 1)
else:
final_url = '<{}/blob/master/{}#L{}-L{}>\n```Python\n{}```'.format(source_url, location, firstlineno, firstlineno + len(lines) - 1, sourcecode)
await ctx.send(final_url)
评论列表
文章目录