Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import random
- import asyncio
- import logging
- from aiogram import Bot, Dispatcher, types, F
- from aiogram.filters import Command
- from aiogram.types import ReplyKeyboardMarkup, KeyboardButton
- logging.basicConfig(level=logging.INFO)
- bot = Bot(token="7575665406:AAEzumzXrmdt8WXOtj2emzj0u597Krar2BA")
- dp = Dispatcher()
- # Хранилище данных (вместо БД для простоты)
- user_data = {}
- # Клавиатура
- actions_kb = ReplyKeyboardMarkup(
- keyboard=[
- [KeyboardButton(text="♻️ Бутылка"), KeyboardButton(text="🌱 Пакет")],
- [KeyboardButton(text="📊 Статистика"), KeyboardButton(text="ℹ️ Факт")],
- ],
- resize_keyboard=True,
- )
- # Команда /start
- @dp.message(Command("start"))
- async def start(message: types.Message):
- await message.answer(
- "Привет! Я бот-экотрекер. Отмечай свои экопривычки!",
- reply_markup=actions_kb,
- )
- # Обработка действий
- @dp.message(F.text.in_(["♻️ Бутылка", "🌱 Пакет"]))
- async def log_action(message: types.Message):
- user_id = message.from_user.id
- action = message.text
- if user_id not in user_data:
- user_data[user_id] = {"actions": []}
- user_data[user_id]["actions"].append(action)
- await message.answer(f"✅ Записал: {action}")
- # Статистика
- @dp.message(F.text == "📊 Статистика")
- async def show_stats(message: types.Message):
- user_id = message.from_user.id
- if user_id not in user_data or not user_data[user_id]["actions"]:
- await message.answer("Ты пока не сделал(а) ни одного действия.")
- else:
- stats = len(user_data[user_id]["actions"])
- await message.answer(f"📈 Всего действий: {stats}")
- # Рандомный факт
- @dp.message(F.text == "ℹ️ Факт")
- async def send_fact(message: types.Message):
- facts = [
- "Один человек в среднем использует 500 пластиковых пакетов в год.",
- "Переработка одной алюминиевой банки экономит энергию, достаточную для работы TV 3 часа.",
- "Каждую минуту в океан попадает грузовик мусора.",
- ]
- await message.answer(random.choice(facts))
- # Запуск бота
- async def main():
- await dp.start_polling(bot)
- if __name__ == "__main__":
- asyncio.run(main())
Advertisement
Add Comment
Please, Sign In to add comment