import random
import sqlite3
import telebot
from telebot import types
# Подключение к Telegram API
bot = telebot.TeleBot('мой токен')
# Функция для генерации рандомного коэффициента
def generate_random_odd():
# Логика для генерации коэффициента, как в вашем предыдущем коде
rand = random.random()
if rand < 0.5:
return round(random.uniform(1.0, 2.0), 2)
elif rand < 0.8:
return round(random.uniform(2.0, 3.0), 2)
elif rand < 0.9:
return round(random.uniform(3.0, 8.0), 2)
elif rand < 0.97:
return round(random.uniform(8.0, 15.0), 2)
elif rand < 0.99:
return round(random.uniform(15.0, 50.0), 2)
else:
return round(random.uniform(50.0, 5000.0), 2)
# Функция для создания изображения с коэффициентом
def create_odd_image(odd):
# Загрузка изображения background_image.jpg
image = open('background_image.jpg', 'rb')
return image
# Приветственное сообщение при запуске бота
@bot.message_handler(commands=['start'])
def start(message):
bot.reply_to(message, 'Привет! Вы можете получить доступ к прогнозам. Нажмите кнопку "Получить коэффициент", чтобы начать.', reply_markup=get_odd_button())
# Клавиатура с кнопкой "Получить коэффициент"
def get_odd_button():
keyboard = types.ReplyKeyboardMarkup(resize_keyboard=True)
keyboard.add('Получить коэффициент')
return keyboard
# Обработка нажатия кнопки "Получить коэффициент"
@bot.message_handler(func=lambda message: message.text == 'Получить коэффициент')
def send_odd(message):
# Генерация рандомного коэффициента
odd = generate_random_odd()
# Сохранение коэффициента в базе данных SQLite
with sqlite3.connect('odds.db') as conn:
cursor = conn.cursor()
cursor.execute('INSERT INTO odds (odd) VALUES (?)', (odd,))
conn.commit()
# Отправка изображения с коэффициентом
bot.send_photo(message.chat.id, create_odd_image(odd), caption=f'Ваш коэффициент: {odd}', reply_markup=next_odd_button())
# Функция для создания клавиатуры с кнопкой "Следующий коэффициент"
def next_odd_button():
keyboard = types.ReplyKeyboardMarkup(resize_keyboard=True)
keyboard.add('Следующий коэффициент')
return keyboard
# Обработка нажатия кнопки "Следующий коэффициент"
@bot.message_handler(func=lambda message: message.text == 'Следующий коэффициент')
def send_next_odd(message):
# Получение последнего коэффициента из базы данных SQLite
with sqlite3.connect('odds.db') as conn:
cursor = conn.cursor()
cursor.execute('SELECT odd FROM odds ORDER BY id DESC LIMIT 1')
odd = cursor.fetchone()[0]
# Генерация следующего рандомного коэффициента
next_odd = generate_random_odd()
# Отправка изображения с следующим коэффициентом
bot.send_photo(message.chat.id, create_odd_image(next_odd), caption=f'Ваш следующий коэффициент: {next_odd}', reply_markup=next_odd_button())
# Подключение к базе данных SQLite и создание таблицы коэффициентов (если она не существует)
with sqlite3.connect('odds.db') as conn:
cursor = conn.cursor()
cursor.execute('''CREATE TABLE IF NOT EXISTS odds (
id INTEGER PRIMARY KEY AUTOINCREMENT,
odd REAL NOT NULL
)''')
conn.commit()
# Запуск бота
bot.polling()