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