```python
import sqlite3
from telegram import Update
from telegram.ext import Updater, CommandHandler, MessageHandler, Filters, CallbackContext
# Подключение к базе данных
conn = sqlite3.connect('tips.db')
cursor = conn.cursor()
# Создание таблицы, если она не существует
cursor.execute('''CREATE TABLE IF NOT EXISTS tips
(id INTEGER PRIMARY KEY AUTOINCREMENT,
date TEXT NOT NULL,
meal_type TEXT NOT NULL,
tip_amount REAL NOT NULL)''')
conn.commit()
# Обработчик команды /start
def start(update: Update, context: CallbackContext):
context.bot .send_message(chat_id=update.effective_
chat.id , text="Привет! Я бот для учета чаевых.")
# Обработчик команды /внести
def record_tip(update: Update, context: CallbackContext):
message = update.message
chat_id = message.chat_id
text = message.text
# Парсинг информации о платеже
try:
date, meal_type, tip_amount = text.split(',')
tip_amount = float(tip_amount)
except (ValueError, IndexError):
context.bot .send_message(chat_id=chat_id, text="Неверный формат команды /внести. Попробуйте снова.")
return
# Внесение информации о платеже в базу данных
cursor.execute("INSERT INTO tips (date, meal_type, tip_amount) VALUES (?, ?, ?)", (date.strip(), meal_type.strip(), tip_amount))
conn.commit()
context.bot .send_message(chat_id=chat_id, text="Информация о платеже внесена.")
# Обработчик команды /посчитать
def calculate_tips(update: Update, context: CallbackContext):
message = update.message
chat_id = message.chat_id
# Вычисление суммы чаевых по дням недели и типам приема пищи
cursor.execute("SELECT strftime('%w', date) AS weekday, meal_type, SUM(tip_amount) FROM tips GROUP BY weekday, meal_type")
result = cursor.fetchall()
# Сортировка результатов по убыванию суммы чаевых
result.sort(key=lambda x: x[2], reverse=True)
# Отправка трех самых удачных временных слотов
response = "Три самых удачных временных слота для чаевых:\n"
for i in range(min(3, len(result))):
weekday, meal_type, total_tips = result[i]
response += f"{i+1}. День недели: {weekday}, Тип приема пищи: {meal_type}, Сумма чаевых: {total_tips}\n"
context.bot .send_message(chat_id=chat_id, text=response)
# Обработчик неправильных команд
def unknown(update: Update, context: CallbackContext):
context.bot .send_message(chat_id=update.effective_
chat.id , text="Неправильная команда. Попробуйте снова.")
# Создание экземпляра бота и добавление обработчиков команд
updater = Updater(token='YOUR_BOT_TOKEN', use_context=True)
dispatcher = updater.dispatcher
dispatcher.add_handler(CommandHandler('start', start))
dispatcher.add_handler(CommandHandler('внести', record_tip))
dispatcher.add_handler(CommandHandler('посчитать', calculate_tips))
dispatcher.add_handler(MessageHandler(Filters.command, unknown))
# Запуск бота
updater.start_polling()
updater.idle()
# Закрытие соединения с базой данных
conn.close()
```
Напишите телеграмм-бота с двумя командами:
- внести информацию про платеж
- посчитать чаевые по дням
И пришлите пжпж код(без токена)