arpakitlib 1.8.105__py3-none-any.whl → 1.8.107__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- arpakitlib/_arpakit_project_template_v_5/project/api/authorize.py +5 -4
- arpakitlib/_arpakit_project_template_v_5/project/api/create_api_app.py +1 -0
- arpakitlib/_arpakit_project_template_v_5/project/api/exception.py +1 -0
- arpakitlib/_arpakit_project_template_v_5/project/api/exception_handler.py +1 -0
- arpakitlib/_arpakit_project_template_v_5/project/api/response.py +1 -0
- arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/clear_log_file.py +2 -1
- arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/create_operation.py +1 -0
- arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_arpakitlib_project_template_info.py +1 -0
- arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_auth_data.py +2 -1
- arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_log_file.py +2 -1
- arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_operation.py +2 -1
- arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_settings.py +1 -0
- arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_sqlalchemy_db_table_name_to_amount.py +1 -0
- arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_story_log.py +2 -1
- arpakitlib/_arpakit_project_template_v_5/project/api/router/admin/get_user.py +2 -1
- arpakitlib/_arpakit_project_template_v_5/project/api/router/client/get_current_user.py +2 -1
- arpakitlib/_arpakit_project_template_v_5/project/api/router/client/get_current_user_token.py +1 -0
- arpakitlib/_arpakit_project_template_v_5/project/api/router/general/healthcheck.py +2 -1
- arpakitlib/_arpakit_project_template_v_5/project/api/router/general/now_utc_datetime.py +2 -1
- arpakitlib/_arpakit_project_template_v_5/project/core/jinja2_templates.py +1 -0
- arpakitlib/_arpakit_project_template_v_5/project/core/settings.py +3 -2
- arpakitlib/_arpakit_project_template_v_5/project/operation_execution/operation_executor_worker.py +2 -1
- arpakitlib/_arpakit_project_template_v_5/project/operation_execution/scheduled_operations.py +3 -2
- arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/api_key.py +2 -1
- arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/common.py +3 -2
- arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/operation.py +3 -2
- arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/story_log.py +2 -1
- arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/user_token.py +2 -1
- arpakitlib/_arpakit_project_template_v_5/project/tg_bot/blank/admin.py +2 -1
- arpakitlib/_arpakit_project_template_v_5/project/tg_bot/blank/client.py +1 -0
- arpakitlib/_arpakit_project_template_v_5/project/tg_bot/{callback → callback_data_}/admin.py +1 -1
- arpakitlib/_arpakit_project_template_v_5/project/tg_bot/callback_data_/client.py +5 -0
- arpakitlib/_arpakit_project_template_v_5/project/tg_bot/event.py +1 -0
- arpakitlib/_arpakit_project_template_v_5/project/tg_bot/filter_/message_text.py +1 -0
- arpakitlib/_arpakit_project_template_v_5/project/tg_bot/kb/inline_/admin/hello_world.py +1 -1
- arpakitlib/_arpakit_project_template_v_5/project/tg_bot/middleware/common.py +2 -1
- arpakitlib/_arpakit_project_template_v_5/project/tg_bot/middleware/init_user.py +1 -0
- arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/hello_world.py +1 -1
- arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/kb_with_old_cd.py +1 -1
- arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/kb_with_raise_error.py +1 -1
- arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/kb_with_remove_message.py +1 -1
- arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/log_file.py +1 -0
- arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/client/about.py +1 -0
- arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/client/author.py +1 -0
- arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/client/cancel.py +1 -0
- arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/client/error_handler.py +1 -0
- arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/client/raw_callback_query.py +1 -0
- arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/client/remove_message.py +2 -1
- arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/client/start.py +1 -0
- arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/client/support.py +1 -0
- arpakitlib/_arpakit_project_template_v_5/project/tg_bot/start_tg_bot.py +1 -0
- arpakitlib/_arpakit_project_template_v_5/project/tg_bot/tg_bot.py +1 -0
- arpakitlib/_arpakit_project_template_v_5/project/tg_bot/util/notify_admins.py +2 -1
- arpakitlib/_arpakit_project_template_v_5/project/tg_bot/util/set_tg_bot_commands.py +1 -0
- arpakitlib/_arpakit_project_template_v_5/todo.txt +1 -0
- arpakitlib/ar_base64_util.py +15 -1
- arpakitlib/ar_openai_api_client_util.py +106 -35
- {arpakitlib-1.8.105.dist-info → arpakitlib-1.8.107.dist-info}/METADATA +2 -1
- {arpakitlib-1.8.105.dist-info → arpakitlib-1.8.107.dist-info}/RECORD +64 -63
- arpakitlib/_arpakit_project_template_v_5/project/tg_bot/callback/client.py +0 -5
- /arpakitlib/_arpakit_project_template_v_5/project/tg_bot/{callback → callback_data_}/__init__.py +0 -0
- /arpakitlib/_arpakit_project_template_v_5/project/tg_bot/{callback → callback_data_}/common.py +0 -0
- {arpakitlib-1.8.105.dist-info → arpakitlib-1.8.107.dist-info}/LICENSE +0 -0
- {arpakitlib-1.8.105.dist-info → arpakitlib-1.8.107.dist-info}/WHEEL +0 -0
- {arpakitlib-1.8.105.dist-info → arpakitlib-1.8.107.dist-info}/entry_points.txt +0 -0
@@ -5,17 +5,18 @@ import fastapi.exceptions
|
|
5
5
|
import fastapi.responses
|
6
6
|
import fastapi.security
|
7
7
|
import sqlalchemy
|
8
|
-
from arpakitlib.ar_func_util import is_async_func, is_sync_func
|
9
|
-
from arpakitlib.ar_json_util import transfer_data_to_json_str_to_data
|
10
8
|
from fastapi import Security
|
11
9
|
from fastapi.security import APIKeyHeader
|
10
|
+
from pydantic import BaseModel, ConfigDict
|
11
|
+
from sqlalchemy.orm import joinedload
|
12
|
+
|
13
|
+
from arpakitlib.ar_func_util import is_async_func, is_sync_func
|
14
|
+
from arpakitlib.ar_json_util import transfer_data_to_json_str_to_data
|
12
15
|
from project.api.const import APIErrorCodes
|
13
16
|
from project.api.exception import APIException
|
14
17
|
from project.core.settings import get_cached_settings
|
15
18
|
from project.sqlalchemy_db_.sqlalchemy_db import get_cached_sqlalchemy_db
|
16
19
|
from project.sqlalchemy_db_.sqlalchemy_model import ApiKeyDBM, UserTokenDBM
|
17
|
-
from pydantic import BaseModel, ConfigDict
|
18
|
-
from sqlalchemy.orm import joinedload
|
19
20
|
|
20
21
|
|
21
22
|
class APIAuthorizeData(BaseModel):
|
@@ -5,6 +5,7 @@ import starlette.types
|
|
5
5
|
from fastapi import FastAPI
|
6
6
|
from fastapi.middleware.cors import CORSMiddleware
|
7
7
|
from fastapi.staticfiles import StaticFiles
|
8
|
+
|
8
9
|
from project.api.event import get_startup_api_events, get_shutdown_api_events
|
9
10
|
from project.api.exception_handler import add_exception_handler_to_api_app
|
10
11
|
from project.api.openapi_ui import add_local_openapi_ui_to_api_app
|
@@ -1,6 +1,7 @@
|
|
1
1
|
import fastapi
|
2
|
-
from arpakitlib.ar_logging_util import init_log_file
|
3
2
|
from fastapi import APIRouter
|
3
|
+
|
4
|
+
from arpakitlib.ar_logging_util import init_log_file
|
4
5
|
from project.api.authorize import require_api_key_dbm_api_authorize_middleware, APIAuthorizeData, \
|
5
6
|
require_user_token_dbm_api_authorize_middleware, api_authorize
|
6
7
|
from project.api.schema.out.common.error import ErrorCommonSO
|
@@ -2,6 +2,7 @@ from typing import Any
|
|
2
2
|
|
3
3
|
import fastapi
|
4
4
|
from fastapi import APIRouter
|
5
|
+
|
5
6
|
from project.api.authorize import require_api_key_dbm_api_authorize_middleware, \
|
6
7
|
require_user_token_dbm_api_authorize_middleware, APIAuthorizeData, api_authorize
|
7
8
|
from project.api.schema.common import BaseSI
|
@@ -2,6 +2,7 @@ from typing import Any
|
|
2
2
|
|
3
3
|
import fastapi
|
4
4
|
from fastapi import APIRouter
|
5
|
+
|
5
6
|
from project.api.authorize import require_user_token_dbm_api_authorize_middleware, APIAuthorizeData, \
|
6
7
|
api_authorize, require_api_key_dbm_api_authorize_middleware
|
7
8
|
from project.api.schema.out.common.error import ErrorCommonSO
|
@@ -1,8 +1,9 @@
|
|
1
1
|
from typing import Any
|
2
2
|
|
3
3
|
import fastapi.requests
|
4
|
-
from arpakitlib.ar_json_util import transfer_data_to_json_str_to_data
|
5
4
|
from fastapi import APIRouter
|
5
|
+
|
6
|
+
from arpakitlib.ar_json_util import transfer_data_to_json_str_to_data
|
6
7
|
from project.api.authorize import APIAuthorizeData, api_authorize, require_user_token_dbm_api_authorize_middleware, \
|
7
8
|
require_api_key_dbm_api_authorize_middleware
|
8
9
|
from project.api.schema.out.common.error import ErrorCommonSO
|
@@ -1,6 +1,7 @@
|
|
1
1
|
import fastapi
|
2
|
-
from arpakitlib.ar_logging_util import init_log_file
|
3
2
|
from fastapi import APIRouter
|
3
|
+
|
4
|
+
from arpakitlib.ar_logging_util import init_log_file
|
4
5
|
from project.api.authorize import require_api_key_dbm_api_authorize_middleware, APIAuthorizeData, \
|
5
6
|
require_user_token_dbm_api_authorize_middleware, api_authorize
|
6
7
|
from project.core.settings import get_cached_settings
|
@@ -1,7 +1,8 @@
|
|
1
1
|
import fastapi.requests
|
2
2
|
import sqlalchemy
|
3
|
-
from arpakitlib.ar_str_util import strip_if_not_none, make_none_if_blank
|
4
3
|
from fastapi import APIRouter
|
4
|
+
|
5
|
+
from arpakitlib.ar_str_util import strip_if_not_none, make_none_if_blank
|
5
6
|
from project.api.authorize import APIAuthorizeData, api_authorize, require_user_token_dbm_api_authorize_middleware, \
|
6
7
|
require_api_key_dbm_api_authorize_middleware
|
7
8
|
from project.api.schema.out.admin.operation import Operation1AdminSO
|
@@ -2,6 +2,7 @@ from typing import Any
|
|
2
2
|
|
3
3
|
import fastapi.requests
|
4
4
|
from fastapi import APIRouter
|
5
|
+
|
5
6
|
from project.api.authorize import APIAuthorizeData, api_authorize, require_api_key_dbm_api_authorize_middleware, \
|
6
7
|
require_user_token_dbm_api_authorize_middleware
|
7
8
|
from project.api.schema.out.common.error import ErrorCommonSO
|
@@ -2,6 +2,7 @@ from typing import Any
|
|
2
2
|
|
3
3
|
import fastapi
|
4
4
|
from fastapi import APIRouter
|
5
|
+
|
5
6
|
from project.api.authorize import require_user_token_dbm_api_authorize_middleware, APIAuthorizeData, \
|
6
7
|
api_authorize, require_api_key_dbm_api_authorize_middleware
|
7
8
|
from project.api.schema.out.common.error import ErrorCommonSO
|
@@ -1,7 +1,8 @@
|
|
1
1
|
import fastapi.requests
|
2
2
|
import sqlalchemy
|
3
|
-
from arpakitlib.ar_str_util import make_none_if_blank, strip_if_not_none
|
4
3
|
from fastapi import APIRouter
|
4
|
+
|
5
|
+
from arpakitlib.ar_str_util import make_none_if_blank, strip_if_not_none
|
5
6
|
from project.api.authorize import APIAuthorizeData, api_authorize, require_user_token_dbm_api_authorize_middleware, \
|
6
7
|
require_api_key_dbm_api_authorize_middleware
|
7
8
|
from project.api.schema.out.admin.story_log import StoryLog1AdminSO
|
@@ -1,7 +1,8 @@
|
|
1
1
|
import fastapi.requests
|
2
2
|
import sqlalchemy
|
3
|
-
from arpakitlib.ar_str_util import strip_if_not_none, make_none_if_blank
|
4
3
|
from fastapi import APIRouter
|
4
|
+
|
5
|
+
from arpakitlib.ar_str_util import strip_if_not_none, make_none_if_blank
|
5
6
|
from project.api.authorize import APIAuthorizeData, api_authorize, require_user_token_dbm_api_authorize_middleware, \
|
6
7
|
require_api_key_dbm_api_authorize_middleware
|
7
8
|
from project.api.schema.out.admin.user import User1AdminSO
|
@@ -3,13 +3,14 @@ from __future__ import annotations
|
|
3
3
|
import fastapi.requests
|
4
4
|
import sqlalchemy
|
5
5
|
from fastapi import APIRouter
|
6
|
+
from sqlalchemy.orm import joinedload
|
7
|
+
|
6
8
|
from project.api.authorize import APIAuthorizeData, api_authorize, require_user_token_dbm_api_authorize_middleware, \
|
7
9
|
require_api_key_dbm_api_authorize_middleware
|
8
10
|
from project.api.schema.out.client.complicated_user_1 import ComplicatedUser1ClientSO
|
9
11
|
from project.api.schema.out.common.error import ErrorCommonSO
|
10
12
|
from project.sqlalchemy_db_.sqlalchemy_db import get_cached_sqlalchemy_db
|
11
13
|
from project.sqlalchemy_db_.sqlalchemy_model import UserDBM
|
12
|
-
from sqlalchemy.orm import joinedload
|
13
14
|
|
14
15
|
api_router = APIRouter()
|
15
16
|
|
arpakitlib/_arpakit_project_template_v_5/project/api/router/client/get_current_user_token.py
CHANGED
@@ -2,6 +2,7 @@ from __future__ import annotations
|
|
2
2
|
|
3
3
|
import fastapi.requests
|
4
4
|
from fastapi import APIRouter
|
5
|
+
|
5
6
|
from project.api.authorize import APIAuthorizeData, api_authorize, require_user_token_dbm_api_authorize_middleware, \
|
6
7
|
require_api_key_dbm_api_authorize_middleware
|
7
8
|
from project.api.schema.out.client.complicated_user_token_1 import ComplicatedUserToken1ClientSO
|
@@ -1,8 +1,9 @@
|
|
1
1
|
import datetime as dt
|
2
2
|
|
3
3
|
import fastapi
|
4
|
-
from arpakitlib.ar_datetime_util import now_utc_dt
|
5
4
|
from fastapi import APIRouter
|
5
|
+
|
6
|
+
from arpakitlib.ar_datetime_util import now_utc_dt
|
6
7
|
from project.api.schema.common import BaseSO
|
7
8
|
from project.api.schema.out.common.error import ErrorCommonSO
|
8
9
|
|
@@ -1,6 +1,7 @@
|
|
1
1
|
import fastapi
|
2
|
-
from arpakitlib.ar_datetime_util import now_utc_dt
|
3
2
|
from fastapi import APIRouter
|
3
|
+
|
4
|
+
from arpakitlib.ar_datetime_util import now_utc_dt
|
4
5
|
from project.api.authorize import require_api_key_dbm_api_authorize_middleware, APIAuthorizeData, api_authorize
|
5
6
|
from project.api.schema.out.common.datetime_ import DatetimeCommonSO
|
6
7
|
from project.api.schema.out.common.error import ErrorCommonSO
|
@@ -3,13 +3,14 @@ from functools import lru_cache
|
|
3
3
|
from typing import Any
|
4
4
|
|
5
5
|
import pytz
|
6
|
+
from pydantic import field_validator
|
7
|
+
from pydantic_core.core_schema import ValidationInfo
|
8
|
+
|
6
9
|
from arpakitlib.ar_json_util import transfer_data_to_json_str
|
7
10
|
from arpakitlib.ar_settings_util import SimpleSettings
|
8
11
|
from arpakitlib.ar_sqlalchemy_util import generate_sqlalchemy_url
|
9
12
|
from arpakitlib.ar_type_util import raise_for_type
|
10
13
|
from project.core.const import ProjectPaths
|
11
|
-
from pydantic import field_validator
|
12
|
-
from pydantic_core.core_schema import ValidationInfo
|
13
14
|
|
14
15
|
|
15
16
|
class Settings(SimpleSettings):
|
arpakitlib/_arpakit_project_template_v_5/project/operation_execution/operation_executor_worker.py
CHANGED
@@ -5,6 +5,8 @@ from datetime import timedelta
|
|
5
5
|
from typing import Any
|
6
6
|
|
7
7
|
import sqlalchemy
|
8
|
+
from sqlalchemy import asc
|
9
|
+
|
8
10
|
from arpakitlib.ar_base_worker_util import BaseWorker
|
9
11
|
from arpakitlib.ar_datetime_util import now_utc_dt
|
10
12
|
from arpakitlib.ar_dict_util import combine_dicts
|
@@ -13,7 +15,6 @@ from arpakitlib.ar_sqlalchemy_util import SQLAlchemyDb
|
|
13
15
|
from arpakitlib.ar_type_util import raise_for_type
|
14
16
|
from project.sqlalchemy_db_.sqlalchemy_db import get_cached_sqlalchemy_db
|
15
17
|
from project.sqlalchemy_db_.sqlalchemy_model import OperationDBM, StoryLogDBM
|
16
|
-
from sqlalchemy import asc
|
17
18
|
|
18
19
|
|
19
20
|
class OperationExecutorWorker(BaseWorker):
|
arpakitlib/_arpakit_project_template_v_5/project/operation_execution/scheduled_operations.py
CHANGED
@@ -1,11 +1,12 @@
|
|
1
1
|
from datetime import timedelta
|
2
2
|
from typing import Any, Callable
|
3
3
|
|
4
|
-
from project.operation_execution.util import every_timedelta_is_time_func
|
5
|
-
from project.sqlalchemy_db_.sqlalchemy_model import OperationDBM
|
6
4
|
from pydantic import ConfigDict
|
7
5
|
from pydantic.v1 import BaseModel
|
8
6
|
|
7
|
+
from project.operation_execution.util import every_timedelta_is_time_func
|
8
|
+
from project.sqlalchemy_db_.sqlalchemy_model import OperationDBM
|
9
|
+
|
9
10
|
|
10
11
|
class ScheduledOperation(BaseModel):
|
11
12
|
model_config = ConfigDict(extra="forbid", arbitrary_types_allowed=True, from_attributes=True)
|
@@ -4,10 +4,11 @@ from typing import TYPE_CHECKING
|
|
4
4
|
from uuid import uuid4
|
5
5
|
|
6
6
|
import sqlalchemy
|
7
|
+
from sqlalchemy.orm import Mapped, mapped_column, validates
|
8
|
+
|
7
9
|
from arpakitlib.ar_datetime_util import now_utc_dt
|
8
10
|
from arpakitlib.ar_str_util import make_none_if_blank
|
9
11
|
from project.sqlalchemy_db_.sqlalchemy_model.common import SimpleDBM
|
10
|
-
from sqlalchemy.orm import Mapped, mapped_column, validates
|
11
12
|
|
12
13
|
if TYPE_CHECKING:
|
13
14
|
pass
|
@@ -3,11 +3,12 @@ from typing import Any
|
|
3
3
|
from uuid import uuid4
|
4
4
|
|
5
5
|
import sqlalchemy
|
6
|
-
from arpakitlib.ar_datetime_util import now_utc_dt
|
7
|
-
from arpakitlib.ar_sqlalchemy_util import get_string_info_from_declarative_base, BaseDBM
|
8
6
|
from sqlalchemy import func
|
9
7
|
from sqlalchemy.orm import mapped_column, Mapped, validates
|
10
8
|
|
9
|
+
from arpakitlib.ar_datetime_util import now_utc_dt
|
10
|
+
from arpakitlib.ar_sqlalchemy_util import get_string_info_from_declarative_base, BaseDBM
|
11
|
+
|
11
12
|
|
12
13
|
def generate_default_long_id() -> str:
|
13
14
|
return (
|
arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/operation.py
CHANGED
@@ -4,11 +4,12 @@ from datetime import datetime, timedelta
|
|
4
4
|
from typing import Any, TYPE_CHECKING
|
5
5
|
|
6
6
|
import sqlalchemy
|
7
|
+
from sqlalchemy.dialects import postgresql
|
8
|
+
from sqlalchemy.orm import mapped_column, Mapped, validates
|
9
|
+
|
7
10
|
from arpakitlib.ar_enumeration_util import Enumeration
|
8
11
|
from arpakitlib.ar_str_util import make_none_if_blank
|
9
12
|
from project.sqlalchemy_db_.sqlalchemy_model.common import SimpleDBM
|
10
|
-
from sqlalchemy.dialects import postgresql
|
11
|
-
from sqlalchemy.orm import mapped_column, Mapped, validates
|
12
13
|
|
13
14
|
if TYPE_CHECKING:
|
14
15
|
pass
|
arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/story_log.py
CHANGED
@@ -3,10 +3,11 @@ from __future__ import annotations
|
|
3
3
|
from typing import TYPE_CHECKING
|
4
4
|
|
5
5
|
import sqlalchemy
|
6
|
+
from sqlalchemy.orm import mapped_column, Mapped, validates
|
7
|
+
|
6
8
|
from arpakitlib.ar_enumeration_util import Enumeration
|
7
9
|
from arpakitlib.ar_str_util import make_none_if_blank
|
8
10
|
from project.sqlalchemy_db_.sqlalchemy_model.common import SimpleDBM
|
9
|
-
from sqlalchemy.orm import mapped_column, Mapped, validates
|
10
11
|
|
11
12
|
if TYPE_CHECKING:
|
12
13
|
pass
|
arpakitlib/_arpakit_project_template_v_5/project/sqlalchemy_db_/sqlalchemy_model/user_token.py
CHANGED
@@ -4,9 +4,10 @@ from typing import TYPE_CHECKING
|
|
4
4
|
from uuid import uuid4
|
5
5
|
|
6
6
|
import sqlalchemy
|
7
|
+
from sqlalchemy.orm import Mapped, mapped_column, relationship, validates
|
8
|
+
|
7
9
|
from arpakitlib.ar_datetime_util import now_utc_dt
|
8
10
|
from project.sqlalchemy_db_.sqlalchemy_model.common import SimpleDBM
|
9
|
-
from sqlalchemy.orm import Mapped, mapped_column, relationship, validates
|
10
11
|
|
11
12
|
if TYPE_CHECKING:
|
12
13
|
from project.sqlalchemy_db_.sqlalchemy_model.user import UserDBM
|
@@ -1,7 +1,8 @@
|
|
1
1
|
from functools import lru_cache
|
2
2
|
|
3
|
-
from arpakitlib.ar_json_util import transfer_data_to_json_str
|
4
3
|
from emoji import emojize
|
4
|
+
|
5
|
+
from arpakitlib.ar_json_util import transfer_data_to_json_str
|
5
6
|
from project.sqlalchemy_db_.sqlalchemy_model import UserDBM
|
6
7
|
from project.tg_bot.blank.common import SimpleBlankTgBot
|
7
8
|
|
@@ -3,6 +3,7 @@ import logging
|
|
3
3
|
from typing import Callable
|
4
4
|
|
5
5
|
from aiogram import Dispatcher
|
6
|
+
|
6
7
|
from arpakitlib.ar_base_worker_util import safe_run_worker_in_background, SafeRunInBackgroundModes
|
7
8
|
from arpakitlib.ar_datetime_util import now_utc_dt
|
8
9
|
from project.core.cache_file_storage_in_dir import get_cached_cache_file_storage_in_dir
|
@@ -2,7 +2,7 @@ from aiogram.types import InlineKeyboardMarkup, InlineKeyboardButton
|
|
2
2
|
from aiogram.utils.keyboard import InlineKeyboardBuilder
|
3
3
|
|
4
4
|
from project.tg_bot.blank.admin import get_cached_eng_admin_tg_bot_blank
|
5
|
-
from project.tg_bot.
|
5
|
+
from project.tg_bot.callback_data_.admin import HelloWorldAdminCD
|
6
6
|
|
7
7
|
|
8
8
|
def hello_world_admin_inline_kb_tg_bot() -> InlineKeyboardMarkup:
|
@@ -1,8 +1,9 @@
|
|
1
1
|
from typing import Any
|
2
2
|
|
3
|
-
from project.sqlalchemy_db_.sqlalchemy_model import UserDBM
|
4
3
|
from pydantic import BaseModel, ConfigDict
|
5
4
|
|
5
|
+
from project.sqlalchemy_db_.sqlalchemy_model import UserDBM
|
6
|
+
|
6
7
|
|
7
8
|
class MiddlewareDataTgBot(BaseModel):
|
8
9
|
model_config = ConfigDict(extra="forbid", arbitrary_types_allowed=True, from_attributes=True)
|
@@ -5,6 +5,7 @@ import aiogram
|
|
5
5
|
import sqlalchemy
|
6
6
|
from aiogram import BaseMiddleware
|
7
7
|
from aiogram.types import TelegramObject
|
8
|
+
|
8
9
|
from arpakitlib.ar_datetime_util import now_utc_dt
|
9
10
|
from project.core.settings import get_cached_settings
|
10
11
|
from project.sqlalchemy_db_.sqlalchemy_db import get_cached_sqlalchemy_db
|
@@ -5,7 +5,7 @@ from aiogram.fsm.context import FSMContext
|
|
5
5
|
from arpakitlib.ar_str_util import remove_html
|
6
6
|
from project.tg_bot.blank.admin import get_cached_eng_admin_tg_bot_blank
|
7
7
|
from project.tg_bot.blank.client import get_cached_rus_client_tg_bot_blank
|
8
|
-
from project.tg_bot.
|
8
|
+
from project.tg_bot.callback_data_.admin import HelloWorldAdminCD
|
9
9
|
from project.tg_bot.const import AdminTgBotCommands
|
10
10
|
from project.tg_bot.filter_.is_private_chat import IsPrivateChatTgBotFilter
|
11
11
|
from project.tg_bot.filter_.message_text import MessageTextTgBotFilter
|
@@ -4,7 +4,7 @@ from aiogram.types import InlineKeyboardButton
|
|
4
4
|
from aiogram.utils.keyboard import InlineKeyboardBuilder
|
5
5
|
|
6
6
|
from arpakitlib.ar_aiogram_util import as_tg_command
|
7
|
-
from project.tg_bot.
|
7
|
+
from project.tg_bot.callback_data_.common import BaseCD
|
8
8
|
from project.tg_bot.const import AdminTgBotCommands
|
9
9
|
from project.tg_bot.filter_.is_private_chat import IsPrivateChatTgBotFilter
|
10
10
|
from project.tg_bot.filter_.user_roles_has_admin import UserRolesHasAdminTgBotFilter
|
@@ -5,7 +5,7 @@ from aiogram.utils.keyboard import InlineKeyboardBuilder
|
|
5
5
|
|
6
6
|
from arpakitlib.ar_aiogram_util import as_tg_command
|
7
7
|
from project.tg_bot.blank.admin import get_cached_eng_admin_tg_bot_blank
|
8
|
-
from project.tg_bot.
|
8
|
+
from project.tg_bot.callback_data_.common import BaseCD
|
9
9
|
from project.tg_bot.const import AdminTgBotCommands
|
10
10
|
from project.tg_bot.filter_.is_private_chat import IsPrivateChatTgBotFilter
|
11
11
|
from project.tg_bot.filter_.user_roles_has_admin import UserRolesHasAdminTgBotFilter
|
arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/kb_with_remove_message.py
CHANGED
@@ -5,7 +5,7 @@ from aiogram.utils.keyboard import InlineKeyboardBuilder
|
|
5
5
|
|
6
6
|
from arpakitlib.ar_aiogram_util import as_tg_command
|
7
7
|
from project.tg_bot.blank.admin import get_cached_eng_admin_tg_bot_blank
|
8
|
-
from project.tg_bot.
|
8
|
+
from project.tg_bot.callback_data_.client import RemoveMessageClientCD
|
9
9
|
from project.tg_bot.const import AdminTgBotCommands
|
10
10
|
from project.tg_bot.filter_.is_private_chat import IsPrivateChatTgBotFilter
|
11
11
|
from project.tg_bot.filter_.user_roles_has_admin import UserRolesHasAdminTgBotFilter
|
@@ -5,6 +5,7 @@ from aiogram import Router, types
|
|
5
5
|
from aiogram.filters import Command
|
6
6
|
from aiogram.fsm.context import FSMContext
|
7
7
|
from aiogram.types import FSInputFile
|
8
|
+
|
8
9
|
from arpakitlib.ar_aiogram_util import as_tg_command
|
9
10
|
from project.core.settings import get_cached_settings
|
10
11
|
from project.tg_bot.const import AdminTgBotCommands
|
@@ -4,6 +4,7 @@ import aiogram
|
|
4
4
|
from aiogram import Router
|
5
5
|
from aiogram.filters import Command, or_f
|
6
6
|
from aiogram.fsm.context import FSMContext
|
7
|
+
|
7
8
|
from project.tg_bot.blank.client import get_cached_rus_client_tg_bot_blank
|
8
9
|
from project.tg_bot.const import ClientTgBotCommands
|
9
10
|
from project.tg_bot.filter_.message_text import MessageTextTgBotFilter
|
@@ -4,6 +4,7 @@ import aiogram
|
|
4
4
|
from aiogram import Router
|
5
5
|
from aiogram.filters import Command, or_f
|
6
6
|
from aiogram.fsm.context import FSMContext
|
7
|
+
|
7
8
|
from project.tg_bot.blank.client import get_cached_rus_client_tg_bot_blank
|
8
9
|
from project.tg_bot.const import ClientTgBotCommands
|
9
10
|
from project.tg_bot.filter_.message_text import MessageTextTgBotFilter
|
@@ -4,6 +4,7 @@ import aiogram
|
|
4
4
|
from aiogram import Router
|
5
5
|
from aiogram.filters import Command, or_f
|
6
6
|
from aiogram.fsm.context import FSMContext
|
7
|
+
|
7
8
|
from project.tg_bot.blank.client import get_cached_rus_client_tg_bot_blank
|
8
9
|
from project.tg_bot.const import ClientTgBotCommands
|
9
10
|
from project.tg_bot.filter_.message_text import MessageTextTgBotFilter
|
@@ -4,6 +4,7 @@ import aiogram
|
|
4
4
|
from aiogram import Router
|
5
5
|
from aiogram.exceptions import TelegramBadRequest
|
6
6
|
from aiogram.fsm.context import FSMContext
|
7
|
+
|
7
8
|
from arpakitlib.ar_exception_util import exception_to_traceback_str
|
8
9
|
from project.sqlalchemy_db_.sqlalchemy_db import get_cached_sqlalchemy_db
|
9
10
|
from project.sqlalchemy_db_.sqlalchemy_model import StoryLogDBM
|
@@ -3,6 +3,7 @@ import logging
|
|
3
3
|
import aiogram.filters
|
4
4
|
from aiogram.exceptions import AiogramError
|
5
5
|
from aiogram.fsm.context import FSMContext
|
6
|
+
|
6
7
|
from project.tg_bot.blank.client import get_cached_rus_client_tg_bot_blank
|
7
8
|
from project.tg_bot.middleware.common import MiddlewareDataTgBot
|
8
9
|
|
@@ -3,7 +3,8 @@ import logging
|
|
3
3
|
from aiogram import Router, types
|
4
4
|
from aiogram.exceptions import AiogramError
|
5
5
|
from aiogram.fsm.context import FSMContext
|
6
|
-
|
6
|
+
|
7
|
+
from project.tg_bot.callback_data_.client import RemoveMessageClientCD
|
7
8
|
from project.tg_bot.middleware.common import MiddlewareDataTgBot
|
8
9
|
|
9
10
|
_logger = logging.getLogger(__name__)
|
@@ -4,6 +4,7 @@ import aiogram
|
|
4
4
|
from aiogram import Router
|
5
5
|
from aiogram.filters import Command, or_f
|
6
6
|
from aiogram.fsm.context import FSMContext
|
7
|
+
|
7
8
|
from project.tg_bot.blank.client import get_cached_rus_client_tg_bot_blank
|
8
9
|
from project.tg_bot.const import ClientTgBotCommands
|
9
10
|
from project.tg_bot.filter_.message_text import MessageTextTgBotFilter
|
@@ -4,6 +4,7 @@ import aiogram
|
|
4
4
|
from aiogram import Router
|
5
5
|
from aiogram.filters import Command, or_f
|
6
6
|
from aiogram.fsm.context import FSMContext
|
7
|
+
|
7
8
|
from project.tg_bot.blank.client import get_cached_rus_client_tg_bot_blank
|
8
9
|
from project.tg_bot.const import ClientTgBotCommands
|
9
10
|
from project.tg_bot.filter_.message_text import MessageTextTgBotFilter
|
@@ -3,6 +3,7 @@ import asyncio
|
|
3
3
|
import aiohttp
|
4
4
|
import aiohttp.web
|
5
5
|
from aiogram.webhook.aiohttp_server import SimpleRequestHandler, setup_application
|
6
|
+
|
6
7
|
from project.core.settings import get_cached_settings
|
7
8
|
from project.core.util import setup_logging
|
8
9
|
from project.tg_bot.tg_bot import get_cached_tg_bot
|
@@ -4,8 +4,9 @@ from datetime import timedelta
|
|
4
4
|
|
5
5
|
import sqlalchemy
|
6
6
|
from aiogram.exceptions import AiogramError
|
7
|
-
from arpakitlib.ar_str_util import remove_tags_and_html
|
8
7
|
from emoji import emojize
|
8
|
+
|
9
|
+
from arpakitlib.ar_str_util import remove_tags_and_html
|
9
10
|
from project.core.settings import get_cached_settings
|
10
11
|
from project.core.util import setup_logging
|
11
12
|
from project.sqlalchemy_db_.sqlalchemy_db import get_cached_sqlalchemy_db
|
@@ -0,0 +1 @@
|
|
1
|
+
...
|
arpakitlib/ar_base64_util.py
CHANGED
@@ -15,6 +15,13 @@ def convert_base64_string_to_bytes(base64_string: str, raise_for_error: bool = F
|
|
15
15
|
return None
|
16
16
|
|
17
17
|
|
18
|
+
def convert_base64_string_to_string(base64_string: str, raise_for_error: bool = False) -> Optional[str]:
|
19
|
+
return convert_base64_string_to_bytes(
|
20
|
+
base64_string=base64_string,
|
21
|
+
raise_for_error=raise_for_error
|
22
|
+
).decode()
|
23
|
+
|
24
|
+
|
18
25
|
def convert_bytes_to_base64_string(bytes_: bytes, raise_for_error: bool = False) -> Optional[str]:
|
19
26
|
try:
|
20
27
|
return base64.b64encode(bytes_).decode()
|
@@ -24,8 +31,15 @@ def convert_bytes_to_base64_string(bytes_: bytes, raise_for_error: bool = False)
|
|
24
31
|
return None
|
25
32
|
|
26
33
|
|
34
|
+
def convert_file_to_base64_string(*, filepath: str, raise_for_error: bool = False) -> Optional[str]:
|
35
|
+
with open(filepath, "rb") as f:
|
36
|
+
return convert_bytes_to_base64_string(bytes_=f.read(), raise_for_error=raise_for_error)
|
37
|
+
|
38
|
+
|
27
39
|
def __example():
|
28
|
-
|
40
|
+
print(convert_base64_string_to_string(
|
41
|
+
base64_string=convert_file_to_base64_string(filepath="./ar_arpakitlib_cli_util.py")
|
42
|
+
))
|
29
43
|
|
30
44
|
|
31
45
|
if __name__ == '__main__':
|