import os import asyncio import logging from datetime import datetime from aiogram import Bot, Dispatcher, types from aiogram.client.default import DefaultBotProperties from aiogram.enums import ParseMode from aiogram.enums.dice_emoji import DiceEmoji from aiogram import F, html from aiogram.types import Message from aiogram.filters import Command, CommandObject, CommandStart from aiogram.utils.formatting import Text, Bold, as_list, as_marked_section, as_key_value, HashTag from aiogram.types import FSInputFile, URLInputFile, BufferedInputFile # новый импорт! from aiogram.utils.markdown import hide_link #для скрытой ссылки # новый импорт! from aiogram.utils.keyboard import ReplyKeyboardBuilder # для создания кнопок # Новые импорты! from contextlib import suppress from aiogram.exceptions import TelegramBadRequest from config_reader import config # Включаем логирование, чтобы не пропустить важные сообщения logging.basicConfig(level=logging.INFO) # Для записей с типом Secret* необходимо # вызывать метод get_secret_value(), # чтобы получить настоящее содержимое вместо '*******' bot = Bot( token=config.bot_token.get_secret_value(), default=DefaultBotProperties( parse_mode=ParseMode.HTML # тут ещё много других интересных настроек )) # Объект бота напрямую из .env # bot = Bot(token=os.getenv("BOT_TOKEN")) # Диспетчер dp = Dispatcher() dp["started_at"] = datetime.now().strftime("%Y-%m-%d %H:%M") # Хэндлер на команду /start @dp.message(Command("start")) async def cmd_start(message: types.Message): # await message.answer("Привет! ") content = as_list( Text( "Привет! ", Bold(message.from_user.first_name) ), as_marked_section( Bold("Я умею:"), "/test1 - Отвечу Test1", "/answer - Просто отвечу", "/reply - Отвечу ответом", "/name - Поприветствую тебя по Имени и Фамилии", "/aboute - Дам тебе характеристику", "/dice - Подкину для тебя кубик, загадай число ;)", "Если ты мне отправишь гифку, я тебе ей же и отвечу", "----------", "/more - Еще больше возможностей!", "/vfy - Получить подтверждение Вашего номера телефона", marker="✅ ", ), as_marked_section( Bold("Failed:"), "Не смогу полететь на луну:( ", marker="❌ ", ), HashTag("#ищу"), # Text( # "Номер телефона, ", # Bold(message.contact.phone_number) # ) ) await message.answer( **content.as_kwargs() ) @dp.message(Command("more")) async def cmd_more(message: types.Message): # await message.answer("Привет! ") content = as_list( Text( Bold(message.from_user.first_name), " Еще я могу вот что: ", ), as_marked_section( Bold(""), "Если ты напишешь в тексте ", "адрес сайта,", "e-mail,", "Номер телефона,", "Я распознаю их и напишу что нашел", "/special_buttons - выведу спецкнопки с командами", "/dice - Подкину для тебя кубик, загадай число ;)", "/settimer