From ee8adbe9f9e8b55a534abca401d6202134f62702 Mon Sep 17 00:00:00 2001 From: Kseniya Tetercheva Date: Wed, 16 Oct 2024 16:59:32 +0300 Subject: [PATCH] clean for merge --- app/bot/admin.py | 0 app/bot/handlers.py | 60 ------------------------------- app/bot/keyborads.py | 84 -------------------------------------------- app/exceptions.py | 18 ---------- app/main.py | 33 ----------------- bot.py.bak | 29 --------------- 6 files changed, 224 deletions(-) delete mode 100644 app/bot/admin.py delete mode 100644 app/bot/handlers.py delete mode 100644 app/bot/keyborads.py delete mode 100644 app/exceptions.py delete mode 100644 app/main.py delete mode 100644 bot.py.bak diff --git a/app/bot/admin.py b/app/bot/admin.py deleted file mode 100644 index e69de29..0000000 diff --git a/app/bot/handlers.py b/app/bot/handlers.py deleted file mode 100644 index b0f7502..0000000 --- a/app/bot/handlers.py +++ /dev/null @@ -1,60 +0,0 @@ -from aiogram import F, Router -from aiogram.filters import CommandStart -from aiogram.types import Message, CallbackQuery - -from bot.keyborads import ( - main_keyboard, company_information_keyboard, - inline_products_and_services -) - - -router = Router() - - -@router.message(CommandStart()) -async def cmd_start(message: Message) -> None: - """Приветствие пользователя.""" - - await message.answer( - 'Здравстуйте! Я ваш виртуальный помошник.' - 'Как я могу помочь вам сегодня?', - reply_markup=main_keyboard - ) - - -@router.message(F.text == 'Посмотреть портфолио.') -async def view_profile(message: Message) -> None: - """Портфолио компании.""" - - await message.answer( - 'Вот ссылка на на наше портофолио: [здесь url]. ' - 'Хотите узнать больше о конкретных проектах ' - 'или услугах?' - ) - - -@router.message(F.text == 'Получить информацию о компании.') -async def get_information_about_company(message: Message) -> None: - """Информация о компнии.""" - - await message.answer( - 'Вот несколько вариантов информации о нашей ' - 'компании. Что именно вас интересует? ', - reply_markup=company_information_keyboard - ) - - -@router.message(F.text == 'Узнать о продуктах и услугах.') -async def get_information_about_products_and_services(message: Message) -> None: - """Информация о продуктах и услугах.""" - - await message.answer( - 'Мы предлагаем следующие продукты и услуги.' - 'Какой из низ вас интересует?', - reply_markup=await inline_products_and_services() - ) - - -@router.callback_query(lambda call: call == 'previous_choice') -def previous_choice(callback_query: CallbackQuery) -> None: - pass diff --git a/app/bot/keyborads.py b/app/bot/keyborads.py deleted file mode 100644 index d887517..0000000 --- a/app/bot/keyborads.py +++ /dev/null @@ -1,84 +0,0 @@ -from aiogram.types import ( - ReplyKeyboardMarkup, KeyboardButton, - InlineKeyboardMarkup, InlineKeyboardButton, -) -from aiogram.utils.keyboard import InlineKeyboardBuilder - -# кнопку вернуться назад можно вынести отдельно, чтобы не дублировать код - -PRODUCTS_AND_SERVICES = [ - 'Разработка сайтов', 'Создание порталов', - 'Разработка мобильных приложений', 'Консультация по КИОСК365', - '"НБП ЕЖА"', 'Хостинг', -] # моделирую результат запроса из бд - -main_keyboard = ReplyKeyboardMarkup( - keyboard=[ - [KeyboardButton(text='Посмотреть портфолио.')], - [KeyboardButton(text='Получить информацию о компании.')], - [KeyboardButton(text='Узнать о продуктах и услугах.')], - [KeyboardButton(text='Получить техническую поддержку.'),], - [KeyboardButton(text='Связаться с менеджером.')], - ], - resize_keyboard=True, - one_time_keyboard=False, - input_field_placeholder='Выберите пункт меню.' -) - -company_information_keyboard = InlineKeyboardMarkup( - inline_keyboard=[ - [ - InlineKeyboardButton( - text='Презентация компании.', - url='https://www.visme.co/ru/powerpoint-online/' # тут ссылка на презентацию, ткунл рандомную - ) - ], - [ - InlineKeyboardButton( - text='Карточка компании.', - url='https://github.com/Rxyalxrd' # тут будет карточка компании, пока моя) - ) - ], - [ - InlineKeyboardButton( - text='Назад к основным вариантам.', - callback_data='previous_choice' - ) - ] - ] -) - - -async def inline_products_and_services(): # тут будем брать данные из бд - """Инлайн клавиатура для продуктов и услуг.""" # аннатацию тоже не пишу пока - - keyboard = InlineKeyboardBuilder() - - for index, product_and_service in enumerate(PRODUCTS_AND_SERVICES): - # callback_data = f"service_{index}" - keyboard.add(InlineKeyboardButton( - text=product_and_service, - callback_data=f'service_{index}' - )) - - keyboard.add( - InlineKeyboardButton( - text='Назад к основным вариантам.', - callback_data='previous_choice' - ) - ) - - return keyboard.adjust(1).as_markup() - - -company_portfolio_choice = InlineKeyboardMarkup( - inline_keyboard=[ - [InlineKeyboardButton(text='Да', '''TODO: бот отвечает и выводит проектов''')], - [ - InlineKeyboardButton( - text='Назад к основным вариантам.', - callback_data='previous_choice' - ) - ] - ] -) diff --git a/app/exceptions.py b/app/exceptions.py deleted file mode 100644 index 2f8d846..0000000 --- a/app/exceptions.py +++ /dev/null @@ -1,18 +0,0 @@ -class RequestExceptionError(Exception): - """Ошибка запроса.""" - pass - - -class EmptyResponseError(Exception): - """В запросе нет необходимых ключей.""" - pass - - -class ResponceTypeError(TypeError): - """Неверный тип ответа.""" - pass - - -class UndocumentedStatusError(Exception): - """Недокументированный статус.""" - pass diff --git a/app/main.py b/app/main.py deleted file mode 100644 index f7bca2e..0000000 --- a/app/main.py +++ /dev/null @@ -1,33 +0,0 @@ -import os -import logging -import asyncio -import sys - -from aiogram import Bot, Dispatcher -from dotenv import load_dotenv - -from bot.handlers import router - - -load_dotenv() - - -bot = Bot(token=os.getenv('BOT_TOKEN')) -dispatcher = Dispatcher() - - -async def main() -> None: - """Запуск SCID бота.""" - - if os.getenv('BOT_TOKEN') is None: # нарушает solid - принцип ед. наследсвенности - sys.exit('Отсутсвуют необходимые токены.') - - dispatcher.include_router(router) - await dispatcher.start_polling(bot) - -if __name__ == "__main__": - logging.basicConfig(level=logging.INFO) - try: - asyncio.run(main()) - except KeyboardInterrupt: - print('Exit') diff --git a/bot.py.bak b/bot.py.bak deleted file mode 100644 index 86da734..0000000 --- a/bot.py.bak +++ /dev/null @@ -1,29 +0,0 @@ -import os -import sys - -from dotenv import load_dotenv - -load_dotenv() - - -BOT_TOKEN = os.getenv('BOT_TOKEN') - - -def check_tokens(): - """Проверяет наличие необходимых для работы программы токенов.""" - tokens_bool = True - for token in (BOT_TOKEN): - if not token: - tokens_bool = False - return tokens_bool - - -def main(): - """Основная логика работы бота.""" - if not check_tokens(): - sys.exit('Отсутствует токен!') - - -if __name__ == '__main__': - """Запуск работы бота.""" - main()