diff --git a/docs/img/qbot.svg b/docs/img/qbot.svg index 0e9a2c0..ad5ec4f 100644 --- a/docs/img/qbot.svg +++ b/docs/img/qbot.svg @@ -9,7 +9,10 @@ id="svg1" xml:space="preserve" inkscape:version="1.4 (e7c3feb1, 2024-10-09)" - sodipodi:docname="qbot.svg" + sodipodi:docname="quickbot.svg" + inkscape:export-filename="quickbot.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns="http://www.w3.org/2000/svg" @@ -23,16 +26,21 @@ inkscape:pagecheckerboard="0" inkscape:deskcolor="#d1d1d1" inkscape:document-units="px" - inkscape:zoom="0.52452521" - inkscape:cx="704.4466" - inkscape:cy="297.41182" + inkscape:zoom="0.29812844" + inkscape:cx="1061.623" + inkscape:cy="-147.5874" inkscape:window-width="1608" inkscape:window-height="1007" inkscape:window-x="8" - inkscape:window-y="52" + inkscape:window-y="44" inkscape:window-maximized="0" inkscape:current-layer="layer1" /> + id="path15" /> diff --git a/docs/index.md b/docs/index.md index 139e6ef..c8c0345 100644 --- a/docs/index.md +++ b/docs/index.md @@ -3,13 +3,13 @@

- QBot + QuickBot

Telegram Bots Rapid Application Development (RAD) Framework.

-**QBot** is a library for fast development of Telegram bots and mini-apps following the **RAD (Rapid Application Development)** principle in a **declarative style**. +**QuickBot** is a library for fast development of Telegram bots and mini-apps following the **RAD (Rapid Application Development)** principle in a **declarative style**. ## Key Features @@ -20,13 +20,13 @@ - **Context Preservation** – Store navigation stacks and user interaction states in the database. - **Internationalization Support** – Localizable UI and string fields for multilingual bots. -**QBot** powered by **[FastAPI](https://fastapi.tiangolo.com)**, **[SQLModel](https://sqlmodel.tiangolo.com)** & **[aiogram](https://aiogram.dev)** – Leverage the full capabilities of these frameworks for high performance and flexibility. +**QuickBot** powered by **[FastAPI](https://fastapi.tiangolo.com)**, **[SQLModel](https://sqlmodel.tiangolo.com)** & **[aiogram](https://aiogram.dev)** – Leverage the full capabilities of these frameworks for high performance and flexibility. ## Benefits - **Faster Development** – Automate repetitive tasks and build bots in record time. - **Highly Modular** – Easily extend and customize functionality. -- **Less Code Duplication** – Focus on core features while QBot handles the rest. +- **Less Code Duplication** – Focus on core features while QuickBot handles the rest. - **Enterprise-Grade Structure** – Scalable, maintainable, and optimized for real-world usage. ## Example @@ -42,12 +42,12 @@ class AppEntity(BotEntity): ) name: str # entity field with default sqlmodel's FieldInfo descriptor - # and default qbot's field descriptor + # and default quickbot's field descriptor description: str | None = Field( # field with sqlmodel's descriptor - sa_type = String, index = True) # and default qbot's descriptor + sa_type = String, index = True) # and default quickbot's descriptor - age: int = EntityField( # field with qbot's descriptor + age: int = EntityField( # field with quickbot's descriptor caption = "Age", ) @@ -96,6 +96,4 @@ async def menu(context: CommandCallbackContext): ``` ## Result - - -forced_change_ \ No newline at end of file + \ No newline at end of file diff --git a/src/quickbot/bot/handlers/common/routing.py b/src/quickbot/bot/handlers/common/routing.py index caa79ce..b43bd56 100644 --- a/src/quickbot/bot/handlers/common/routing.py +++ b/src/quickbot/bot/handlers/common/routing.py @@ -2,7 +2,7 @@ from aiogram.types import Message, CallbackQuery from typing import TYPE_CHECKING if TYPE_CHECKING: - from qbot.main import QBotApp + from quickbot.main import QBotApp from ..context import CallbackCommand @@ -12,14 +12,14 @@ from ....utils.navigation import ( pop_navigation_context, ) -import qbot.bot.handlers.menu.main as menu_main -import qbot.bot.handlers.menu.settings as menu_settings -import qbot.bot.handlers.menu.parameters as menu_parameters -import qbot.bot.handlers.menu.language as menu_language -import qbot.bot.handlers.menu.entities as menu_entities -import qbot.bot.handlers.forms.entity_list as form_list -import qbot.bot.handlers.forms.entity_form as form_item -import qbot.bot.handlers.editors.main as editor +import quickbot.bot.handlers.menu.main as menu_main +import quickbot.bot.handlers.menu.settings as menu_settings +import quickbot.bot.handlers.menu.parameters as menu_parameters +import quickbot.bot.handlers.menu.language as menu_language +import quickbot.bot.handlers.menu.entities as menu_entities +import quickbot.bot.handlers.forms.entity_list as form_list +import quickbot.bot.handlers.forms.entity_form as form_item +import quickbot.bot.handlers.editors.main as editor async def route_callback(message: Message | CallbackQuery, back: bool = True, **kwargs): @@ -47,7 +47,7 @@ async def route_callback(message: Message | CallbackQuery, back: bool = True, ** elif context.command == CallbackCommand.FIELD_EDITOR: await editor.field_editor(message, **kwargs) elif context.command == CallbackCommand.USER_COMMAND: - import qbot.bot.handlers.user_handlers.main as user_handler + import quickbot.bot.handlers.user_handlers.main as user_handler app: "QBotApp" = kwargs["app"] cmd = app.bot_commands.get(context.user_command.split("&")[0]) diff --git a/src/quickbot/bot/handlers/forms/entity_form_callbacks.py b/src/quickbot/bot/handlers/forms/entity_form_callbacks.py index 57c1d81..a57870c 100644 --- a/src/quickbot/bot/handlers/forms/entity_form_callbacks.py +++ b/src/quickbot/bot/handlers/forms/entity_form_callbacks.py @@ -6,7 +6,7 @@ from aiogram.utils.keyboard import InlineKeyboardBuilder from sqlmodel.ext.asyncio.session import AsyncSession from typing import TYPE_CHECKING -from qbot.model.descriptors import EntityEventContext +from quickbot.model.descriptors import EntityEventContext from ..context import ContextData, CallbackCommand from ....model.user import UserBase diff --git a/src/quickbot/bot/handlers/menu/main.py b/src/quickbot/bot/handlers/menu/main.py index ee328bf..306cfbe 100644 --- a/src/quickbot/bot/handlers/menu/main.py +++ b/src/quickbot/bot/handlers/menu/main.py @@ -7,17 +7,17 @@ from ..context import ContextData, CallbackCommand from ....utils.main import get_send_message from ....utils.navigation import save_navigation_context, pop_navigation_context -import qbot.bot.handlers.menu.entities as entities -import qbot.bot.handlers.menu.settings as settings -import qbot.bot.handlers.menu.parameters as parameters -import qbot.bot.handlers.menu.language as language -import qbot.bot.handlers.editors.main as editor -import qbot.bot.handlers.editors.main_callbacks as editor_callbacks -import qbot.bot.handlers.forms.entity_list as entity_list -import qbot.bot.handlers.forms.entity_form as entity_form -import qbot.bot.handlers.forms.entity_form_callbacks as entity_form_callbacks -import qbot.bot.handlers.common.filtering_callbacks as filtering_callbacks -import qbot.bot.handlers.user_handlers.main as user_handlers_main +import quickbot.bot.handlers.menu.entities as entities +import quickbot.bot.handlers.menu.settings as settings +import quickbot.bot.handlers.menu.parameters as parameters +import quickbot.bot.handlers.menu.language as language +import quickbot.bot.handlers.editors.main as editor +import quickbot.bot.handlers.editors.main_callbacks as editor_callbacks +import quickbot.bot.handlers.forms.entity_list as entity_list +import quickbot.bot.handlers.forms.entity_form as entity_form +import quickbot.bot.handlers.forms.entity_form_callbacks as entity_form_callbacks +import quickbot.bot.handlers.common.filtering_callbacks as filtering_callbacks +import quickbot.bot.handlers.user_handlers.main as user_handlers_main logger = getLogger(__name__) diff --git a/src/quickbot/bot/handlers/user_handlers/main.py b/src/quickbot/bot/handlers/user_handlers/main.py index cd4bd90..b80352f 100644 --- a/src/quickbot/bot/handlers/user_handlers/main.py +++ b/src/quickbot/bot/handlers/user_handlers/main.py @@ -4,21 +4,21 @@ from aiogram.types import Message, CallbackQuery, InlineKeyboardButton from inspect import iscoroutinefunction from typing import TYPE_CHECKING -from qbot.utils.main import clear_state -from qbot.utils.navigation import ( +from quickbot.utils.main import clear_state +from quickbot.utils.navigation import ( save_navigation_context, get_navigation_context, pop_navigation_context, ) -from qbot.bot.handlers.editors.main import field_editor -from qbot.bot.handlers.common.routing import route_callback -from qbot.utils.serialization import deserialize -from qbot.utils.main import get_send_message -from qbot.model.descriptors import BotCommand, CommandCallbackContext -from qbot.model.settings import Settings +from quickbot.bot.handlers.editors.main import field_editor +from quickbot.bot.handlers.common.routing import route_callback +from quickbot.utils.serialization import deserialize +from quickbot.utils.main import get_send_message +from quickbot.model.descriptors import BotCommand, CommandCallbackContext +from quickbot.model.settings import Settings if TYPE_CHECKING: - from qbot.main import QBotApp + from quickbot.main import QBotApp from ..context import ContextData, CallbackCommand, CommandContext diff --git a/tests/bot.py b/tests/bot.py index 64943ed..0f2becf 100644 --- a/tests/bot.py +++ b/tests/bot.py @@ -1,4 +1,4 @@ -from qbot import ( +from quickbot import ( QBotApp, BotEntity, Entity, @@ -10,9 +10,9 @@ from qbot import ( ContextData, CallbackCommand, ) -from qbot.model.user import UserBase -from qbot.model.descriptors import Filter -from qbot.model.role import RoleBase +from quickbot.model.user import UserBase +from quickbot.model.descriptors import Filter +from quickbot.model.role import RoleBase from aiogram.types import InlineKeyboardButton from datetime import datetime