Как сохранить данные пользователя постоянно, не используя список в discord.py? - PullRequest
0 голосов
/ 04 августа 2020

В основном то, что я пытаюсь сделать, - это создать команду черного списка, которая удаляет плохие слова всякий раз, когда они произносятся. И я хочу, чтобы модератор сервера мог вручную заносить свои слова в черный список. Список хранит данные только до тех пор, пока бот работает. Так что это не работает. Я хочу в основном постоянно сохранять ввод пользователя. Как я могу это сделать? Я использую discord.py rewrite btw.

1 Ответ

1 голос
/ 04 августа 2020

Ну вам нужно сохранить данные на диск или в какую-то базу данных. Самый простой способ сделать это - сохранить все слова из черного списка в одном текстовом файле.

Вы можете использовать следующие функции:

def saveFilterToFile(filterList,  filename):
  f = open(filename, "w")
  for word in filterList:
    f.write(word+"\n")
  f.close()

def loadFilterFromFile(filename):
  f = open(filename, "r")
  filterList = f.readlines()

  #remove new lines
  for i in range(0, len(filterList)):
    filterList[i] = filterList[i][:len(filterList[i])-1] 

  f.close()
  return filterList

И просто, когда добавляется новое слово из черного списка, просто добавьте его в свой список фильтров и сделайте что-то вроде этого:

saveFilterToFile(blacklistedWords, "wordblacklist.txt")

И каждый раз, когда ваш бот запускается, просто загружайте слова из черного списка из файла, который вы сохранили до

blacklistedWords = loadFilterFromFile("wordblacklist.txt")

Вы также должны немного измените функции для проверки ошибок при чтении, записи и т. д. c.

...