Код основной части:
async def profit():
while True:
i = str(0)
for i in range(99999999):
user_id = db.check_id(i)
print(f"{user_id}\n")
profit_miners = int(db.check_profit(item= 'miner'))
profit_comp = int(db.check_profit(item= 'comp'))
profit_cpu = int(db.check_profit(item= 'cpu'))
profit_video = int(db.check_profit(item= 'video'))
profit_phone = int(db.check_profit(item= 'phone'))
user_comps = int(db.user_comp(user_id))
user_miners = int(db.user_miner(user_id))
user_cpu = int(db.user_cpu(user_id))
user_video = int(db.user_video(user_id))
user_phone = int(db.user_phone(user_id))
pribyl = int(((user_comps*profit_comp)+(user_miners*profit_miners)+(user_cpu*profit_cpu)+(user_video*profit_video)+(user_phone*profit_phone))*3)
balance = int(db.user_money(user_id))
db.set_money(user_id, balance + pribyl)
i = str(i) + str(1)
if not db.check_ids(i+ str(1)):
i = str(0)
break
await asyncio.sleep(3)
Код функций из базы данных:
def check_id(self, userid):
with self.connection:
return self.cursor.execute("SELECT `user_id` FROM `users` WHERE `id` = ?", (userid, )).fetchone()[0]
def check_ids(self, id):
with self.connection:
result = self.cursor.execute("SELECT `id` FROM `users` WHERE `id` = ?", (id,)).fetchall()
return bool(len(result))
Проблема в том, что в user_id записывается некорректное значение ID пользователя, следовательно происходит ошибка. Нужно, чтобы данный код перебирал всех пользователей, добавляя значение на баланс, ждал 3 секунды и опять проходил по айдишникам, добавляя им сумму на баланс и так далее