@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.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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