Проверка слова в текстовом файле

Привет, я создаю спам-спам для защиты от нежелательной почты для Discord, и я пытаюсь удалить сообщение, в котором есть определенные ключевые слова / URL-адреса.

Список ключевых слов сохраняется в отдельном файле /banned_words.json, и я хочу, чтобы бот читал из этого файла, когда ключевое слово обнаруживается в сообщении и удаляет это сообщение.

Вот фрагмент кода, с которым я работаю, я борюсь с этой строкой кода if word in word_set:, поэтому будет оценен пример того, как определить word.

def __init__(self, bot):
    self.bot = bot
    self.bannedwords = dataIO.load_json('data/spamfilter/banned_words.json')

async def banned_words(self, message):
    word = word in line.split():
    word_set = set(self.bannedwords)
    if word in word_set:
        await self.bot.delete_message(message)
        msg = await self.bot.send_message(
            message.channel,
            "{}, **Avertisement is not allowed on this server.**".format(
                message.author.mention
            )
        )
        await asyncio.sleep(6)
        await self.bot.delete_message(msg)
        return
0
задан 13 August 2018 в 14:24

1 ответ

Эта строка полностью неверна:

word = word in line.split():

Во-первых, в конце есть посторонний двоеточие. Во-вторых, x in y выводит логическое выражение, представляющее, находится ли x в y.

Вам придется перебирать все слова в сообщении и выполнять проверку для каждый из них:

word_set = set(self.bannedwords)
for word in line.split():
    if word in word_set:
0
ответ дан 15 August 2018 в 17:03
  • 1
    for word in line.split() кажется неправильным использованием. Я пытаюсь прочитать слова в .json, вот как я выполнил ваш ответ. `word_set = set (self.bannedwords) для слова в word_set: если слово в message.content: return await self.bot.delete_message (message)` Однако это удалит любую работу, которую я положил, так что, возможно, она должна что-то определять? – Dave Honley 13 August 2018 в 14:59
  • 2
    Что вы хотите сделать? Проверьте, есть ли в сообщении какие-либо слова из файла или проверьте, есть ли в файле какие-либо слова из сообщения? – stybl 13 August 2018 в 15:23
  • 3
    Проверьте, есть ли в сообщении какие-либо слова из файла – Dave Honley 13 August 2018 в 15:29

Другие вопросы по тегам:

Похожие вопросы: