From f36a111fc7db8b6c8943800ae5a2c16dfa4ed84c Mon Sep 17 00:00:00 2001 From: kittyneverdies <85691197+KittyNeverDies@users.noreply.github.com> Date: Sat, 27 Jan 2024 18:39:34 +0300 Subject: [PATCH] /start update! - Fixed grammar errors - Added to menu information about current version --- bozenka/__init__.py | 3 ++ .../instances/telegram/handlers/main/start.py | 35 ++++++++++++++----- .../telegram/handlers/queries/__init__.py | 2 +- .../telegram/handlers/queries/start.py | 31 +++++++++++++--- .../telegram/utils/keyboards/inline.py | 3 +- bozenka/instances/version.py | 9 +++++ requirements.txt | 3 +- 7 files changed, 69 insertions(+), 17 deletions(-) create mode 100644 bozenka/instances/version.py diff --git a/bozenka/__init__.py b/bozenka/__init__.py index c637666..27fa60c 100644 --- a/bozenka/__init__.py +++ b/bozenka/__init__.py @@ -1,6 +1,8 @@ import asyncio import logging +import os +import git import g4f from bozenka.instances.telegram import launch_telegram_instance @@ -12,6 +14,7 @@ def launch_instances() -> None: Launches bozenka instances, working async :return: """ + logging.log(msg="Setting up g4f logging!", level=logging.INFO) logging.basicConfig(level=logging.INFO) logging.log(msg="Setting up logging!", level=logging.INFO) diff --git a/bozenka/instances/telegram/handlers/main/start.py b/bozenka/instances/telegram/handlers/main/start.py index 6ad5bc1..4462a1c 100644 --- a/bozenka/instances/telegram/handlers/main/start.py +++ b/bozenka/instances/telegram/handlers/main/start.py @@ -5,15 +5,32 @@ from aiogram.utils.keyboard import InlineKeyboardBuilder from bozenka.instances.telegram.utils.keyboards import help_keyboard, start_keyboard -async def start_cmd(msg: Message): +async def start_cmd(msg: Message) -> None: """ - /start command function - :param msg: - :return: + /start command function handler + Shows menu and basic information about bozenka + :param msg: Message telegram object + :return: Nothing """ await msg.answer( - 'Привет, пользователь, я - Бозенька 👋\n' - 'Я мультизадачный телеграм (в будущем кросс-платформенный) бот с открытым исходным кодом, разрабатываемый Bozo Developement\n' - f'Выберите, что будете делать, {msg.from_user.mention_html(name="пользователь")}.', - reply_markup=start_keyboard() - ) + """ + Привет 👋 +Я - бозенька, бот с открытым исходным кодом, который поможет тебе в различных задачах. + +Вот что ты можешь сделать с помощью меню: +• Добавить в чат: добавляет меня в групповой чат, чтобы я мог выполнять свои функции внутри него. +• Функционал: показывает список доступных функций и команд, которые я могу выполнить. +• О разработчиках: предоставляет информацию о команде разработчиков, которые создали и поддерживают этого бота. +• О запущенном экземпляре: выводит информацию о текущей версии и состоянии запущенного экземпляра бота. +• Начать диалог с ИИ: позволяет начать диалог с искусственным интеллектом, который может отвечать на вопросы и предоставлять информацию. +• Генерация изображений: позволяет сгенерировать изображения на основе заданных параметров и промта + +Вот нужные ссылки обо мне: +• Канал с новостями об разработке +• Исходный код на Github + +Чтобы воспользоваться какой-либо функцией, просто нажми на соответствующую кнопку ниже. +Если у тебя возникнут вопросы или проблемы, не стесняйся обратиться к команде разработчиков или написать в обсуждении телеграм канала. +Удачного использования! + """, + reply_markup=start_keyboard(), disable_web_page_preview=True) diff --git a/bozenka/instances/telegram/handlers/queries/__init__.py b/bozenka/instances/telegram/handlers/queries/__init__.py index f1daed1..fef7601 100644 --- a/bozenka/instances/telegram/handlers/queries/__init__.py +++ b/bozenka/instances/telegram/handlers/queries/__init__.py @@ -122,7 +122,7 @@ def register_queries(router: Router) -> None: router.callback_query.register(inline_add_to_chat, F.data == "addtochat") router.callback_query.register(inline_start_chatbot, F.data == "dialogai") router.callback_query.register(inline_help, F.data == "functional") - + router.callback_query.register(inline_about_instance, F.data == "aboutbot") diff --git a/bozenka/instances/telegram/handlers/queries/start.py b/bozenka/instances/telegram/handlers/queries/start.py index 8acd68f..396431c 100644 --- a/bozenka/instances/telegram/handlers/queries/start.py +++ b/bozenka/instances/telegram/handlers/queries/start.py @@ -1,8 +1,11 @@ +import git + from aiogram.types import * from bozenka.instances.telegram.utils.callbacks_factory import * from bozenka.instances.telegram.utils.keyboards import * from bozenka.instances.telegram.utils.simpler import list_of_features +from bozenka.instances.version import is_updated, build async def inline_start(call: CallbackQuery): @@ -36,9 +39,6 @@ async def inline_help(call: CallbackQuery): :param call: :return: """ - kb = InlineKeyboardMarkup(inline_keyboard=[[ - - ]]) await call.message.edit_text("Выберите категорию, по которой нужна помощь:", reply_markup=help_keyboard()) @@ -52,7 +52,12 @@ async def inline_about_developers(call: CallbackQuery): kb = InlineKeyboardMarkup(inline_keyboard=[[ InlineKeyboardButton(text="Вернуться 🔙", callback_data="back") ]]) - await call.message.edit_text("Бозенька - это мультифункциональный (в будущем кроссплатформенный бот)." + await call.message.edit_text(""" +Бозенька - это мультифункциональный (в будущем кроссплатформенный) бот.\n +Он умеет работать с групповыми чатами и готовыми нейронными сетями для генерации текста и изображений. +Бозенька разрабатывается коммандой, которая состоит из одного + """) + await call.message.edit_text("Бозенька - это мультифункциональный (в будущем кроссплатформенный бот).\n" "Он умеет работать с группами и готовыми нейронными сетями\n" "Бозеьнка разработавается коммандой, состаящей из одного человека, сам проект был изначально для развития моих навыков в Python\n" "Исходный код находится под лицензией GPL-3.0. Исходный код проекта всегда будет открыт и доступен.\n" @@ -61,6 +66,24 @@ async def inline_about_developers(call: CallbackQuery): reply_markup=kb) +async def inline_about_instance(call: CallbackQuery): + """ + Query, what shows information about runned instance + :param call: + :return: + """ + kb = InlineKeyboardMarkup(inline_keyboard=[[ + InlineKeyboardButton(text="Вернуться 🔙", callback_data="back") + ]]) + me = await call.message.bot.get_me() + update_status = {False: "требуется обновление", + True: "последняя доступная версия"} + await call.message.edit_text( + f"Информация об данном запущенном экземпляре, {me.mention_html()}\n" + f"Запущенная версия бота {build}, {update_status[is_updated]}\n", + reply_markup=kb) + + async def inline_add_to_chat(call: CallbackQuery): """ Query, what shows a link to add bozenka into user chat diff --git a/bozenka/instances/telegram/utils/keyboards/inline.py b/bozenka/instances/telegram/utils/keyboards/inline.py index 6d985b5..014f046 100644 --- a/bozenka/instances/telegram/utils/keyboards/inline.py +++ b/bozenka/instances/telegram/utils/keyboards/inline.py @@ -29,6 +29,7 @@ def start_keyboard() -> InlineKeyboardMarkup: [InlineKeyboardButton(text="Добавить в чат 🔌", callback_data="addtochat")], [InlineKeyboardButton(text="Функционал 🔨", callback_data="functional")], [InlineKeyboardButton(text="О разработчиках ℹ️", callback_data="aboutdevs")], + [InlineKeyboardButton(text="О запущенном экзепляре ℹ️", callback_data="aboutbot")], [InlineKeyboardButton(text="Начать диалог с ИИ 🤖", callback_data="dialogai")], [InlineKeyboardButton(text="Генерация Изображений 🖼", callback_data="dialogimage")], ] @@ -80,8 +81,6 @@ def help_feature_keyboard(category: str) -> InlineKeyboardMarkup: :return: """ kb = InlineKeyboardMarkup(inline_keyboard=[ - [InlineKeyboardButton(text="🔙 Назад к функциям", - callback_data=HelpBackCategory(back_to_category=category).pack())], [InlineKeyboardButton(text="🔙 Назад к функциям", callback_data=HelpBackCategory(back_to_category=category).pack())] ]) diff --git a/bozenka/instances/version.py b/bozenka/instances/version.py new file mode 100644 index 0000000..83bb657 --- /dev/null +++ b/bozenka/instances/version.py @@ -0,0 +1,9 @@ +import os + +import git + + +repo = git.Repo(path="D:\\Files\\Documents\\GitHub\\Bozenka") +build = repo.heads[0].commit.hexsha +diff = repo.git.log([f"HEAD..origin/{repo.active_branch}", "--oneline"]) +is_updated = True if not diff else False diff --git a/requirements.txt b/requirements.txt index b51e025..a9b08c9 100644 --- a/requirements.txt +++ b/requirements.txt @@ -10,4 +10,5 @@ diffusers~=0.25.0 torch~=2.1.2 transformers~=4.36.2 accelerate -omegaconf \ No newline at end of file +omegaconf +gitpython \ No newline at end of file