@Nusup

Как сохранить геоданные и фото в БД MySQL, использую библиотеку Pytelegrambotapi(ошибок не выдает, сохраняет первые 2 параметра)а гео и фото нет?

import telebot
import mysql.connector
from telebot import types, TeleBot
from telebot.types import Message

bot = telebot.TeleBot("941242828:AAHHweF6qU5Zx4tGAmVxi6kABBRFDElIpgk")

db = mysql.connector.connect(
    host="localhost",
    user="root",
    passwd="root",
    port="3306",
    database="test"
)

cursor = db.cursor()

cursor.execute("CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY, user_id INT, openvisit TEXT , geo BLOB, photo BLOB)")

user_data = { }

class User:
    def __init__(self, openvisit):
        self.openvisit = openvisit
        self.geo = ' '
        self.photo=' '


@bot.message_handler(commands=['start'])
def send_welcome(message):
    visit = types.ReplyKeyboardMarkup(one_time_keyboard=True)
    visit_btn = types.KeyboardButton(text = 'Открыть')
    visit.add(visit_btn)

    msg = bot.send_message(message.chat.id, "Привет", reply_markup=visit)
    bot.register_next_step_handler(msg, process_openvisit_step)

def process_openvisit_step(message):
    user_id = message.from_user.id
    user_data[user_id] = User(message.text)

    geo=types.ReplyKeyboardMarkup(one_time_keyboard=True)
    geo_btn = types.KeyboardButton(text='Местоположение', request_location=True)
    geo.add(geo_btn)

    msg = bot.send_message(message.chat.id, "Отправьте текущее местоположениe:", reply_markup=geo)
    bot.register_next_step_handler(msg, process_geo_step)

def process_geo_step(message):
    user_id = message.from_user.id
    user = user_data[user_id]
    user.geo = message.text

    msg = bot.send_message(message.chat.id, "Теперь вышли фото")
    bot.register_next_step_handler(msg, process_photo_step)

def process_photo_step(message):
    user_id = message.from_user.id
    user = user_data[user_id]
    user.photo = message.text

    sql = "INSERT INTO testblob (user_id , openvisit , geo, photo) \
                                  VALUES (%s, %s, %s, %s)"

    val = (user_id, user.openvisit, user.geo, user.photo)
    cursor.execute(sql, val)
    db.commit()

    msg = bot.send_message(message.chat.id, "Спасибо")

bot.enable_save_next_step_handlers(delay=2)

bot.load_next_step_handlers()

if __name__ == '__main__':
    bot.polling(none_stop=True)
  • Вопрос задан
  • 261 просмотр
Пригласить эксперта
Ваш ответ на вопрос

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

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