@Esserj

Как в telegram bot после каждого сообщения пользователя обновлять время в бд?

Не могу настроить постоянное обновление даты в базе.
Обновляется только один раз после первого сообщения пользователя, либо после перезапуска бота.
Подскажите, как сделать чтобы дата и время сохранялись от последнего полученного ботом сообщения.

import random
import telebot
from telebot import types
import sqlite3
import datetime


currentDateTime = datetime.datetime.now()
conn = sqlite3.connect('db/dbdt.db', check_same_thread=False, detect_types=sqlite3.PARSE_DECLTYPES |
                                                                           sqlite3.PARSE_COLNAMES)
cursor = conn.cursor()


def telegram_bot(token):
    bot = telebot.TeleBot(token)

    def db_table_val(user_id: int, user_name: str, user_surname: str, username: str, visit_time: datetime):
        cursor.execute(
            'INSERT INTO test (user_id, user_name, user_surname, username, visit_time) VALUES (?, ?, ?, ?, ?)',
            (user_id, user_name, user_surname, username, visit_time))
        conn.commit()

    @bot.message_handler(commands=['help'])
    def welcome_help(message):
        bot.send_message(message.chat.id,
                         "/.......................!")

    @bot.message_handler(commands=['start'])
    def start(message):
        markup = types.InlineKeyboardMarkup()
        button1 = types.InlineKeyboardButton(".......", url='......................')
        markup.add(button1)
        bot.send_message(message.chat.id, (
                ".................." + message.from_user.first_name + "//////////////////////////////////.").format(
            message.from_user), reply_markup=markup)

    @bot.message_handler(content_types=["text"])
    def send_text(message):
        if message.text.lower() in me:
            bot.send_message(
                message.chat.id, random.choice(frases)
            )
            bot.send_sticker(message.chat.id, random.choice(stickers))
        elif message.text.lower() in you:
            bot.send_message(
                message.chat.id, (
                    "................................")
        else:
            bot.send_message(message.chat.id,  ".................................")

        us_id = message.from_user.id
        us_name = message.from_user.first_name
        us_sname = message.from_user.last_name
        username = message.from_user.username
        v_time = currentDateTime
        db_table_val(user_id=us_id, user_name=us_name, user_surname=us_sname, username=username, visit_time=v_time)

    bot.polling(none_stop=True)
  • Вопрос задан
  • 167 просмотров
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
Почитай про INSERT ... ON CONFLICT UPDATE.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 03:52
1000 руб./за проект
19 апр. 2024, в 03:01
1000 руб./за проект
18 апр. 2024, в 21:56
2000 руб./за проект