예제 #1
0
    async def info(self, ctx):
        """Show bot's info"""
        embed = discord.Embed(title="Bot's info", type="rich embed")
        embed.set_thumbnail(
            url=discord.utils.find(lambda x: x.id == self.bot.user.id,
                                   ctx.message.guild.members).avatar_url)
        delta = datetime.now() - self.bot.created_at
        embed.set_footer(
            text="Created at " +
            self.bot.created_at.strftime("%d/%m/%Y %H:%M:%S") + " (" +
            utils.convert_seconds_to_str(delta.total_seconds()) + " ago)")

        verbose_version = str(
            subprocess.check_output("python --version", shell=True))
        python_version = verbose_version[2:(
            -5 if verbose_version.endswith("\\r\\n'") else -3)]
        python_version += " " + platform.architecture()[0][:-3] + " bits"
        commit = str(subprocess.check_output("git rev-parse HEAD",
                                             shell=True))[2:-3]
        os_infos = "Running on " + platform.platform()
        if platform.machine().endswith("64"):
            os_infos += " 64 bits"
        else:
            os_infos += " 32 bits"
        embed.add_field(name="Python's version", value=python_version)
        embed.add_field(name="Commit", value=commit)
        embed.add_field(name="Bot's version", value=self.bot.version)
        embed.add_field(name="Discord's version", value=discord.__version__)
        embed.add_field(name="Environment", value=os_infos)

        embed.add_field(name="Total commands typed",
                        value=str(self.bot.total_commands + 1))
        delta = (datetime.now() - self.bot.launched_at) + \
            self.bot.total_runtime
        msg = utils.convert_seconds_to_str(delta.total_seconds())
        if msg != "":
            embed.add_field(name="Total run time", value=msg)
        delta = datetime.now() - self.bot.launched_at
        msg = utils.convert_seconds_to_str(delta.total_seconds())
        if msg != "":
            embed.add_field(name="Run time", value=msg)
        embed.add_field(name="Servers", value=str(len(self.bot.guilds)))
        channels = self.bot.get_all_channels()
        nb_text_channels = 0
        nb_voice_channels = 0
        for server in self.bot.guilds:
            nb_text_channels += len(server.text_channels)
            nb_voice_channels += len(server.voice_channels)
        embed.add_field(name="Text channels", value=str(nb_text_channels))
        embed.add_field(name="Voice channels", value=str(nb_voice_channels))

        nb_users = 0
        for server in self.bot.guilds:
            nb_users += server.member_count
        embed.add_field(name="Members", value=str(nb_users))
        embed.add_field(name="Development server",
                        value="Join it by clicking [here](https://" +
                        self.bot.dev_server_invitation_link + ")")

        await ctx.message.channel.send(embed=embed)
예제 #2
0
    async def info(self, ctx):
        """Show bot's info"""
        embed = discord.Embed(title="Bot's info", type="rich embed")
        embed.set_thumbnail(url=discord.utils.find(lambda x: x.id == self.bot.user.id, \
                                                ctx.message.server.members).avatar_url)
        delta = datetime.now() - self.bot.created_at
        embed.set_footer(text="Created at " + self.bot.created_at.strftime("%d/%m/%Y %H:%M:%S") + " (" + \
                            utils.convert_seconds_to_str(delta.total_seconds()) + " ago)")

        python_version = str(
            subprocess.check_output("python --version", shell=True))[2:-5]
        python_version += " " + platform.architecture()[0][:-3] + " bits"
        commit = str(subprocess.check_output("git rev-parse HEAD",
                                             shell=True))[2:-3]
        os_infos = "Running on " + platform.platform()
        if platform.machine().endswith("64"):
            os_infos += " 64 bits"
        else:
            os_infos += " 32 bits"
        embed.add_field(name="Python's version", value=python_version)
        embed.add_field(name="Commit", value=commit)
        embed.add_field(name="Bot's version", value=self.bot.version)
        embed.add_field(name="Discord's version", value=discord.__version__)
        embed.add_field(name="Environment", value=os_infos)

        embed.add_field(name="Total commands typed",
                        value=str(self.bot.total_commands + 1))
        delta = (datetime.now() -
                 self.bot.launched_at) + self.bot.total_runtime
        msg = utils.convert_seconds_to_str(delta.total_seconds())
        if msg != "":
            embed.add_field(name="Total run time", value=msg)
        delta = datetime.now() - self.bot.launched_at
        msg = utils.convert_seconds_to_str(delta.total_seconds())
        if msg != "":
            embed.add_field(name="Run time", value=msg)
        embed.add_field(name="Servers", value=str(len(self.bot.servers)))
        embed.add_field(name="Text channels",
                        value=str(
                            len([
                                x for x in self.bot.get_all_channels()
                                if x.type == discord.ChannelType.text
                            ])))
        embed.add_field(name="Voice channels",
                        value=str(
                            len([
                                x for x in self.bot.get_all_channels()
                                if x.type == discord.ChannelType.voice
                            ])))

        known_members = []
        for server in self.bot.servers:
            for member in server.members:
                if member.id not in known_members:
                    known_members.append(member.id)
        embed.add_field(name="Members", value=str(len(known_members)))

        await self.bot.send_message(destination=ctx.message.channel,
                                    embed=embed)