как бы удалить определенные смайлики на дискорд сервере, с python - PullRequest
0 голосов
/ 16 марта 2020

Я и несколько друзей создаем виртуальный класс перед закрытием школы коронавирусов. Единственная проблема заключается в том, что люди могут использовать смайлики, такие как средний палец и региональные указатели, для написания ругательств.

Как бы я сделал так, чтобы мой бот удалял определенные смайлики?

import discord

token = ("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx")
client = discord.Client()  # starts the discord client.

@client.event
async def on_ready():  # method expected by client. This runs once when connected
    print(f'We have logged in as {client.user}')  # notification of login.

@client.event
async def on_message(message):  # event that happens per any message.    
     # i dont know what to put here :(

client.run(token)  # recall my token was saved!

1 Ответ

0 голосов
/ 17 марта 2020

Вот краткий пример Cog, который показывает, как вы можете собрать смайлики, которые нужно запретить, и горячие, чтобы проверить, есть ли они в сообщениях. Это должно работать как для пользовательских, так и для анимированных эмодзи.

from discord.ext.commands import Cog, command

class EmojiRemover(Cog):
    def __init__(self, bot):
        self.bot = bot
        self.banned_emoji = set()
    def react_check(self, message):
        def check(reaction, user):
            return reaction.message.id == message.id
        return check
    @command()
    async def add_emoji(self, ctx):
        msg = await ctx.send("React with forbidden emojis")
        while True:
            reaction, user = await self.bot.wait_for('reaction_add', check=self.react_check(msg))
            self.banned_emoji.add(str(reaction.emoji))
    @Cog.listener()
    async def on_message(self, message):
        if message.author.bot:
            return
        print(message.content)
        if any(e in message.content for e in self.banned_emoji):
            await message.delete()
    @command()
    async def get_emoji(self, ctx):
        await ctx.send(' '.join(map(str, self.banned_emoji)))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...