def server(self, event, guild_id=None):
guild = self.state.guilds.get(guild_id) if guild_id else event.guild
if not guild:
raise CommandFail('invalid server')
content = []
content.append(u'**\u276F Server Information**')
created_at = to_datetime(guild.id)
content.append(u'Created: {} ago ({})'.format(
humanize.naturaldelta(datetime.utcnow() - created_at),
created_at.isoformat(),
))
content.append(u'Members: {}'.format(len(guild.members)))
content.append(u'Features: {}'.format(', '.join(guild.features) or 'none'))
content.append(u'\n**\u276F Counts**')
text_count = sum(1 for c in guild.channels.values() if not c.is_voice)
voice_count = len(guild.channels) - text_count
content.append(u'Roles: {}'.format(len(guild.roles)))
content.append(u'Text: {}'.format(text_count))
content.append(u'Voice: {}'.format(voice_count))
content.append(u'\n**\u276F Members**')
status_counts = defaultdict(int)
for member in guild.members.values():
if not member.user.presence:
status = Status.OFFLINE
else:
status = member.user.presence.status
status_counts[status] += 1
for status, count in sorted(status_counts.items(), key=lambda i: str(i[0]), reverse=True):
content.append(u'<{}> - {}'.format(
STATUS_EMOJI[status], count
))
embed = MessageEmbed()
if guild.icon:
embed.set_thumbnail(url=guild.icon_url)
embed.color = get_dominant_colors_guild(guild)
embed.description = '\n'.join(content)
event.msg.reply('', embed=embed)
评论列表
文章目录