Пример #1
8
    async def avatar(self, ctx, *, person: discord.User = None):
        """Get someone's avatar."""
        if person is None:
            person = ctx.author

        url = person.avatar_url_as(static_format='png')

        await ctx.send(url)
Пример #2
0
	async def robohash(self,ctx,user:discord.User):
		"""Robot pics."""
		if not user.nick == None:
			user = user.nick
		else:
			user = user.name
		await self.bot.say("https://robohash.org/{}.png".format(user.replace(" ","%20")))
Пример #3
0
	async def rip(self,ctx,user:discord.User):
		"""RIP."""
		if not user.nick == None:
			user = user.nick
		else:
			user = user.name
		await self.bot.say("<http://ripme.xyz/{}>".format(user.replace(" ","%20")))
Пример #4
0
    async def on_member_unban(self, guild: Guild, member: User):
        if guild.id != GuildConstant.id:
            return

        if member.id in self._ignored[Event.member_unban]:
            self._ignored[Event.member_unban].remove(member.id)
            return

        await self.send_log_message(
            Icons.user_unban,
            Colour.blurple(),
            "User unbanned",
            f"{member.name}#{member.discriminator} (`{member.id}`)",
            thumbnail=member.avatar_url_as(static_format="png"),
            channel_id=Channels.modlog)
Пример #5
0
 async def info(self, ctx, user: discord.User = None):
     """Gets information about a Discord user."""
     if user is None:
         user = ctx.author
     shared = str(len([i for i in ctx.bot.guilds if i.get_member(user.id)]))
     em = discord.Embed(title=f'Information for {user.display_name}:')
     em.add_field(name='Name:', value=user.name)
     em.add_field(name='Discriminator:', value=user.discriminator)
     em.add_field(name='ID:', value=user.id)
     em.add_field(name='Bot:', value=user.bot)
     em.add_field(name='Created At:', value=user.created_at)
     em.add_field(name='Shared Servers:', value=shared)
     em.add_field(name='Avatar URL:', value=user.avatar_url)
     em.set_thumbnail(url=user.avatar_url_as(static_format='png'))
     await ctx.send(embed=em)
Пример #6
0
    async def create(cls, *, creator: discord.User, bot, session, duration):
        creator_avatar = creator.avatar_url_as(format="png")

        async with session.get(str(creator_avatar)) as avatar:
            avatar = await avatar.read()

        guild = await bot.create_guild(
            name=f"{creator.name}'s {choice(ADJECTIVES)} party", icon=avatar)

        await asyncio.sleep(2)

        # refresh from cache
        guild = bot.get_guild(guild.id)

        return cls(bot, creator, guild, duration)
Пример #7
0
    async def on_member_unban(self, guild: discord.Guild, member: discord.User) -> None:
        """Log member unban event to mod log."""
        if guild.id != GuildConstant.id:
            return

        if member.id in self._ignored[Event.member_unban]:
            self._ignored[Event.member_unban].remove(member.id)
            return

        member_str = escape_markdown(str(member))
        await self.send_log_message(
            Icons.user_unban, Colour.blurple(),
            "User unbanned", f"{member_str} (`{member.id}`)",
            thumbnail=member.avatar_url_as(static_format="png"),
            channel_id=Channels.mod_log
        )
Пример #8
0
 async def triggered(self, ctx, member: discord.User = None):
     """Make your or someone else's avatar triggered."""
     if "dagpi_token" not in self.bot.config:
         return
     if not member:
         member = ctx.author
     url = "https://api.dagpi.xyz/image/triggered/?url=" + str(
         member.avatar_url_as(format="png", size=1024))
     async with self.bot.session.get(url=url,
                                     headers={
                                         "Authorization":
                                         self.bot.config["dagpi_token"]
                                     }) as res:
         image = io.BytesIO(await res.read())
         img = discord.File(fp=image, filename="triggered.gif")
         await ctx.send(file=img)
Пример #9
0
    async def level(self, ctx, user: discord.User = None):
        if not user: user = ctx.author

        db = leveldb(user.id)
        profile = db.get()

        return await ctx.send(embed=discord.Embed(
            title=f"{user.name} | Level Info",
            description=dedent(f"""◽ **Level ➜** {profile['level']}
            ◽ **Experience ➜** {profile['xp']}
            ◽ **Needed ➜** {profile['level']*3-profile['xp']}
            
            *Check out the **[Dashboard]({files.Data('config').yaml_read()['dashURL']})** for all the global leaderboard!*"""
                               ),
            color=discord.Color.red()).set_thumbnail(url=user.avatar_url_as(
                static_format="png")))
Пример #10
0
    async def avatar_static(self,
                            ctx: cmd.Context,
                            *,
                            user: discord.User = None):
        """Gives the URL to a user's non-animated avatar"""

        if not user:
            user = ctx.author

        url = str(user.avatar_url_as(format="png", size=4096))

        embed = discord.Embed(title=f"Avatar URL for @{user}", description=url)
        embed.set_image(url=url)
        embed.set_footer(text=f"ID: {user.id}")

        await ctx.prompt(embed=embed)
Пример #11
0
  async def stat(self, ctx, *, user: discord.User = None):
    
    if not user:

      user = ctx.author

    with open("data/cookie.json", "r") as f:

      l = json.load(f)

    cookies = l[str(user.id)]

    emb = discord.Embed(description = f"**{cookies}** Cookies 🍪!", colour = 0xa8603d)
    emb.set_author(name = user.name, icon_url = user.avatar_url_as(static_format="png"))

    await ctx.send(embed = emb)
Пример #12
0
 async def user_info(self, ctx, user: discord.User = None):
     """Returns information about the given user"""
     if not user:
         user = ctx.message.author
     member = ctx.message.guild.get_member(user.id)
     em = discord.Embed(colour=discord.Colour.gold())
     inlineFields = [{
         "name": "ID",
         "value": member.id
     }, {
         "name": "Nickname",
         "value": member.nick if not None else "None"
     }, {
         "name": "Status",
         "value": member.status
     }, {
         "name": member.activity.state,
         "value": member.activity.name
     } if member.activity else {
         "name": "Activity",
         "value": "None"
     }, {
         "name": "Mention",
         "value": member.mention
     }]
     for field in inlineFields:
         em.add_field(**field, inline=True)
     avatar = user.avatar_url_as(
         size=64)  # if not None else discord.Embed.Empty
     registeredAt = pytz.utc.localize(member.created_at)
     joinedAt = pytz.utc.localize(member.joined_at)
     em.add_field(
         name="Joined",
         value=
         f"{human(joinedAt, precision=4)} ({joinedAt.strftime('%d-%m-%Y %H:%M:%s %Z')})"
     )
     em.add_field(name="Roles",
                  value=", ".join([role.name for role in member.roles
                                   ]).replace("@everyone",
                                              "@\u200beveryone"))
     em.set_author(name=member.name, icon_url=avatar)
     em.set_thumbnail(url=avatar)
     em.set_footer(
         text=
         f"Created: {human(registeredAt, precision=4)} ({registeredAt.strftime('%d-%m-%Y %H:%M:%s %Z')})"
     )
     await ctx.send(embed=em)
Пример #13
0
    async def enable_command(self, server_id, command, user_id=None):
        log.debug(f'enabling {command} command for server {server_id}')

        plugin_name = self._plugin_for_cmd(command)

        if not plugin_name:
            return False

        if not self.mbot.perms_check(User(id=user_id), su=True):
            # Skip Core plugin.
            if plugin_name == 'Core':
                return False

            # Skip 'su' commands if not superuser
            if self.commands[command][2].info['perms'][0]:
                return False

        doc = await self.mbot.mongo.config.find_one({
            'server_id': server_id,
            'plugins': {
                '$elemMatch': {
                    'name': plugin_name
                }
            }
        })

        commands = await self.commands_for_server(server_id)
        # Command is already enabled.
        if command in commands:
            return False

        if doc is not None:
            ret = await self.mbot.mongo.config.update_one(
                {
                    'server_id': server_id,
                    'plugins': {
                        '$elemMatch': {
                            'name': plugin_name
                        }
                    }
                }, {'$push': {
                    'plugins.$.commands': command
                }})

            return bool(ret)
Пример #14
0
    async def dmhistory(self, ctx: utils.TypedContext, user: discord.User, amount: int = 10):
        messages: list[str] = []
        async for message in user.history(limit=amount):
            if message.embeds:
                if message.embeds[0].author:
                    messages.append(f"`{message.embeds[0].author.name} ⚙️`: {message.embeds[0].description}")
                else:
                    messages.append(f"`{message.author} ⚙️`: {message.embeds[0].description}")
            else:
                messages.append(f"`{message.author}`: {message.content}")

        messages.reverse()
        embed = discord.Embed(
            title=f"Message history of {user.name}",
            description="\n".join(messages)
        )

        await ctx.send(embed=embed)
Пример #15
0
 async def kick(self, ctx, user: discord.User, *, reason: str = None):
     admin = ctx.author
     if user == admin:
         await ctx.send("You can't unban yourself.")
         return
     await ctx.guild.kick(
         user,
         reason=
         f"Kicked by {longform_username(admin)}: {reason if reason else 'No reason specified'}"
     )
     embed = discord.Embed(
         title=f"Kicked",
         description=
         f"{longform_username(user)} kicked by {longform_username(admin)}: {reason if reason else 'No reason specified'}"
     )
     embed.set_author(name=longform_username(user),
                      icon_url=user.avatar_url_as(format="png"))
     await ctx.send(embed=embed)
Пример #16
0
 def __init__(self, data: Dict[str, Any], state: ConnectionState) -> None:
     self._state = state
     self.responded = False
     self.id = int(data["id"])
     self.application_id = int(data["application_id"])
     self.type = InteractionType(int(data["type"]))
     self.guild_id = int(data["guild_id"]) if "guild_id" in data else None
     self.channel_id = int(
         data["channel_id"]) if "channel_id" in data else None
     self.member = (InteractionMember(
         data=data["member"], state=state, guild=self.guild)
                    if "member" else None)
     self.user = (
         User(data=data["user"], state=self._state)
         if "user" in data else None  # type: ignore
     )
     self.token = data["token"]
     self.version = int(data["version"])
Пример #17
0
    async def avatar(self, ctx, user: discord.User = None):
        """ Displays what avatar user is using """

        user = user or ctx.author

        Zenpa = self.bot.get_user(373863656607318018)
        if user is self.bot.user:
            embed = discord.Embed(color=self.bot.embed_color,
                                  title=f'{self.bot.user}\'s Profile Picture!')
            embed.set_image(url=self.bot.user.avatar_url_as(static_format='png'))
            embed.set_footer(text=f'Huge thanks to {Zenpa} for this avatar')
            await ctx.send(embed=embed)

        else:
            embed = discord.Embed(color=self.bot.embed_color,
                                  title=f'{user}\'s Profile Picture!')
            embed.set_image(url=user.avatar_url_as(static_format='png'))
            # embed.set_footer(text=f'© {self.bot.user}')
            await ctx.send(embed=embed)
Пример #18
0
    async def avatar(self, ctx: SlashContext, user: discord.User = None):
        '''
        Displays the avatar of a target user, or yourself by default
        Made by Slyflare, PhtephenLuu
        '''
        if not user:
            user = ctx.author

        # col = user.colour if type(user) == discord.Member \
        #     else discord.Color.dark_blue() TODO

        col = discord.Color.dark_blue()

        a = discord.Embed(color=col,
                          title=f"{user.display_name}'s Avatar",
                          url=str(user.avatar_url_as(static_format="png")))

        a.set_image(url=user.avatar_url)
        await ctx.send(embed=a)
Пример #19
0
    async def avatar(self, ctx, *, user: discord.User = None):
        """
		Returns a mentioned users avatar
		Example:
		{command_prefix}avatar @RoxBot#4170
		{command_prefix}avatar RoxBot
		"""
        if not user:
            user = ctx.author

        url = user.avatar_url_as(static_format="png")
        if url.split(".")[-1] == "gif":
            avaimg = '{0.name}.gif'.format(user)
        else:
            avaimg = '{0.name}.png'.format(user)

        await roxbot.http.download_file(url, avaimg)
        await ctx.send(file=discord.File(avaimg))
        os.remove(avaimg)
Пример #20
0
async def annoy_reminder(ctx, user: User, reminder: str):
    counter = 0
    print("Reminding user: "******"User: "******" has responded to the reminders")
            await user.send("Quota satisfied, committing sepuku")
            await user.send(file=File('bonk.wav'))
            return

        await user.send(
            "Oi remember to " + reminder + "!\n" +
            "This will repeat every minute until I detect three or more messages from you!\n"
            "(I will check every minute)")

        await asyncio.sleep(60)
Пример #21
0
    async def inventory(self, ctx, u: discord.User = None):
        if u is None:
            u = ctx.author
        if u.bot:
            await self.send(ctx, "Remember, bots don't have any rights, and as a result can't possess currency.")
            return
        pick = await self.db.get_pickaxe(u.id)
        contents = f"**{pick} pickaxe**\n"

        bal = await self.db.get_balance(u.id)
        if not bal <= 0:
            s = "s"
            if bal == 1:
                s = ""
            contents += f"{bal} emerald{s}{self.emerald}\n"

        inv = discord.Embed(color=discord.Color.green(), description=contents)

        contents = ""
        i = 0
        rows = 10
        items = await self.db.get_items(u.id)
        for item in items:
            i += 1
            m = await self.db.get_item(u.id, item[0])
            contents += f"{m[1]}x **{m[0]}** ({m[2]}{self.emerald})\n"
            if i % rows == 0:
                if i <= rows:
                    inv.add_field(name="Sellable Items", value=contents, inline=False)
                else:
                    inv.add_field(name="More Sellable Items", value=contents, inline=False)
                contents = ""
        if contents is not "":
            if i <= rows:
                inv.add_field(name="Sellable Items", value=contents, inline=False)
            else:
                inv.add_field(name="More Sellable Items", value=contents, inline=False)

        if not u.avatar_url:
            inv.set_author(name=f"{u.display_name}'s Inventory", url=discord.Embed.Empty)
        else:
            inv.set_author(name=f"{u.display_name}'s Inventory", icon_url=str(u.avatar_url_as(static_format="png")))
        await ctx.send(embed=inv)
Пример #22
0
    async def userinfo(self, ctx, user: discord.User = None):
        temp = ''
        if user is None:
            await ctx.send('Please provide a user to get info')
            return
        temp = ((f'- User\'s ID: {user.id}\n') +
                (f'- User\'s discrim: {user.discriminator}\n') +
                ('- Is User a bot?: '))
        temp = temp + ('YES' if user.bot else 'NO')

        embed = discord.Embed(title='Userinfo',
                              description=f'misc. info about {user.name}',
                              colour=discord.Colour.blue())

        embed.add_field(name=user, value=temp)
        if user.avatar is not None:
            embed.set_thumbnail(url=user.avatar_url_as(size=64))

        await ctx.send(':mag:', embed=embed)
Пример #23
0
    async def post_modlog_entry(self, guild_id: int, action: str, target: discord.User, moderator: discord.User,
                                reason: str, time: str='', color=0xbe2f2f):
        config = await self.bot.db.get_config(guild_id)
        log = interaction.get_channel(self.bot, config['logChannel'])

        if log:
            permissions = log.permissions_for(log.guild.me)
            if permissions.send_messages and permissions.embed_links:
                embed = discord.Embed(color=color,
                                      title=f'**User {action}**',
                                      description=f'**Target:** {target} ({target.id})\n'
                                                  f'**Reason:** {reason}',
                                      timestamp=datetime.utcnow())
                embed.set_footer(text=f'Performed by {moderator}', icon_url=moderator.avatar_url_as(format='png'))

                if time:
                    embed.description += f'\n**Duration:** {time}'

                await log.send(embed=embed)
Пример #24
0
    async def unban(self, ctx, *, member: discord.User = None):
        if member == None:
            embed = discord.Embed(color=0xc80afc,
                                  title="Unban Error",
                                  description="Please mention a user to unban")
            await ctx.send(embed=embed, delete_after=5.0)
        else:
            banned_users = await ctx.guild.bans()
            member_name, member_discriminator = member.split('#')
            for ban_entry in banned_users:
                user = ban_entry.user

                if (user.name, user.discriminator) == (member.name,
                                                       member.discriminator):
                    embed = discord.Embed(
                        color=0x62ff00,
                        title="Unban",
                        description=f"{user.mention} has been unbanned")
                    await ctx.guild.unban(user)
                    await ctx.send(embed=embed, delete_after=2.0)
Пример #25
0
    def from_payload(payload):
        """Creates a Message from a Payload by extracting relevant items.

        Args:
            payload: A MESSAGE_CREATE payload.

        Returns:
            A message.
        """
        data = payload.data
        return Message(content=data["content"],
                       channel_id=data["channel_id"],
                       author_id=data["author"]["id"],
                       username=data["author"]["username"] + "#" +
                       data["author"]["discriminator"],
                       timestamp=data["timestamp"],
                       mentions=[
                           User.from_json(user_data)
                           for user_data in data["mentions"]
                       ])
Пример #26
0
    async def balance(self, ctx, *, user: discord.User = None):
        """Shows the balance of a user or the message sender"""

        if user is None:
            user = ctx.author

        if user.bot:
            if user.id == self.bot.user.id:
                await self.bot.send(ctx, ctx.l.econ.bal.bot_1)
            else:
                await self.bot.send(ctx, ctx.l.econ.bal.bot_2)
            return

        db_user = await self.db.fetch_user(user.id)

        u_items = await self.db.fetch_items(user.id)

        vault_bal = db_user['vault_bal']

        total_wealth = db_user['emeralds'] + (
            (0 if vault_bal is None else vault_bal) * 9)
        total_wealth += sum(
            [u_it['sell_price'] * u_it.get('amount', 0) for u_it in u_items])

        embed = discord.Embed(color=self.d.cc)
        embed.set_author(name=ctx.l.econ.bal.s_emeralds.format(
            user.display_name),
                         icon_url=user.avatar_url_as())

        embed.description = ctx.l.econ.bal.total_wealth.format(
            total_wealth, self.d.emojis.emerald)

        embed.add_field(name=ctx.l.econ.bal.pocket,
                        value=f'{db_user["emeralds"]}{self.d.emojis.emerald}')
        embed.add_field(
            name=ctx.l.econ.bal.vault,
            value=
            f'{db_user["vault_bal"]}{self.d.emojis.emerald_block}/{db_user["vault_max"]}'
        )

        await ctx.send(embed=embed)
Пример #27
0
 async def userinfo(self, ctx, user: discord.User = None):
     '''Gets info about a user.'''
     async with ctx.typing():
         if user is None:
             user = ctx.author
         e = discord.Embed(color=0x43b2c2)
         username = f'{user.name}#{user.discriminator}'
         join_date = user.created_at
         e.set_image(url=user.avatar_url)
         e.add_field(name='Name', value=username)
         e.add_field(name='Account Created', value=join_date)
         if ctx.guild:
             join_guild_date = ctx.guild.get_member(user.id).joined_at
             e.add_field(name='Joined Guild',
                         value=join_guild_date,
                         inline=False)
         e.add_field(name='ID', value=user.id, inline=False)
         e.add_field(name='Bot Account', value=user.bot)
         e.add_field(name='Animated Avatar',
                     value=user.is_avatar_animated())
         await ctx.send(embed=e)
Пример #28
0
    async def wait_for_button_click(self,
                                    message: Message,
                                    check=None,
                                    timeout: float = None):
        while True:
            res = await self.bot.wait_for("socket_response",
                                          check=check,
                                          timeout=timeout)

            if res["t"] != "INTERACTION_CREATE":
                continue

            if message.id != int(res["d"]["message"]["id"]):
                continue
            break

        button_id = res["d"]["data"]["custom_id"]
        resbutton = None

        for buttons in res["d"]["message"]["components"]:
            for button in buttons["components"]:
                if button["style"] == 5:
                    continue

                if button["custom_id"] == button_id:
                    resbutton = button
        ctx = Context(
            bot=self.bot,
            client=self,
            user=User(state=self.bot._get_state(),
                      data=res["d"]["member"]["user"]),
            button=Button(
                style=resbutton["style"],
                label=resbutton["label"],
                id=resbutton["custom_id"],
            ),
            raw_data=res,
            message=message,
        )
        return ctx
Пример #29
0
    async def dmhistory(self, ctx, user: discord.User, amount=10):
        messages = []
        async for message in user.history(limit=amount):
            if message.embeds:
                if message.embeds[0].author:
                    messages.append(
                        f"``{message.embeds[0].author.name}⚙️``:{message.embeds[0].description}"
                    )
                else:
                    messages.append(
                        f"``{message.author}⚙️``:{message.embeds[0].description}"
                    )

            else:
                messages.append(f"``{message.author}``:{message.content}")
        tosend = ""
        messages.reverse()
        for message in messages:
            tosend += f"\n{message}"
        embed = discord.Embed(title=f"Message history of {user.name}",
                              description=tosend)
        await ctx.send(embed=embed)
Пример #30
0
    async def inventory(self, ctx, u: discord.User):
        pick = await self.db.getPick(u.id)
        contents = pick + " pickaxe\n"

        bal = await self.db.getBal(u.id)
        if bal == 1:
            contents += "1x emerald\n"
        else:
            contents += str(bal) + "x emeralds\n"

        beecount = await self.db.getBees(u.id)
        if beecount > 1:
            contents += str(beecount) + "x jars of bees (" + str(
                beecount * 3) + " bees)\n"
        if beecount == 1:
            contents += str(beecount) + "x jar of bees (" + str(
                beecount * 3) + " bees)\n"

        netheritescrapcount = await self.db.getScrap(u.id)
        if netheritescrapcount > 1:
            contents += str(
                netheritescrapcount) + "x chunks of netherite scrap\n"
        if netheritescrapcount == 1:
            contents += str(
                netheritescrapcount) + "x chunk of netherite scrap\n"

        items = await self.db.getItems(u.id)
        for item in items:
            m = await self.db.getItem(u.id, item[0])
            contents += f"{m[1]}x {m[0]} (sells for {m[2]}<:emerald:653729877698150405>)\n"

        inv = discord.Embed(color=discord.Color.green(), description=contents)
        if not u.avatar_url:
            inv.set_author(name=f"{u.display_name}'s Inventory",
                           url=discord.Embed.Empty)
        else:
            inv.set_author(name=f"{u.display_name}'s Inventory",
                           icon_url=str(u.avatar_url_as(static_format="png")))
        await ctx.send(embed=inv)
Пример #31
0
    async def head_pat(self,ctx,user: discord.User):
        # profile_pic = user.avatar_url
        profile_pic = user.avatar_url_as(format='png')
        response = requests.get(profile_pic, stream = True)

        if response.status_code == 200:
            response.raw.decode_content = True
            os.chdir('pet')    
            try:
                os.remove('profile.png')
            except:
                pass

            with open('profile.png', 'wb') as f:
                shutil.copyfileobj(response.raw, f)
                import pet.head_pats
                pet.head_pats.main()
               
                await ctx.send(file=discord.File('output.gif'))
                
                os.chdir('..')
        else:
            await ctx.send("A ocurrido un error :cry:")
async def ban(ctx, member:discord.User, *, reason=None):
    if ctx.message.author.permissions_in(ctx.channel).administrator:
        if member != ctx.author:
            if not member.permissions_in(ctx.channel).administrator:
                if member is None:
                    await ctx.send('<a:redtick:712789179372798037> ***User not defined***')
                    return
                else:
                    try:
                        await member.ban(reason=reason, delete_message_days = 0)
                        await ctx.send(f'<a:greentick:712789179595227256> {member.mention} ***has been banned***')
                    except:
                        await ctx.send (f'<a:redtick:712789179372798037> ***Invalid user***')
                try:
                    await member.send(f'***You have been banned from {ctx.guild.name}.*** \n``Reason:``\n **{reason}**')
                except:
                    await ctx.send ("<a:redtick:712789179372798037> **Unable to DM this user**")
            else:
                await ctx.send(f"<a:redtick:712789179372798037> ***Can't ban this user!***")
        else:
            await ctx.send(f"<a:redtick:712789179372798037> ***You can't ban yourself!***")

    else:
        await ctx.send('<a:redtick:712789179372798037> ***Missing Permissions***')
Пример #33
0
 async def createdm(self, ctx, user: discord.User):
     """Create a DM with a user with the bot as a middle man. One user per mod channel.
     [Format: %createdm (user id)]"""
     try:
         dm_channel = await ex.get_dm_channel(user=user)
         if dm_channel:
             user = await ex.get_user(user.id)
             user.mod_mail_channel_id = ctx.channel.id
             ex.cache.mod_mail[user.id] = ctx.channel.id  # full list
             await ex.conn.execute(
                 "INSERT INTO general.modmail(userid, channelid) VALUES ($1, $2)",
                 user.id, ctx.channel.id)
             await dm_channel.send(
                 f"> {ctx.author.display_name} ({ctx.author.id}) has created a DM with you. All messages sent here will be sent to them."
             )
             await ctx.send(
                 f"> A DM has been created with {user.id}. All messages you type in this channel will be sent to the user."
             )
         else:
             await ctx.send(
                 "> I was not able to create a DM with that user.")
     except Exception as e:
         await ctx.send(f"ERROR - {e}")
         log.console(e)
Пример #34
0
    async def au(self, ctx, user: discord.User = None, *, impostor: bool):
        async with ctx.channel.typing():
            uname = urllib.parse.quote(
                (str(ctx.author) if not user else str(user)))
            av = (ctx.author.avatar_url_as(format='png')
                  if not user else user.avatar_url_as(format='png'))
            impostor = ('true' if impostor else 'false')
            rand = random.randint(0, 10000)
            async with aiohttp.ClientSession() as session:
                url = f"https://some-random-api.ml/premium/amongus?avatar={av}&username={uname}&impostor={impostor}&key={self.bot.sra_api}"
                async with session.get(url) as resp:
                    if resp.status == 200:
                        f = await aiofiles.open(f'data/amongus.{rand}.gif',
                                                mode='wb')
                        await f.write(await resp.read())
                        await f.close()
                    else:
                        await ctx.reply(
                            f"There was an error with the api! ```json \n{await resp.json()}\n```"
                        )
                        return

            file = discord.File(open(f'data/amongus.{rand}.gif', 'rb'))
            await ctx.reply(file=file)
Пример #35
0
 async def meme_user(self, ctx, user: discord.User, line1: URLString, line2: URLString):
     """Generates a meme on a users avatar."""
     await ctx.invoke(self.meme_custom, link=user.avatar_url_as(format="png"), line1=line1, line2=line2)