https://youtu.be/0pRi-X75fAo
Захожу в бот тг, скидываю ссылку на страницу вк, спец.код записывается в базу данных, я отправляю код для подтверждения в личные сообщения бота в вк, он обновляет базу данных и изменят tg_user на accept, далее я проверяю каждые 3 секунды что если tg_user = accept то я меняю tg_user на айди юзера, и все
Ошибка: Не получается получить значение tg_user в момент когда я получаю его значение каждые 3 секунды
Так-же хочу услышать ошибки по коду и как его лучше сделать, с mysql начал работать недавно
reg.py
async def vk(message:types.Message, state=Reg):
split = message.text.split("/")
result = get_id_vk(split[len(split)-1])
if result:
await message.answer(result)
msql.execute("SELECT `nickname` FROM `accounts` WHERE `vkid` = %s", [result])
ab = msql.fetchone()
try:
ab['nickname']
code = random.randint(0,99999999)
msql.execute("UPDATE `accounts` SET `code` = %s WHERE `vkid` = %a", [code, result])
msql.connection.commit()
await message.answer("Перейдите в нашего вк бота нажав на кнопку под сообщением, и отправьте ему сообщение\n\n"
"⚠ КОД БУДЕТ РАБОТАТЬ В ТЕЧЕНИИ 10 МИНУТ\n"
f"`TelegramAccept_{code}`", parse_mode="Markdown")
await message.answer(f"TelegramAccept_{code}")
loop = asyncio.get_running_loop()
end_time = loop.time() + 20.0
while True:
print(datetime.datetime.now())
msql.execute("USE `gs188101`")
msql.execute("SELECT `tg_user` FROM `accounts` WHERE `vkid` = %s", [result])
check = msql.fetchone()
print(check)
if (loop.time() + 1.0) >= end_time:
if str(check['tg_user']) == "accept":
msql.execute("UPDATE `accounts` SET `tg_user` = %s WHERE `vkid` = %a", [message.from_user.id, result])
msql.connection.commit()
await message.answer("Подтверждено!")
else:
await message.answer("Время вышло")
break
else:
if str(check['tg_user']) == "accept":
msql.execute("UPDATE `accounts` SET `tg_user` = %s WHERE `vkid` = %a", [message.from_user.id, result])
msql.connection.commit()
await message.answer("Подтверждено!")
break
else:
pass
await asyncio.sleep(3)
except:
pass
else:
await message.answer("Неверный формат ссылки")
vklong.py
try:
connection = pymysql.connect(
host="host",
port=3306,
user="user",
password="pass",
cursorclass=pymysql.cursors.DictCursor
)
print("Подключение успешно!")
except Exception as ex:
print("Ошибка")
print(ex)
for event in VkLongPoll(vk).listen():
if event.type == VkEventType.MESSAGE_NEW and event.to_me:
split = event.text.split("_")
code_msg = split[1]
print(event.user_id)
if split[0] == "TelegramAccept":
msql.execute("SELECT `code` FROM `accounts` WHERE `vkid` = %s", [event.user_id])
code = msql.fetchone()
code = eval(code['code'])
print(code)
if str(code) == str(code_msg):
print("accept")
msql.execute("UPDATE `accounts` SET `tg_user` = %s WHERE `vkid` = %a", ['accept', event.user_id])
msql.execute("SELECT `tg_user` FROM `accounts` WHERE `vkid` = %s", [event.user_id])
test = msql.fetchone()
print(test)
msql.connection.commit()
else:
print("non accept")