Добавление участников сервера дискорда в базу данных
У меня есть база данных, созданная с помощью SQLite3, также у меня есть айди сервера. Как при запуске бота, добавить всех членов сервера в таблицу? Пример:
for i in ВСЕ УЧАСТНИКИ СЕРВЕРА:
#Записывание участника в таблицу
Расширенный код:
@bot.event
async def on_ready():
cursor.execute("""CREATE TABLE IF NOT EXISTS users (
id INT,
name TEXT,
cash INT,
mes INT
)""")
for member in bot.get_all_members():
if cursor.execute(f'SELECT id FROM users WHERE id = {member.id}').fetchone() is None:
cursor.execute(f'INSERT INTO users VALUES ({member.id},"{member}",{5},{0})')
connection.commit()
Ответы (1 шт):
Автор решения: nyekitka
→ Ссылка
В событии on_ready просто пройдитесь for'ом по всем членам сообщества, например, так:
for member in bot.get_all_members():
Какие поля в вашей таблице будут, вы не написали. Если у вас таблица уже создана, то с помощью курсора добавьте:
cursor.execute("INSERT INTO table (id, ...) VALUES (?, ...)", member.id)
db.commit()
Потом из базы данных будете просто извлекать id пользователей и получать объекты класса Member с помощью guild.fetch_member(id)