В настоящее время я пытаюсь создать бота, который позволял бы участникам устанавливать конкретные ключевые слова, которые бот затем проверяет на сервере (в течение определенного периода времени).Если бот обнаруживает это ключевое слово в сообщении (только через другого бота / веб-крючка), он предупреждает пользователя, который установил это ключевое слово.
По сути, я хочу сделать что-то вроде этого сценария:
Member 1 --->
! Setkeyword новая ссылка
(затем бот устанавливаетключевые слова для члена 1, в частности, «новая ссылка»)
! listkeywords
(бот возвращает слово / фразу «новая ссылка»)
Участник 2 -->
! Setkeyword new shoe
(тогда бот устанавливает ключевые слова для члена 1 именно как "new shoe")
! Listkeywords
(бот возвращает слово / фразу «новая обувь»)
Лучшее, что я нашел, - это использование словаря и списка.Ключом к словарю был идентификатор пользователя участника, который устанавливает ключевое слово, а список содержит ключевое слово.
Вариант 1: dictt = {}
@bot.command()
async def add(ctx,keyword):
listy = []
listy.append(keyword)
dictt[ctx.author.id] = listy
Вариант 2:
dictt = {}
listy = []
@bot.command()
async def add(ctx,keyword):
listy.append(keyword)
dictt[ctx.author.id] = listy
Вариант 1: это приводило к созданию нового списка каждый раз, когда пользователь отправлял сообщениябот.То есть для каждого уникального пользователя в списке было только одно ключевое слово.Таким образом, если пользователь попытался добавить несколько ключевых слов, в список было добавлено только самое последнее *
Вариация 2. Это привело к добавлению ключевых слов от уникальных пользователей в один и тот же список, то есть каждый пользователь мог добавить несколько ключевых слов, ноони не были уникальными для каждого пользователя.
Как я могу добиться того, чтобы у каждого уникального пользователя был свой уникальный список, и при этом он мог добавить к нему несколько ключевых слов?