Milovenskii
@Milovenskii

Как сделать что бы переменная в боте была глобальная только для одного человека?

Здравствуйте! Столкнулся с следующей проблемой:
Я делаю бота в телеграмме, который оставляет коментарии на сайте.
Используя этот код:
def desc(message):
    username = message.from_user.username
    idd = message.from_user.id
    msg = message.text
    c.execute("INSERT INTO ads (worker,wid,title) VALUES (%s,%s,%s)",(username,idd,msg))
    link.commit()
    c.execute("SELECT id FROM ads WHERE worker = %s AND wid = %s AND title = %s",(username,idd,msg))
    global ad_id
    ad_id = c.fetchall()[0]['id'];
    msg = bot.send_message(message.chat.id,"Коментарий:")
    bot.register_next_step_handler(msg,price)
def price(message):
    username = message.from_user.username
    idd = message.from_user.id
    msg = message.text
    c.execute("UPDATE ads SET description = %s WHERE id = %s",(msg,ad_id))
    link.commit()
    msg = bot.send_message(message.chat.id,"Теперь цена с копейками (Пример: 7000.00)")
    bot.register_next_step_handler(msg,comision)
def comision(message):
    username = message.from_user.username
    idd = message.from_user.id
    msg = message.text
    c.execute("UPDATE ads SET price = %s WHERE id = %s",(msg,ad_id))
    link.commit()
    msg = bot.send_message(message.chat.id,"На последок комиссию укажи (Пример: 70.00)")
    bot.register_next_step_handler(msg,succes)

Проблема в том, что надо куда то запоминать кто вообще пишет этот коментарий, использовать бд как по мне глупо в данной ситуации, локальные переменные видны только в области функции. Выход один - фигачить в глобальную, но тут опять проблемма, глобальная переменная создается для всех, тоесть если второй пользователь начнет писать коммент - он напишет его не под своим ником. Вообщем все у меня как то плёхо( Помогите пожалуйста!
  • Вопрос задан
  • 66 просмотров
Решения вопроса 1
SoreMix
@SoreMix
yellow
переменные видны только в области функции. Выход один - фигачить в глобальную

Может эту переменную в register_next_step_handler передавать?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы