async def google(client, event, query: (str, 'query')): yield success, result_or_error_message = await search(query) if not success: yield result_or_error_message pages = [] limit = len(result_or_error_message) if limit: index = 0 while index < limit: result = result_or_error_message[index] index += 1 page_embed = Embed(result.title, result.description, Color.random(), result.url). \ add_footer(f'Page {index}/{limit}', client.avatar_url) image_url = result.image_url if (image_url is not None): page_embed.add_thumbnail(image_url) pages.append(page_embed) else: embed = Embed(query, '*no result*') pages.append(embed) await Pagination(client, event, pages)
async def command(client, message): guild = message.guild if guild is None: return welscome_screen = await client.welcome_screen_get(guild) if welscome_screen is None: embed = Embed( description=f'**{guild.name}** *has no welcome screen enabled*.' ) else: embed = Embed( f'Welcome to **{guild.name}**', f'{welscome_screen.description}\n\n*TOP THINGS TO DO HERE*') icon_url = guild.icon_url if (icon_url is not None): embed.add_thumbnail(icon_url) for welcome_channel in welscome_screen.welcome_channels: embed.add_field( f'{welcome_channel.emoji:e} {welcome_channel.description}', f'#{welcome_channel.channel:d}') await client.message_create(message.channel, embed=embed)
async def welcome_screen_(client, event): """Shows the guild's welcome screen.""" guild = event.guild if guild is None: abort('Guild only command.') if guild not in client.guild_profiles: abort('I must be in the guild to execute this command') yield welcome_screen = await client.welcome_screen_get(guild) if welcome_screen is None: yield Embed( description=f'**{guild.name}** *has no welcome screen enabled*.') return description = welcome_screen.description if (description is None): description = '*TOP THINGS TO DO HERE*' else: description = f'{welcome_screen.description}\n\n*TOP THINGS TO DO HERE*' embed = Embed(f'Welcome to **{guild.name}**', description) icon_url = guild.icon_url if (icon_url is not None): embed.add_thumbnail(icon_url) welcome_channels = welcome_screen.welcome_channels if (welcome_channels is not None): for welcome_channel in welcome_channels: embed.add_field( f'{welcome_channel.emoji:e} {welcome_channel.description}', f'#{welcome_channel.channel:d}') yield embed
async def user_( client, event, user: ('user', '*spy?*') = None, ): """Shows some information about your or about the selected user.""" if user is None: user = event.user guild = event.guild embed = Embed(user.full_name) created_at = user.created_at embed.add_field( 'User Information', f'Created: {created_at:{DATETIME_FORMAT_CODE}} [*{elapsed_time(created_at)} ago*]\n' f'Profile: {user:m}\n' f'ID: {user.id}') if guild is None: profile = None else: profile = user.guild_profiles.get(guild, None) if profile is None: if user.avatar_type is ICON_TYPE_NONE: color = user.default_avatar.color else: color = user.avatar_hash & 0xFFFFFF embed.color = color else: embed.color = user.color_at(guild) roles = profile.roles if roles is None: roles = '*none*' else: roles.sort() roles = ', '.join(role.mention for role in reversed(roles)) text = [] if profile.nick is not None: text.append(f'Nick: {profile.nick}') if profile.joined_at is None: await client.guild_user_get(user.id) # Joined at can be `None` if the user is in lurking mode. joined_at = profile.joined_at if joined_at is not None: text.append( f'Joined: {joined_at:{DATETIME_FORMAT_CODE}} [*{elapsed_time(joined_at)} ago*]' ) boosts_since = profile.boosts_since if (boosts_since is not None): text.append( f'Booster since: {boosts_since:{DATETIME_FORMAT_CODE}} [*{elapsed_time(boosts_since)}*]' ) text.append(f'Roles: {roles}') embed.add_field('In guild profile', '\n'.join(text)) embed.add_thumbnail(user.avatar_url_as(size=128)) return embed
async def command(client, message, user: Converter( 'user', ConverterFlag.user_default.update_by_keys(everywhere=True, profile=True), default_code='message.author')): guild = message.guild embed = Embed(user.full_name) embed.add_field( 'User Information', f'Created: {elapsed_time(user.created_at)} ago\n' f'Profile: {user:m}\n' f'ID: {user.id}') if guild is None: profile = None else: profile = user.guild_profiles.get(guild) if profile is None: if user.avatar_type is ICON_TYPE_NONE: color = user.default_avatar.color else: color = user.avatar_hash & 0xFFFFFF embed.color = color else: embed.color = user.color_at(guild) roles = profile.roles if roles is None: roles = '*none*' else: roles.sort() roles = ', '.join(role.mention for role in reversed(roles)) text = [] if profile.nick is not None: text.append(f'Nick: {profile.nick}') if profile.joined_at is None: await client.guild_user_get(user.id) text.append(f'Joined: {elapsed_time(profile.joined_at)} ago') boosts_since = profile.boosts_since if (boosts_since is not None): text.append(f'Booster since: {elapsed_time(boosts_since)}') text.append(f'Roles: {roles}') embed.add_field('In guild profile', '\n'.join(text)) embed.add_thumbnail(user.avatar_url_as(size=128)) if user.activity is not ActivityUnknown or user.status is not Status.offline: text = [] if user.status is Status.offline: text.append('Status : offline\n') elif len(user.statuses) == 1: for platform, status in user.statuses.items(): text.append(f'Status : {status} ({platform})\n') else: text.append('Statuses :\n') for platform, status in user.statuses.items(): text.append(f'**>>** {status} ({platform})\n') if user.activity is ActivityUnknown: text.append('Activity : *unknown*\n') elif len(user.activities) == 1: text.append('Activity : ') add_activity(text, user.activities[0]) else: text.append('Activities : \n') for index, activity in enumerate(user.activities, 1): text.append(f'{index}.: ') add_activity(text, activity) embed.add_field('Status and Activity', ''.join(text)) await client.message_create(message.channel, embed=embed)