Строка фильтра в зависимости от фильтрованных и нефильтрованных ключевых слов

Я работал над небольшим скриптом, в котором я проверяю, является ли данная строка отфильтрованным или неотфильтрованным ключевым словом. В основном, если он отфильтрован, мы хотим добавить дополнительный ключ к dict. со значением True, если не фильтруется, то False. Как только это будет сделано, мы хотим вернуть True, если оно отфильтровано иначе False.

Прямо сейчас я сделал что-то вроде этого:

import re

payload = {"test_string": "hello World"}


def test(payload):
    def check_all(sentence, words):
        return all(re.search(r'b{}b'.format(word), sentence) for word in words)

    filtered_keywords = ["hello+world", "testing"]
    unfiltered_keywords = ["bad+word", "naughty+word"]

    if not any(check_all(payload["test_string"].lower(), word.split("+")) for word in filtered_keywords) or any(check_all(payload["test_string"].lower(), word.split("+")) for word in unfiltered_keywords):

        payload["keyword"] = False

        # Thread to send to discord
        # Thread(
        #     target=discord.create_embed,
        #     args=(
        #         payload,
        #     )
        # ).start()

        return False

    else:
        payload["keyword"] = True

        # Thread(
        #     target=discord.create_embed,
        #     args=(
        #         payload,
        #     )
        # ).start()

        return True


print(test(payload))

Часть с Thread — это место, где я отправляю сообщение в Discord, а затем возвращаю True или False в зависимости от оператора if-else.

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

Если есть еще какие-либо вопросы или недостающая информация, пожалуйста, комментируйте 🙂

0

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *