Когда в коде есть пробелы он не работает
Есть дс бот который должен при сообщении проверять есть ли в сообщении запрещеные слова, но когда в сообщении стоит пробел он ложно срабатывает, вот сам код:
blacklist = ["test1","test2"]
@bot.event
async def on_message(message: discord.Message):
ctx = await bot.get_context(message)
msgid = ctx.message.id
msgc = await ctx.fetch_message(msgid)
msg = msgc.content
author = ctx.author
author_roles = author.roles
if str(author.id) == "856512828785426472":
pass
else:
if "966009778792960120" in str(author.roles):
for word in str(msg):
if str(word) in str(blacklist):
await ctx.send("5.4 нарушаешь?")
break
Ответы (1 шт):
Автор решения: RuslanZanevskiy
→ Ссылка
Используйте split что бы получить все слова из сообщения в качестве списка и по нему уже проверять.
blacklist = ['test', 'bad']
msg = 'some message with bad words'
for word in msg.split():
# msg.split() вернет ['some', 'message', 'with', 'bad', 'words']
if word in blacklist:
print('Bad word!')
break