Actualmente estoy trabajando en un sistema que elimina un canal cuando el usuario se va. Este sistema funciona, cuando un usuario lo solicita, se usa un comando para crear el canal y la identificación del miembro y la identificación del canal se almacenan en mongodb, como se muestra en la imagen a continuación:
Mi código actual para esto es:
@commands.Cog.listener() async def on_member_remove(self, member): channelfind = cluster["Channels"]["info"] if member.guild.id == testid: joinedat = diskord.utils.utcnow() - member.joined_at time = humanize.precisedelta(joinedat, format="%0.0f") embed = diskord.Embed(title="\u200b", color=0xfc8eac) embed: Embed = diskord.Embed( description= f'**{member.mention} left the server**\n:timer: **Joined:**\n{time} ago', color=0xfc8eac ) embed.set_author(name=member, icon_url=member.avatar.url) embed.set_thumbnail(url=member.avatar.url) embed.timestamp = datetime.datetime.utcnow() embed.set_footer(text=f'ID: {member.id} \u200b ') memberid = channelfind.find_one({"member_id": member.id}) if memberid is not None: log = testlog await self.bot.get_channel(log).send(embed=embed) else: passSin embargo, no estoy seguro de cómo puedo encontrar el channel_id que está con el member_id del usuario que se fue.
Cualquier ayuda sería apreciada gracias!
.find_one() devuelve un diccionario que representa el documento. Entonces, puedes hacer
memberid = channelfind.find_one({"member_id": member.id}) print(memberid['channel_id']) para obtener el channel_id .