при старте бота через соответствующий ивент on_ready пытаюсь получить список всех серверов, в которых состоит бот и получить всех участников со всех серверов для того, чтобы записать их в базу данных ( бот на три сервера ). Собственно в чем проблема. Циклы постоянно возвращает абсолютно разные значения.
1 случай:
Pain(
[<Guild id=851881961298722897 name='Pain(' shard_id=0 chunked=True member_count=10>, <Guild id=1077220696482140221 name=' ' shard_id=0 chunked=True member_count=96>]
Neka#0774
>
2 случай:
Pain(
[<Guild id=851881961298722897 name='Pain(' shard_id=0 chunked=True member_count=10>, <Guild id=1077220696482140221 name=' ' shard_id=0 chunked=True member_count=96>]
Vexera#8487
Очень редко он начинает записывать около 10 участников, а дальше все, ничего не происходит. На серверах суммарно около 150 участников.
Код прилагается:
intents = discord.Intents.all()
intents.members = True
bot = discord.Bot(intents = intents)
@bot.event
async def on_ready():
print(f"Bot is online now. Logged as {bot.user}")
for guild in bot.guilds:
print(guild)
print(bot.guilds)
for member in guild.members:
print(member)
cur.execute(f"""SELECT userId FROM users WHERE userId = {member.id}""")
if cur.fetchone() == None:
cur.execute(f"""
INSERT INTO users VALUES (?,?,?,?,?)
""", (member.name, member.id, member.mention, 0, 250))
else:
return
db.commit()