本文整理汇总了Python中discord.ext方法的典型用法代码示例。如果您正苦于以下问题:Python discord.ext方法的具体用法?Python discord.ext怎么用?Python discord.ext使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类discord
的用法示例。
在下文中一共展示了discord.ext方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: rtfs
# 需要导入模块: import discord [as 别名]
# 或者: from discord import ext [as 别名]
def rtfs(self, ctx, *, thing: str):
"""tries to show the source file of a thing
thing may be a non-builtin module, class, method, function, traceback, frame, or code object,
or if surrounded by single or double quotes,
a space separated discord.ext.commands call,
or a period deliminated file/module path as used when importing"""
msg = ctx.message
variables = {
'ctx': ctx,
'bot': self.bot,
'message': msg,
'server': msg.server,
'channel': msg.channel,
'author': msg.author
}
def call(thing, variables):
return self.repl_format_source(eval(thing, variables))
closure = _close(call, thing, variables)
await self.print_results(ctx, _call_catch_fmt(closure, 0))
示例2: save_q_files
# 需要导入模块: import discord [as 别名]
# 或者: from discord import ext [as 别名]
def save_q_files(self, post):
file_id = post["tim"]
file_ext = post["ext"]
url = "https://media.8ch.net/file_store/{}{}".format(file_id, file_ext)
async with self.session.get(url) as resp:
image = await resp.read()
with open("data/qposts/files/{}{}".format(file_id, file_ext), "wb") as out:
out.write(image)
if "extra_files" in post:
for file in post["extra_files"]:
file_id = file["tim"]
file_ext = file["ext"]
url = "https://media.8ch.net/file_store/{}{}".format(file_id, file_ext)
async with self.session.get(url) as resp:
image = await resp.read()
with open("data/qposts/files/{}{}".format(file_id, file_ext), "wb") as out:
out.write(image)
示例3: badges
# 需要导入模块: import discord [as 别名]
# 或者: from discord import ext [as 别名]
def badges(self, ctx, *, badge):
"""Creates a variety of badges use [p]listbadges to see what is available"""
if badge.lower() == "list":
await self.list_badges(ctx)
return
is_badge = False
for template in self.blank_template:
if badge.lower() in template.lower():
badge = template
is_badge = True
if not is_badge:
await self.bot.send_message(ctx.message.channel, "{} is not an available badge!".format(badge))
return
user = ctx.message.author
avatar = user.avatar_url if user.avatar_url != "" else user.default_avatar_url
ext = "png"
if "gif" in avatar:
ext = "gif"
await self.bot.send_typing(ctx.message.channel)
await self.create_badge(user, badge)
await self.bot.send_file(ctx.message.channel, "data/badges/temp/tempbadge." + ext)
示例4: message_quote
# 需要导入模块: import discord [as 别名]
# 或者: from discord import ext [as 别名]
def message_quote(self, ctx, *, args):
"""Quote message(s) by ID
!mq 582794656560054272
!mq 582794656560054272 #family-chat
!mq 582794656560054272 582794656560054273 #family-chat
If channel is omitted, use current channel
"""
args = args.split(" ")
last_arg = args[-1]
from discord.ext.commands.converter import ChannelConverter
from discord.ext.commands.errors import BadArgument
try:
channel = ChannelConverter(ctx, last_arg).convert()
except BadArgument:
channel = None
else:
args = args[:-1]
if channel is None:
channel = ctx.message.channel
message_ids = args
await self._show_message(ctx, channel, message_ids)
示例5: __init__
# 需要导入模块: import discord [as 别名]
# 或者: from discord import ext [as 别名]
def __init__(self):
super().__init__(command_prefix=commands.when_mentioned_or('>'),
description=description,
case_insensitive=True
)
config = Config.load(config_path)
self.client_id = config.client_id
self.owner_id = config.owner_id
self.session = aiohttp.ClientSession(loop=self.loop)
self.colour = discord.Colour.blurple()
self.help_command = Help()
self.db = get_db()
for ext in extensions:
try:
self.load_extension(ext)
except Exception as e:
tb.print_exc()
print(f'Failed to load {ext}: {e}')
示例6: get_source
# 需要导入模块: import discord [as 别名]
# 或者: from discord import ext [as 别名]
def get_source(self, thing):
"""returns a source object of a thing
thing may be a non-builtin module, class, method, function, traceback, frame, or code object,
or a space separated discord.ext.commands call,
or a period deliminated file/module path as used when importing
"""
if isinstance(thing, str):
if '.' in thing: # import
modules = thing.split('.')
def get_last_attr(prev, attrs):
try:
return prev.callback
except AttributeError:
if not attrs:
return prev
return get_last_attr(getattr(prev, attrs.pop(0)),
attrs)
thing = get_last_attr(__import__(modules.pop(0)), modules)
else: # space delimited command call
names = thing.split()
thing = self.bot.commands[names.pop(0)]
for name in names:
thing = thing.commands[name]
thing = thing.callback
return Source(thing)
示例7: __init__
# 需要导入模块: import discord [as 别名]
# 或者: from discord import ext [as 别名]
def __init__(self, *args, **kwargs):
super().__init__(
command_prefix=self._prefix_callable,
shard_count=self.config.shard_count,
fetch_offline_members=False,
guild_subscriptions=False,
shard_ids=[],
owner_id=self.config.owner_id,
max_messages=10**4,
disabled_events=[
"VOICE_STATE_UPDATE",
"PRESENCE_UPDATE",
"TYPING_START",
"GUILD_EMOJIS_UPDATE"
],
*args, **kwargs
)
self.session = ClientSession(loop=self.loop)
db_connection = AsyncIOMotorClient(
host=self.config.db_host,
username=self.config.db_user,
password=self.config.db_password
)
self.db = getattr(db_connection, self.config.identifier)
for ext in self.config.extensions:
self.load_extension("cogs." + ext)
log.info(f"Loaded {len(self.cogs)} cogs")
示例8: audioplayer
# 需要导入模块: import discord [as 别名]
# 或者: from discord import ext [as 别名]
def audioplayer(self, ctx, error_on_none=True):
# TODO: ACCOUNT FOR WHEN THIS MESSAGE IS A PM
if isinstance(ctx, discord.ext.commands.Context):
if ctx.message.guild is None: # This is a private channel, so give it user
ctx = ctx.message.author
else:
ctx = ctx.message.guild
if isinstance(ctx, discord.User):
author = ctx
for audioplayer in self.audioplayers:
member = audioplayer.guild.get_member(author.id)
if member and member.voice and audioplayer.voice and audioplayer.voice.channel.id == member.voice.channel.id:
if botdata.guildinfo(audioplayer.guild).is_banned(member):
raise AudioPlayerNotFoundError("Nice try, but you're banned in the voice channel that I'm in")
return audioplayer
if error_on_none:
raise AudioPlayerNotFoundError("You're not in any voice channels that I'm in")
else:
return None
elif isinstance(ctx, discord.Guild):
guild = ctx
elif isinstance(ctx, discord.abc.GuildChannel):
guild = ctx.guild
else:
raise ValueError(f"Incorrect type '{type(ctx)}' given to audioplayer function")
for audioplayer in self.audioplayers:
if audioplayer.guild == guild:
return audioplayer
if error_on_none:
raise AudioPlayerNotFoundError(f"I'm not in a voice channel on this server/guild. Have an admin do `{botdata.command_prefix(ctx)}summon` to put me in one.")
else:
return None
# Connects an audioplayer for the correct guild to the indicated channel
示例9: load_words
# 需要导入模块: import discord [as 别名]
# 或者: from discord import ext [as 别名]
def load_words():
words = {}
for root, dirs, files in os.walk(settings.resource("words/")):
for file in files:
with open(os.path.join(root, file), 'r') as f:
text = f.read()
key, ext = os.path.splitext(file)
words[key] = text.split("\n")
return words
# fills a template with the words of the type asked for
示例10: disablecommand
# 需要导入模块: import discord [as 别名]
# 或者: from discord import ext [as 别名]
def disablecommand(self, ctx, command: str):
"""Disabled the specified command or command category
**Examples:**
`{cmdpfx}disablecommand wiki`
`{cmdpfx}disablecommand Audio`"""
guildinfo = botdata.guildinfo(ctx)
if not guildinfo:
raise UserError("This command must be called in a guild")
cmd = self.get_command_or_cog(ctx, command)
if cmd is None:
raise UserError("Couldn't find a command or command category by that name")
secure_cogs = [ "Admin", "Owner" ]
if isinstance(cmd, discord.ext.commands.Command):
if guildinfo.is_disabled(cmd.cog_name):
raise UserError(f"The category this command belongs to ({cmd.cog_name}) is already disabled")
if cmd.cog_name in secure_cogs:
raise UserError("You can't disable a command in this category")
else:
if cmd.name in secure_cogs:
raise UserError("You can't disable this category")
if guildinfo.is_disabled(cmd.name):
raise UserError("This has already been disabled")
guildinfo.disable_command(cmd.name)
await ctx.message.add_reaction("✅")
示例11: fixq
# 需要导入模块: import discord [as 别名]
# 或者: from discord import ext [as 别名]
def fixq(self, ctx):
async for message in self.bot.logs_from(ctx.message.channel, limit=1000):
if message.embeds != []:
embed = message.embeds[0]
author = embed["author"]["name"]
board = embed["footer"]["text"]
url = embed["author"]["url"].replace("/thestorm/", board)
embed["author"]["url"] = url
text = embed["description"]
# timestamp = embed["timestamp"] "2018-01-13T22:39:31+00:00"
# print(board)
post_id = int(url.split("#")[-1])
timestamp = [post["time"] for post in self.qposts[board.replace("/", "")] if post["no"] == post_id][0]
qpost = [post for post in self.qposts[board.replace("/", "")] if post["no"] == post_id][0]
# print(timestamp)
timestamp = datetime.utcfromtimestamp(timestamp)
# print(timestamp)
em = discord.Embed(colour=discord.Colour.red(),
description="{}".format(text),
timestamp=timestamp)
em.set_author(name=author, url=url)
em.set_footer(text="{}".format(board))
if "tim" in qpost:
file_id = qpost["tim"]
file_ext = qpost["ext"]
img_url = "https://media.8ch.net/file_store/{}{}".format(file_id, file_ext)
if file_ext in [".png", ".jpg"]:
em.set_image(url=img_url)
await self.bot.edit_message(message, embed=em)
# print(embed["author"])
示例12: dl_image
# 需要导入模块: import discord [as 别名]
# 或者: from discord import ext [as 别名]
def dl_image(self, url, ext="png"):
async with self.session.get(url) as resp:
test = await resp.read()
with open(self.files + "temp/temp." + ext, "wb") as f:
f.write(test)
示例13: on_command_error
# 需要导入模块: import discord [as 别名]
# 或者: from discord import ext [as 别名]
def on_command_error(self, ctx, error):
if self.check_test_environment(ctx):
if isinstance(error, commands.MissingRequiredArgument):
logger.error('[ManageCog on_command_error()] Missing argument: {0}'.format(error.param))
e_obj = await imported_embed(
ctx,
author=self.config.get_config_value('bot_profile', 'BOT_NAME'),
avatar=self.config.get_config_value('bot_profile', 'BOT_AVATAR'),
description="Missing argument: {}".format(error.param)
)
if e_obj is not False:
await ctx.send(embed=e_obj)
else:
# only prints out an error to the log if the string that was entered doesnt contain just "."
pattern = r'[^\.]'
if re.search(pattern, str(error)[9:-14]):
# author = ctx.author.nick or ctx.author.name
# await ctx.send('Error:\n```Sorry '+author+', seems like the command
# \"'+str(error)[9:-14]+'\"" doesn\'t exist :(```')
if type(error) is discord.ext.commands.errors.CheckFailure:
logger.warning(
"[ManageCog on_command_error()] user {} "
"probably tried to access a command they arent supposed to".format(ctx.author)
)
else:
traceback.print_exception(type(error), error, error.__traceback__, file=sys.stderr)
return
# this command is used by the TEST guild to create the channel from which this TEST container will process
# commands
示例14: roll
# 需要导入模块: import discord [as 别名]
# 或者: from discord import ext [as 别名]
def roll(self, ctx):
# TODO: use
# https://discordpy.readthedocs.io/en/latest/ext/commands/commands.html#basic-converters
# and only pass integers to the function?
await ctx.send(rng.generate_number(ctx.message))
await self.check.botroom_check(ctx.message)
示例15: get_context
# 需要导入模块: import discord [as 别名]
# 或者: from discord import ext [as 别名]
def get_context(self, message, cls=None):
return await super().get_context(message, cls=cls or utils.context.CustomContext)
# https://github.com/Rapptz/discord.py/blob/814b03f5a8a6faa33d80495691f1e1cbdce40ce2/discord/ext/commands/core.py#L1338-L1346