Python discord 模块,DMChannel() 实例源码

我们从Python开源项目中,提取了以下20个代码示例,用于说明如何使用discord.DMChannel()

项目:Excalibot    作者:endreman0    | 项目源码 | 文件源码
def timer_list(self, ctx):
        """Lists all of your currently active timers."""
        with db.Session() as session:
            timers = session.get(Timer, user_id=ctx.author.id).all()
        now = datetime.utcnow()
        e = discord.Embed(color=discord.Color.blurple())
        def format_timer(timer):
            channel = ctx.bot.get_channel(timer.channel_id)
            return 'ID {id}, in {channel}: {message} (in {duration})'.format(
                id=timer.id,
                channel='DMs' if isinstance(channel, discord.DMChannel) else channel.mention,
                message=timer.message or 'no message',
                duration=format.time(timer.end_time - now)
            )
        e.description = '\n'.join(map(format_timer, timers)) if timers else 'No timers set.'
        await ctx.send(embed=e)
项目:dogbot    作者:slice    | 项目源码 | 文件源码
def wait_for_response(self):
        """
        Waits for a message response from the message author, then returns the
        new message.

        The message we are waiting for will only be accepted if it was sent by
        the original command invoker, and it was sent in the same channel as
        the command message.
        """

        def check(m):
            if isinstance(m.channel, discord.DMChannel):
                # accept any message, because we are in a dm
                return True
            return m.channel.id == self.channel.id and m.author == self.author

        return await self.bot.wait_for('message', check=check)
项目:discord_bot    作者:Der-Eddy    | 项目源码 | 文件源码
def on_message(message):
    if message.author.bot or message.author.id in loadconfig.__blacklist__:
        return
    if isinstance(message.channel, discord.DMChannel):
        await message.author.send(':x: Sorry, but I don\'t accept commands through direct messages! Please use the `#bots` channel of your corresponding server!')
        return
    if bot.dev and not await bot.is_owner(message.author):
        return
    if bot.user.mentioned_in(message) and message.mention_everyone is False:
        if 'help' in message.content.lower():
            await message.channel.send('Eine volle Liste aller Commands gibts hier: https://github.com/Der-Eddy/discord_bot#commands-list')
        else:
            await message.add_reaction('??') # :eyes:
    if 'loli' in message.clean_content.lower():
        await message.add_reaction('??') # :lollipop:
    if 'instagram.com' in message.clean_content.lower():
        await message.add_reaction('??') # :poop:
    if len(message.attachments) > 0:
        try:
            await message.channel.send(await _fileCheck(message))
        except:
            pass
    await bot.process_commands(message)
项目:Nurevam    作者:Maverun    | 项目源码 | 文件源码
def on_message_delete(self,msg):
        if isinstance(msg.channel,discord.DMChannel):
            return
        if msg.author.id == self.bot.user.id:
            return
        if self.config.get(msg.guild.id):
            if self.config[msg.guild.id].get("delete"):
                if msg.author.bot and self.config[msg.guild.id].get("bot"):
                        return
                message = self.format_msg(msg.author)
                if msg.attachments:
                    message += "*has deleted attachments*"
                else:
                    message += "*has deleted the following message* in {}: ".format(msg.channel.mention)
                    message += "{}".format(msg.clean_content)
                await self.send(msg.guild.id,message)
项目:Nurevam    作者:Maverun    | 项目源码 | 文件源码
def command_checker(msg):
    try:
        if isinstance(msg.channel,discord.DMChannel):
            if "!reply" in msg.content:
                bot.command_prefix = commands.when_mentioned_or("!")
                return

        if bot.user.id == 181503794532581376:
            bot.command_prefix = commands.when_mentioned_or("$")
            bot.pm_help = False
            return

        cmd_prefix= await bot.db.redis.get("{}:Config:CMD_Prefix".format(msg.guild.id))
        cmd_prefix= cmd_prefix.split(",")
        if '' in cmd_prefix: #check if "none-space" as a command, if true, return, in order to prevent any spam in case, lower chance of getting kick heh.
            return
        bot.command_prefix = commands.when_mentioned_or(*cmd_prefix)
        if "help" in msg.content: #changing setting for help, if guild owner want Help command to be via PM or to guild.
            if await bot.db.redis.get("{}:Config:Whisper".format(msg.guild.id)) == "on":
                bot.pm_help =True
            else:
                bot.pm_help=False
    except:
        pass
项目:Excalibot    作者:endreman0    | 项目源码 | 文件源码
def connect(self, ctx, channel):
        me, channel_name = (channel.me, '%s\'s DMs' % channel.recipient) if isinstance(channel, discord.DMChannel) else (channel.guild.me, channel.name)
        if channel is None:
            await ctx.send('BAKA! I can\'t access that channel!')
            return
        elif channel.permissions_for(me).send_messages is False:
            await ctx.send('BAKA! I can\'t speak in that channel!')
            return
        await ctx.send('Connecting to %s' % channel_name)

        portal_key = (ctx.author, ctx.channel)
        self.portals[portal_key] = channel
        return portal_key
项目:SESTREN    作者:SirThane    | 项目源码 | 文件源码
def pm_check(self, ctx):
        if rewrite():
            return isinstance(ctx.channel, discord.DMChannel)
        else:
            return ctx.message.channel.is_private
项目:SESTREN    作者:SirThane    | 项目源码 | 文件源码
def in_pm(ctx):
    return isinstance(ctx.channel, discord.DMChannel) or isinstance(ctx.channel, discord.GroupChannel)
项目:dogbot    作者:slice    | 项目源码 | 文件源码
def on_command(self, ctx):
        # some metadata
        author = ctx.message.author
        checks = [c.__qualname__.split('.')[0] for c in ctx.command.checks]
        location = '[DM]' if isinstance(ctx.channel, DMChannel) else '[Guild]'

        # log command invocation
        logger.info(
            '%s Command invocation by %s (%d) "%s" checks=%s',
            location, author, author.id, ctx.message.content, ','.join(checks) or '(none)'
        )
项目:Chiaki-Nanami    作者:Ikusaba-san    | 项目源码 | 文件源码
def private_message_only(error_msg="This command can only be used in private messages"):
    def predicate(ctx):
        if isinstance(ctx.channel, (discord.GroupChannel, discord.DMChannel)):
            return True
        raise PrivateMessagesOnly(error_msg)
    return commands.check(predicate)
项目:GAFBot    作者:DiNitride    | 项目源码 | 文件源码
def on_command(self, ctx):
        if isinstance(ctx.channel, discord.DMChannel):
            self.logger.debug(f"Command: '{ctx.command}' "
                              f"User: '{ctx.author}'/{ctx.author.id} (In DM's)")
        else:
            self.logger.debug(f"Command: {ctx.command} "
                              f"Channel: '#{ctx.channel.name}'/{ctx.channel.id} "
                              f"Guild: '{ctx.guild}'/{ctx.guild.id} "
                              f"User: '{ctx.author}'/{ctx.author.id}")
        self.command_count += 1
项目:jose    作者:lnmds    | 项目源码 | 文件源码
def on_command(self, ctx):
        """Log command usage"""
        # thanks dogbot ur a good
        content = ctx.message.content
        content = self.clean_content(content)

        author = ctx.message.author
        guild = ctx.guild
        checks = [c.__qualname__.split('.')[0] for c in ctx.command.checks]
        location = '[DM]' if isinstance(ctx.channel, discord.DMChannel) else \
                   f'[Guild {guild.name} {guild.id}]'

        log.info('%s [cmd] %s(%d) "%s" checks=%s', location, author,
                 author.id, content, ','.join(checks) or '(none)')
项目:Discord-SelfBot    作者:IgneelDxD    | 项目源码 | 文件源码
def log_command(self, ctx, command):
        self.bot.commands_triggered[command] += 1
        if isinstance(ctx.channel, discord.DMChannel):
            destination = f'PM with {ctx.channel.recipient}'
        elif isinstance(ctx.channel, discord.GroupChannel):
            destination = f'Group {ctx.channel}'
        else:
            destination = f'#{ctx.channel.name},({ctx.guild.name})'
        log.info(f'In {destination}: {command}')

    # Cumstom Commands with prefix
项目:Discord-SelfBot    作者:IgneelDxD    | 项目源码 | 文件源码
def before_invoke(ctx):
    bot.commands_triggered[ctx.command.qualified_name] += 1
    if isinstance(ctx.channel, discord.DMChannel):
        destination = f'PM with {ctx.channel.recipient}'
    elif isinstance(ctx.channel, discord.GroupChannel):
        destination = f'Group {ctx.channel}'
    else:
        destination = f'#{ctx.channel.name},({ctx.guild.name})'
    log.info('In {}: {}'.format(destination, ctx.message.content.strip(ctx.prefix)))
项目:discord_bot    作者:Der-Eddy    | 项目源码 | 文件源码
def on_command(ctx):
    bot.commands_used[ctx.command.name] += 1
    msg = ctx.message
    if isinstance(msg.channel, discord.TextChannel):
        dest = f'#{msg.channel.name} ({msg.guild.name})'
    elif isinstance(msg.channel, discord.DMChannel):
        dest = 'Direct Message'
    elif isinstance(msg.channel, discord.GroupChannel):
        dest = 'Group Message'
    else:
        dest = 'Voice Channel'
    logging.info(f'{msg.created_at}: {msg.author.name} in {dest}: {msg.content}')
项目:dango.py    作者:khazhyk    | 项目源码 | 文件源码
def test_lookup(self):
        m = utils.TypeMap()

        m.put(discord.abc.User, "something")
        m.put(discord.TextChannel, "something else")
        m.put(discord.Guild, "another thing")

        self.assertEquals("something", m.lookup(discord.abc.User))
        self.assertEquals("something", m.lookup(discord.User))
        self.assertEquals("something", m.lookup(discord.Member))
        self.assertEquals("something else", m.lookup(discord.TextChannel))
        self.assertEquals(None, m.lookup(discord.DMChannel))
项目:dango.py    作者:khazhyk    | 项目源码 | 文件源码
def test_constructed(self):
        m = utils.TypeMap({
            discord.abc.User: "something",
            discord.TextChannel: "something else",
            discord.Guild: "another thing"
        })

        self.assertEquals("something", m.lookup(discord.abc.User))
        self.assertEquals("something", m.lookup(discord.User))
        self.assertEquals("something", m.lookup(discord.Member))
        self.assertEquals("something else", m.lookup(discord.TextChannel))
        self.assertEquals(None, m.lookup(discord.DMChannel))
项目:Nurevam    作者:Maverun    | 项目源码 | 文件源码
def on_command(self,ctx):
        if isinstance(ctx.message.channel,discord.DMChannel):
            return
        print("\033[96m<Event Command>\033[94m {0}:\033[96m {1.guild.name} ||| \033[93m {1.author} ||| \033[94m ({1.author.id})\033[92m ||| {1.clean_content}\033[00m".format(self.Time(), ctx.message))
项目:Nurevam    作者:Maverun    | 项目源码 | 文件源码
def on_message(self,msg):
            if self.bot.user.id == msg.author.id:
                if isinstance(msg.channel,discord.DMChannel) is False:
                    try:
                        if self.bot.log_config.get(msg.guild.id):
                            if str(msg.channel.id) in self.bot.log_config[msg.guild.id]['channel']:
                                return
                    except:
                        pass
                if isinstance(msg.channel,discord.TextChannel) is False:
                    utils.prCyan("PRIVATE")
                    utils.prGreen("<Event Send> {} : {} |||{}".format(self.Time(), msg.author.name, msg.clean_content))
                else:
                    try:
                        if msg.embeds:
                            table = PrettyTable() #best to use it i guess
                            data = msg.embeds[0].fields
                            if data:
                                for x in data:
                                    table.add_column(x.name,x.value.split("\n"))
                            content = str(msg.embeds[0].description) +"\n"
                            content +="\n" + str(table)
                        else:
                            content = msg.clean_content
                        utils.prGreen("<Event Send> {} : {} ||| {} ||| ({}) ||| {}".format(self.Time(), msg.author.name,msg.guild.name,msg.guild.id, content))
                    except:
                        utils.prGreen("<Event Send> {} : {} ||| {} ||| ({}) ||| {}".format(self.Time(), msg.author.name,msg.guild.name,msg.guild.id,msg.embeds))
项目:Nurevam    作者:Maverun    | 项目源码 | 文件源码
def on_command_completion(self,ctx):
        if ctx.command.cog_name is None or isinstance(ctx.message.channel,discord.DMChannel):
            return
        try:
            print(ctx.command.cog_name)
            check = await self.bot.db.redis.hgetall("{}:Config:Delete_MSG".format(ctx.message.guild.id))
            if check.get(ctx.command.cog_name.lower()) == "on":
                await ctx.message.delete()
            await self.redis.hincrby("{0.guild.id}:Total_Command:{0.author.id}".format(ctx.message),ctx.invoked_with, increment=1)
            await self.redis.hincrby("Info:Total_Command", ctx.invoked_with, increment=1)
            await self.redis.hincrby("{0.guild.id}:Total_Command:User:{0.author.id}".format(ctx.message),ctx.invoked_with, increment=1)
        except:
            utils.prRed("Failed to delete user command - {0.name}  - {0.id}\n".format(ctx.message.guild))
            utils.prRed(traceback.format_exc())