arpakitlib 1.8.17__py3-none-any.whl → 1.8.19__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.
Files changed (311) hide show
  1. arpakitlib/_arpakit_project_template_v_5/arpakitlib_project_template_info.json +3 -0
  2. arpakitlib/_arpakit_project_template_v_5/command/alembic_revision_autogenerate.sh +2 -0
  3. arpakitlib/_arpakit_project_template_v_5/command/reinit_all_sqlalchemy_db.py +13 -0
  4. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/api/auth.py +5 -5
  5. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/api/auth2.py +72 -25
  6. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/api/exception_handler.py +10 -10
  7. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/api/router/admin/get_arpakitlib_project_template_info.py +2 -2
  8. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/api/router/client/get_errors_info.py +12 -2
  9. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/api/router/client/now_utc_datetime.py +2 -2
  10. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/api/schema/out/admin/common.py +1 -1
  11. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/api/schema/out/admin/operation.py +2 -2
  12. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/api/schema/out/admin/story_log.py +2 -2
  13. arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/admin/user.py +22 -0
  14. arpakitlib/_arpakit_project_template_v_5/project/api/schema/out/admin/user_token.py +14 -0
  15. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/api/schema/out/client/common.py +1 -1
  16. arpakitlib/{_arpakit_project_template_v_4/project/api/schema/out/general → _arpakit_project_template_v_5/project/api/schema/out/common}/error.py +1 -1
  17. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/operation_execution/operation_executor_worker.py +2 -2
  18. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/sandbox/sandbox_1.py +3 -1
  19. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/sqlalchemy_db_/sqlalchemy_model/user.py +1 -1
  20. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/tg_bot/blank/admin.py +2 -8
  21. arpakitlib/_arpakit_project_template_v_5/project/tg_bot/blank/client.py +69 -0
  22. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/tg_bot/callback/client.py +4 -0
  23. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/tg_bot/const.py +7 -6
  24. arpakitlib/_arpakit_project_template_v_5/project/tg_bot/filter_/user_roles_has_admin.py +18 -0
  25. arpakitlib/_arpakit_project_template_v_5/project/tg_bot/filter_/user_roles_has_client.py +18 -0
  26. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/tg_bot/middleware/init_user.py +9 -8
  27. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/tg_bot/router/admin/arpakitlib_project_template_info.py +6 -4
  28. arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/clear_log_file.py +33 -0
  29. arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/drop_sqlalchemy_db.py +31 -0
  30. arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/init_sqlalchemy_db.py +28 -0
  31. arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/kb_with_not_modified.py +59 -0
  32. arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/kb_with_old_cd.py +40 -0
  33. arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/kb_with_raise_error.py +48 -0
  34. arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/kb_with_remove_message.py +35 -0
  35. arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/log_file.py +37 -0
  36. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/tg_bot/router/admin/me.py +4 -0
  37. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/tg_bot/router/admin/raise_fake_error.py +5 -1
  38. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/tg_bot/router/admin/reinit_sqlalchemy_db.py +7 -3
  39. arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/admin/set_tg_bot_commands.py +28 -0
  40. arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/client/about.py +30 -0
  41. arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/client/error_handler.py +91 -0
  42. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/tg_bot/router/client/healthcheck.py +3 -1
  43. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/tg_bot/router/client/hello_world.py +5 -2
  44. arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/client/raw_callback_query.py +30 -0
  45. arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/client/raw_inline_query.py +14 -0
  46. arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/client/raw_message.py +15 -0
  47. arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/client/remove_message.py +28 -0
  48. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/tg_bot/router/client/start.py +3 -2
  49. arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/client/support.py +30 -0
  50. arpakitlib/_arpakit_project_template_v_5/project/tg_bot/router/main_router.py +36 -0
  51. arpakitlib/_arpakit_project_template_v_5/project/tg_bot/util/notify_admins.py +58 -0
  52. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/tg_bot/util/set_tg_bot_commands.py +26 -4
  53. arpakitlib/_arpakit_project_template_v_5/project/util/__init__.py +0 -0
  54. arpakitlib/ar_base_worker_util.py +7 -7
  55. arpakitlib/ar_blank_util.py +2 -2
  56. arpakitlib/ar_func_util.py +21 -14
  57. arpakitlib/ar_logging_util.py +2 -2
  58. arpakitlib/ar_sqlalchemy_util.py +9 -3
  59. {arpakitlib-1.8.17.dist-info → arpakitlib-1.8.19.dist-info}/METADATA +1 -1
  60. arpakitlib-1.8.19.dist-info/RECORD +347 -0
  61. arpakitlib/_arpakit_project_template_v_4/arpakitlib_project_template_info.json +0 -3
  62. arpakitlib/_arpakit_project_template_v_4/command/alembic_revision_autogenerate.sh +0 -2
  63. arpakitlib/_arpakit_project_template_v_4/project/api/schema/out/common.py +0 -5
  64. arpakitlib/_arpakit_project_template_v_4/project/tg_bot/blank/client.py +0 -44
  65. arpakitlib/_arpakit_project_template_v_4/project/tg_bot/error_handler.py +0 -37
  66. arpakitlib/_arpakit_project_template_v_4/project/tg_bot/filter_/user_roles_has_admin.py +0 -27
  67. arpakitlib/_arpakit_project_template_v_4/project/tg_bot/filter_/user_roles_has_client.py +0 -27
  68. arpakitlib/_arpakit_project_template_v_4/project/tg_bot/router/admin/main_router.py +0 -15
  69. arpakitlib/_arpakit_project_template_v_4/project/tg_bot/router/client/main_router.py +0 -14
  70. arpakitlib/_arpakit_project_template_v_4/project/tg_bot/router/main_router.py +0 -13
  71. arpakitlib-1.8.17.dist-info/RECORD +0 -330
  72. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/.gitignore +0 -0
  73. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/.python-version +0 -0
  74. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/LICENSE +0 -0
  75. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/README.md +0 -0
  76. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/alembic/README +0 -0
  77. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/alembic/env.py +0 -0
  78. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/alembic/script.py.mako +0 -0
  79. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/alembic/versions/__init__.py +0 -0
  80. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/alembic.ini +0 -0
  81. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/command/__init__.py +0 -0
  82. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/command/alembic_history.sh +0 -0
  83. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/command/alembic_upgrade_head.sh +0 -0
  84. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/command/beautify_json.py +0 -0
  85. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/command/check_logging.py +0 -0
  86. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/command/check_sqlalchemy_db.py +0 -0
  87. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/command/demojize.py +0 -0
  88. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/command/docker_ps_a.sh +0 -0
  89. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/command/docker_rm_postgres.sh +0 -0
  90. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/command/docker_run_postgres.sh +0 -0
  91. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/command/docker_start_postgres.sh +0 -0
  92. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/command/docker_stop_postgres.sh +0 -0
  93. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/command/drop_json_db.py +0 -0
  94. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/command/drop_sqlalchemy_db.py +0 -0
  95. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/command/generate_settings_env_example.py +0 -0
  96. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/command/git_commit.sh +0 -0
  97. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/command/git_push_arpakit_company_github_1.sh +0 -0
  98. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/command/git_push_arpakit_company_gitlab_1.sh +0 -0
  99. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/command/git_push_arpakit_github_1.sh +0 -0
  100. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/command/git_push_arpakit_gitlab_1.sh +0 -0
  101. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/command/git_remote_v.sh +0 -0
  102. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/command/git_set_arpakit_company_origin.sh +0 -0
  103. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/command/git_set_arpakit_origin.sh +0 -0
  104. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/command/git_set_divarteam_origin.sh +0 -0
  105. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/command/git_status.sh +0 -0
  106. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/command/hello_world.py +0 -0
  107. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/command/init_json_db.py +0 -0
  108. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/command/init_sqlalchemy_db.py +0 -0
  109. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/command/poetry_check.sh +0 -0
  110. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/command/poetry_clear_cache.sh +0 -0
  111. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/command/poetry_config.sh +0 -0
  112. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/command/poetry_install.sh +0 -0
  113. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/command/poetry_lock.sh +0 -0
  114. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/command/poetry_remove_and_add_arpakitlib.sh +0 -0
  115. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/command/poetry_show.sh +0 -0
  116. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/command/poetry_show_arpakitlib.sh +0 -0
  117. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/command/poetry_update.sh +0 -0
  118. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/command/poetry_update_arpakitlib.sh +0 -0
  119. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/command/reinit_json_db.py +0 -0
  120. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/command/reinit_sqlalchemy_db.py +0 -0
  121. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/command/remove_operations.py +0 -0
  122. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/command/remove_story_logs.py +0 -0
  123. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/command/rm_all_records_in_json_db.py +0 -0
  124. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/command/set_tg_bot_commands.py +0 -0
  125. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/command/show_settings.py +0 -0
  126. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/command/start_api.py +0 -0
  127. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/command/start_api_for_prod.py +0 -0
  128. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/command/start_api_with_reload.py +0 -0
  129. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/command/start_operation_executor_worker.py +0 -0
  130. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/command/start_operation_executor_workers.py +0 -0
  131. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/command/start_scheduled_operation_creator_worker.py +0 -0
  132. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/command/start_sqladmin.py +0 -0
  133. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/command/start_sqladmin_for_prod.py +0 -0
  134. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/command/start_sqladmin_with_reload.py +0 -0
  135. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/command/start_tg_bot.py +0 -0
  136. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/command/start_tg_bot_for_prod.py +0 -0
  137. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/example.env +0 -0
  138. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/note/note_1.txt +0 -0
  139. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/note/note_2.txt +0 -0
  140. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/note/note_3.txt +0 -0
  141. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/note/note_4.txt +0 -0
  142. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/note/note_5.txt +0 -0
  143. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/__init__.py +0 -0
  144. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/additional_model/__init__.py +0 -0
  145. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/additional_model/common.py +0 -0
  146. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/api/__init__.py +0 -0
  147. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/api/asgi.py +0 -0
  148. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/api/const.py +0 -0
  149. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/api/create_api_app.py +0 -0
  150. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/api/event.py +0 -0
  151. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/api/exception.py +1 -1
  152. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/api/openapi_ui.py +0 -0
  153. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/api/response.py +0 -0
  154. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/api/router/__init__.py +0 -0
  155. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/api/router/admin/__init__.py +0 -0
  156. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/api/router/admin/get_auth_data.py +1 -1
  157. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/api/router/admin/main_router.py +0 -0
  158. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/api/router/client/__init__.py +0 -0
  159. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/api/router/client/main_router.py +0 -0
  160. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/api/router/general/__init__.py +0 -0
  161. arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/api/router/general/healthcheck.py +1 -1
  162. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/api/router/general/main_router.py +0 -0
  163. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/api/router/main_router.py +0 -0
  164. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/api/schema/__init__.py +0 -0
  165. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/api/schema/common.py +0 -0
  166. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/api/schema/in_/__init__.py +0 -0
  167. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/api/schema/in_/admin/__init__.py +0 -0
  168. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/api/schema/in_/admin/common.py +0 -0
  169. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/api/schema/in_/client/__init__.py +0 -0
  170. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/api/schema/in_/client/common.py +0 -0
  171. /arpakitlib/{_arpakit_project_template_v_4/project/api/schema/in_/general → _arpakit_project_template_v_5/project/api/schema/in_/common}/__init__.py +0 -0
  172. /arpakitlib/{_arpakit_project_template_v_4/project/api/schema/out → _arpakit_project_template_v_5/project/api/schema/in_/general}/__init__.py +0 -0
  173. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/api/schema/in_/general/common.py +0 -0
  174. /arpakitlib/{_arpakit_project_template_v_4/project/api/schema/out/admin → _arpakit_project_template_v_5/project/api/schema/out}/__init__.py +0 -0
  175. /arpakitlib/{_arpakit_project_template_v_4/project/api/schema/out/client → _arpakit_project_template_v_5/project/api/schema/out/admin}/__init__.py +0 -0
  176. /arpakitlib/{_arpakit_project_template_v_4/project/api/schema/out/common → _arpakit_project_template_v_5/project/api/schema/out/client}/__init__.py +0 -0
  177. /arpakitlib/{_arpakit_project_template_v_4/project/api/schema/out/general → _arpakit_project_template_v_5/project/api/schema/out/common}/__init__.py +0 -0
  178. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/api/schema/out/common/datetime_.py +0 -0
  179. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/api/schema/out/common/raw_data.py +0 -0
  180. /arpakitlib/{_arpakit_project_template_v_4/project/business_service → _arpakit_project_template_v_5/project/api/schema/out/general}/__init__.py +0 -0
  181. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/api/schema/out/general/common.py +0 -0
  182. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/api/schema/out/general/errors_info_general.py +0 -0
  183. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/api/schema/out/general/healthcheck.py +0 -0
  184. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/api/util.py +0 -0
  185. /arpakitlib/{_arpakit_project_template_v_4/project/celery_ → _arpakit_project_template_v_5/project/business_service}/__init__.py +0 -0
  186. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/business_service/hello_world.py +0 -0
  187. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/business_service/remove_operations.py +0 -0
  188. /arpakitlib/{_arpakit_project_template_v_4/project/core → _arpakit_project_template_v_5/project/celery_}/__init__.py +0 -0
  189. /arpakitlib/{_arpakit_project_template_v_4/project/json_db → _arpakit_project_template_v_5/project/core}/__init__.py +0 -0
  190. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/core/cache_file_storage_in_dir.py +0 -0
  191. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/core/const.py +0 -0
  192. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/core/dump_file_storage_in_dir.py +0 -0
  193. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/core/jinja2_templates.py +0 -0
  194. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/core/media_file_storage_in_dir.py +0 -0
  195. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/core/settings.py +0 -0
  196. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/core/util.py +0 -0
  197. /arpakitlib/{_arpakit_project_template_v_4/project/operation_execution → _arpakit_project_template_v_5/project/json_db}/__init__.py +0 -0
  198. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/json_db/json_db.py +0 -0
  199. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/more/helloworld +0 -0
  200. /arpakitlib/{_arpakit_project_template_v_4/project/resource → _arpakit_project_template_v_5/project/operation_execution}/__init__.py +0 -0
  201. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/operation_execution/const.py +0 -0
  202. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/operation_execution/scheduled_operation_creator_worker.py +0 -0
  203. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/operation_execution/scheduled_operations.py +0 -0
  204. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/operation_execution/util.py +0 -0
  205. /arpakitlib/{_arpakit_project_template_v_4/project/sandbox → _arpakit_project_template_v_5/project/resource}/__init__.py +0 -0
  206. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/resource/static/1 +0 -0
  207. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/resource/static/healthcheck +0 -0
  208. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/resource/static/helloworld +0 -0
  209. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/resource/static/openapi-favicon.png +0 -0
  210. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/resource/static/redoc/redoc.standalone.js +0 -0
  211. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/resource/static/swagger-ui/favicon-16x16.png +0 -0
  212. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/resource/static/swagger-ui/favicon-32x32.png +0 -0
  213. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/resource/static/swagger-ui/index.css +0 -0
  214. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/resource/static/swagger-ui/index.html +0 -0
  215. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/resource/static/swagger-ui/oauth2-redirect.html +0 -0
  216. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/resource/static/swagger-ui/swagger-initializer.js +0 -0
  217. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/resource/static/swagger-ui/swagger-ui-bundle.js +0 -0
  218. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/resource/static/swagger-ui/swagger-ui-bundle.js.map +0 -0
  219. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/resource/static/swagger-ui/swagger-ui-es-bundle-core.js +0 -0
  220. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/resource/static/swagger-ui/swagger-ui-es-bundle-core.js.map +0 -0
  221. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/resource/static/swagger-ui/swagger-ui-es-bundle.js +0 -0
  222. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/resource/static/swagger-ui/swagger-ui-es-bundle.js.map +0 -0
  223. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/resource/static/swagger-ui/swagger-ui-standalone-preset.js +0 -0
  224. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/resource/static/swagger-ui/swagger-ui-standalone-preset.js.map +0 -0
  225. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/resource/static/swagger-ui/swagger-ui.css +0 -0
  226. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/resource/static/swagger-ui/swagger-ui.css.map +0 -0
  227. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/resource/static/swagger-ui/swagger-ui.js +0 -0
  228. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/resource/static/swagger-ui/swagger-ui.js.map +0 -0
  229. /arpakitlib/{_arpakit_project_template_v_4/project/site → _arpakit_project_template_v_5/project/sandbox}/__init__.py +0 -0
  230. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/sandbox/sandbox_2.py +0 -0
  231. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/sandbox/sandbox_3.py +0 -0
  232. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/sandbox/sandbox_4.py +0 -0
  233. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/sandbox/sandbox_5.py +0 -0
  234. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/sandbox/sandbox_6.py +0 -0
  235. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/sandbox/sandbox_7.py +0 -0
  236. /arpakitlib/{_arpakit_project_template_v_4/project/site/router → _arpakit_project_template_v_5/project/site}/__init__.py +0 -0
  237. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/site/asgi.py +0 -0
  238. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/site/consts.py +0 -0
  239. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/site/create_site_app.py +0 -0
  240. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/site/event.py +0 -0
  241. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/site/exception_handler.py +0 -0
  242. /arpakitlib/{_arpakit_project_template_v_4/project/sqladmin_ → _arpakit_project_template_v_5/project/site/router}/__init__.py +0 -0
  243. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/site/router/main_router.py +0 -0
  244. /arpakitlib/{_arpakit_project_template_v_4/project/sqlalchemy_db_ → _arpakit_project_template_v_5/project/sqladmin_}/__init__.py +0 -0
  245. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/sqladmin_/add_admin_in_app.py +0 -0
  246. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/sqladmin_/admin_auth.py +0 -0
  247. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/sqladmin_/asgi.py +0 -0
  248. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/sqladmin_/create_sqladmin_app.py +0 -0
  249. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/sqladmin_/event.py +0 -0
  250. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/sqladmin_/model_view/__init__.py +0 -0
  251. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/sqladmin_/model_view/common.py +0 -0
  252. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/sqladmin_/model_view/operation.py +0 -0
  253. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/sqladmin_/model_view/story_log.py +0 -0
  254. /arpakitlib/{_arpakit_project_template_v_4/project/test_data → _arpakit_project_template_v_5/project/sqlalchemy_db_}/__init__.py +0 -0
  255. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/sqlalchemy_db_/const.py +0 -0
  256. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/sqlalchemy_db_/sqlalchemy_db.py +0 -0
  257. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/sqlalchemy_db_/sqlalchemy_model/__init__.py +0 -0
  258. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/sqlalchemy_db_/sqlalchemy_model/api_key.py +0 -0
  259. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/sqlalchemy_db_/sqlalchemy_model/common.py +0 -0
  260. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/sqlalchemy_db_/sqlalchemy_model/operation.py +0 -0
  261. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/sqlalchemy_db_/sqlalchemy_model/story_log.py +0 -0
  262. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/sqlalchemy_db_/sqlalchemy_model/user_token.py +0 -0
  263. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/sqlalchemy_db_/util.py +0 -0
  264. /arpakitlib/{_arpakit_project_template_v_4/project/tg_bot → _arpakit_project_template_v_5/project/test_data}/__init__.py +0 -0
  265. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/test_data/make_test_data_1.py +0 -0
  266. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/test_data/make_test_data_2.py +0 -0
  267. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/test_data/make_test_data_3.py +0 -0
  268. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/test_data/make_test_data_4.py +0 -0
  269. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/test_data/make_test_data_5.py +0 -0
  270. /arpakitlib/{_arpakit_project_template_v_4/project/tg_bot/blank → _arpakit_project_template_v_5/project/tg_bot}/__init__.py +0 -0
  271. /arpakitlib/{_arpakit_project_template_v_4/project/tg_bot/callback → _arpakit_project_template_v_5/project/tg_bot/blank}/__init__.py +0 -0
  272. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/tg_bot/blank/common.py +0 -0
  273. /arpakitlib/{_arpakit_project_template_v_4/project/tg_bot/filter_ → _arpakit_project_template_v_5/project/tg_bot/callback}/__init__.py +0 -0
  274. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/tg_bot/callback/admin.py +0 -0
  275. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/tg_bot/callback/common.py +0 -0
  276. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/tg_bot/event.py +0 -0
  277. /arpakitlib/{_arpakit_project_template_v_4/project/tg_bot/kb → _arpakit_project_template_v_5/project/tg_bot/filter_}/__init__.py +0 -0
  278. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/tg_bot/filter_/is_private_chat.py +0 -0
  279. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/tg_bot/filter_/message_text.py +0 -0
  280. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/tg_bot/filter_/not_prod_mode_filter.py +0 -0
  281. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/tg_bot/filter_/prod_mode_filter.py +0 -0
  282. /arpakitlib/{_arpakit_project_template_v_4/project/tg_bot/kb/inline_ → _arpakit_project_template_v_5/project/tg_bot/kb}/__init__.py +0 -0
  283. /arpakitlib/{_arpakit_project_template_v_4/project/tg_bot/kb/inline_/admin → _arpakit_project_template_v_5/project/tg_bot/kb/inline_}/__init__.py +0 -0
  284. /arpakitlib/{_arpakit_project_template_v_4/project/tg_bot/kb/inline_/client → _arpakit_project_template_v_5/project/tg_bot/kb/inline_/admin}/__init__.py +0 -0
  285. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/tg_bot/kb/inline_/admin/common.py +0 -0
  286. /arpakitlib/{_arpakit_project_template_v_4/project/tg_bot/kb/static_ → _arpakit_project_template_v_5/project/tg_bot/kb/inline_/client}/__init__.py +0 -0
  287. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/tg_bot/kb/inline_/client/common.py +0 -0
  288. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/tg_bot/kb/inline_/client/hello_world.py +0 -0
  289. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/tg_bot/kb/inline_/common.py +0 -0
  290. /arpakitlib/{_arpakit_project_template_v_4/project/tg_bot/kb/static_/admin → _arpakit_project_template_v_5/project/tg_bot/kb/static_}/__init__.py +0 -0
  291. /arpakitlib/{_arpakit_project_template_v_4/project/tg_bot/kb/static_/client → _arpakit_project_template_v_5/project/tg_bot/kb/static_/admin}/__init__.py +0 -0
  292. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/tg_bot/kb/static_/admin/common.py +0 -0
  293. /arpakitlib/{_arpakit_project_template_v_4/project/tg_bot/middleware → _arpakit_project_template_v_5/project/tg_bot/kb/static_/client}/__init__.py +0 -0
  294. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/tg_bot/kb/static_/client/common.py +0 -0
  295. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/tg_bot/kb/static_/client/hello_world.py +0 -0
  296. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/tg_bot/kb/static_/common.py +0 -0
  297. /arpakitlib/{_arpakit_project_template_v_4/project/tg_bot/router → _arpakit_project_template_v_5/project/tg_bot/middleware}/__init__.py +0 -0
  298. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/tg_bot/middleware/common.py +0 -0
  299. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/tg_bot/middleware/middleware.py +0 -0
  300. /arpakitlib/{_arpakit_project_template_v_4/project/tg_bot/router/admin → _arpakit_project_template_v_5/project/tg_bot/router}/__init__.py +0 -0
  301. /arpakitlib/{_arpakit_project_template_v_4/project/tg_bot/router/client → _arpakit_project_template_v_5/project/tg_bot/router/admin}/__init__.py +0 -0
  302. /arpakitlib/{_arpakit_project_template_v_4/project/tg_bot/util → _arpakit_project_template_v_5/project/tg_bot/router/client}/__init__.py +0 -0
  303. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/tg_bot/start_tg_bot.py +0 -0
  304. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/tg_bot/tg_bot.py +0 -0
  305. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/tg_bot/tg_bot_dispatcher.py +0 -0
  306. /arpakitlib/{_arpakit_project_template_v_4/project → _arpakit_project_template_v_5/project/tg_bot}/util/__init__.py +0 -0
  307. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/tg_bot/util/etc.py +0 -0
  308. /arpakitlib/{_arpakit_project_template_v_4 → _arpakit_project_template_v_5}/project/util/arpakitlib_project_template.py +0 -0
  309. {arpakitlib-1.8.17.dist-info → arpakitlib-1.8.19.dist-info}/LICENSE +0 -0
  310. {arpakitlib-1.8.17.dist-info → arpakitlib-1.8.19.dist-info}/WHEEL +0 -0
  311. {arpakitlib-1.8.17.dist-info → arpakitlib-1.8.19.dist-info}/entry_points.txt +0 -0
@@ -4,23 +4,24 @@ from arpakitlib.ar_enumeration_util import Enumeration
4
4
  class ClientTgBotCommands(Enumeration):
5
5
  start = "start"
6
6
  about = "about"
7
+ support = "support"
7
8
  healthcheck = "healthcheck"
8
9
  hello_world = "hello_world"
9
10
 
10
11
 
11
12
  class AdminTgBotCommands(Enumeration):
12
13
  arpakitlib_project_template_info = "arpakitlib_project_template_info"
13
- init_db = "init_db"
14
+ init_sqlalchemy_db = "init_sqlalchemy_db"
14
15
  reinit_sqlalchemy_db = "reinit_sqlalchemy_db"
15
- drop_db = "drop_db"
16
- set_tg_bot_commands = "set_tg_bot_commands"
17
- raise_fake_err = "raise_fake_err"
16
+ drop_sqlalchemy_db = "drop_sqlalchemy_db"
17
+ set_all_tg_bot_commands = "set_all_tg_bot_commands"
18
+ raise_fake_error = "raise_fake_error"
18
19
  me = "me"
19
20
  log_file = "log_file"
20
21
  clear_log_file = "clear_log_file"
21
- kb_with_old_data = "kb_with_old_data"
22
+ kb_with_old_cd = "kb_with_old_cd"
22
23
  kb_with_not_modified = "kb_with_not_modified"
23
- kb_with_fake_error = "kb_with_fake_error"
24
+ kb_with_raise_error = "kb_with_raise_error"
24
25
  kb_with_remove_message = "kb_with_remove_message"
25
26
 
26
27
 
@@ -0,0 +1,18 @@
1
+ import aiogram.types
2
+ from aiogram.filters import Filter
3
+
4
+ from project.tg_bot.middleware.common import MiddlewareDataTgBot
5
+
6
+
7
+ class UserRolesHasAdminTgBotFilter(Filter):
8
+
9
+ async def __call__(
10
+ self,
11
+ update: aiogram.types.Message | aiogram.types.CallbackQuery | aiogram.types.TelegramObject,
12
+ middleware_data_tg_bot: MiddlewareDataTgBot,
13
+ **kwargs
14
+ ) -> bool:
15
+ if middleware_data_tg_bot.user_dbm is not None:
16
+ if middleware_data_tg_bot.user_dbm.roles_has_admin:
17
+ return True
18
+ return False
@@ -0,0 +1,18 @@
1
+ import aiogram.types
2
+ from aiogram.filters import Filter
3
+
4
+ from project.tg_bot.middleware.common import MiddlewareDataTgBot
5
+
6
+
7
+ class UserRolesHasClientTgBotFilter(Filter):
8
+
9
+ async def __call__(
10
+ self,
11
+ update: aiogram.types.Message | aiogram.types.CallbackQuery | aiogram.types.TelegramObject,
12
+ middleware_data_tg_bot: MiddlewareDataTgBot,
13
+ **kwargs
14
+ ) -> bool:
15
+ if middleware_data_tg_bot.user_dbm is not None:
16
+ if middleware_data_tg_bot.user_dbm.roles_has_client:
17
+ return True
18
+ return False
@@ -2,6 +2,7 @@ import logging
2
2
  from typing import Any, Awaitable, Callable, Dict
3
3
 
4
4
  import aiogram
5
+ import sqlalchemy
5
6
  from aiogram import BaseMiddleware
6
7
  from aiogram.types import TelegramObject
7
8
 
@@ -45,9 +46,9 @@ class InitUserTgBotMiddleware(BaseMiddleware):
45
46
  now_local_dt_ = now_local_dt()
46
47
 
47
48
  if tg_user is not None and get_cached_sqlalchemy_db() is not None:
48
- with get_cached_sqlalchemy_db().new_session() as session:
49
- middleware_data_tg_bot.user_dbm = (
50
- session.query(UserDBM).filter(UserDBM.tg_id == tg_user.id).one_or_none()
49
+ async with get_cached_sqlalchemy_db().new_async_session() as async_session:
50
+ middleware_data_tg_bot.user_dbm = await async_session.scalar(
51
+ sqlalchemy.select(UserDBM).filter(UserDBM.tg_id == tg_user.id)
51
52
  )
52
53
  if middleware_data_tg_bot.user_dbm is None:
53
54
  roles = [UserDBM.Roles.client]
@@ -60,9 +61,9 @@ class InitUserTgBotMiddleware(BaseMiddleware):
60
61
  tg_data=tg_user.model_dump(mode="json"),
61
62
  tg_bot_last_action_dt=now_local_dt_
62
63
  )
63
- session.add(middleware_data_tg_bot.user_dbm)
64
- session.commit()
65
- session.refresh(middleware_data_tg_bot.user_dbm)
64
+ async_session.add(middleware_data_tg_bot.user_dbm)
65
+ await async_session.commit()
66
+ await async_session.refresh(middleware_data_tg_bot.user_dbm)
66
67
  middleware_data_tg_bot.user_dbm_just_created = True
67
68
  _logger.info(f"user_dbm was added, {middleware_data_tg_bot.user_dbm}")
68
69
  else:
@@ -75,8 +76,8 @@ class InitUserTgBotMiddleware(BaseMiddleware):
75
76
  middleware_data_tg_bot.user_dbm.roles = (
76
77
  middleware_data_tg_bot.user_dbm.roles + [UserDBM.Roles.admin]
77
78
  )
78
- session.commit()
79
- session.refresh(middleware_data_tg_bot.user_dbm)
79
+ await async_session.commit()
80
+ await async_session.refresh(middleware_data_tg_bot.user_dbm)
80
81
  middleware_data_tg_bot.user_dbm_just_created = False
81
82
 
82
83
  _logger.info("finish")
@@ -1,8 +1,10 @@
1
1
  import aiogram.filters
2
2
 
3
3
  from arpakitlib.ar_aiogram_util import as_tg_command
4
- from project.tg_bot.blank.admin import get_cached_admin_tg_bot_blank
4
+ from arpakitlib.ar_json_util import transfer_data_to_json_str
5
5
  from project.tg_bot.const import AdminTgBotCommands
6
+ from project.tg_bot.filter_.is_private_chat import IsPrivateChatTgBotFilter
7
+ from project.tg_bot.filter_.user_roles_has_admin import UserRolesHasAdminTgBotFilter
6
8
  from project.tg_bot.middleware.common import MiddlewareDataTgBot
7
9
  from project.util.arpakitlib_project_template import get_arpakitlib_project_template_info
8
10
 
@@ -10,6 +12,8 @@ tg_bot_router = aiogram.Router()
10
12
 
11
13
 
12
14
  @tg_bot_router.message(
15
+ IsPrivateChatTgBotFilter(),
16
+ UserRolesHasAdminTgBotFilter(),
13
17
  aiogram.filters.Command(AdminTgBotCommands.arpakitlib_project_template_info)
14
18
  )
15
19
  @as_tg_command()
@@ -19,7 +23,5 @@ async def _(
19
23
  **kwargs
20
24
  ):
21
25
  await m.answer(
22
- text=get_cached_admin_tg_bot_blank().arpakit_project_template_info(
23
- arpakitlib_project_template_info=get_arpakitlib_project_template_info()
24
- )
26
+ text=transfer_data_to_json_str(get_arpakitlib_project_template_info(), beautify=True)
25
27
  )
@@ -0,0 +1,33 @@
1
+ import aiogram
2
+ from aiogram import Router, types
3
+ from aiogram.filters import Command
4
+
5
+ from arpakitlib.ar_aiogram_util import as_tg_command
6
+ from project.core.settings import get_cached_settings
7
+ from project.tg_bot.blank.admin import get_cached_admin_tg_bot_blank
8
+ from project.tg_bot.const import AdminTgBotCommands
9
+ from project.tg_bot.filter_.is_private_chat import IsPrivateChatTgBotFilter
10
+ from project.tg_bot.filter_.user_roles_has_admin import UserRolesHasAdminTgBotFilter
11
+
12
+ tg_bot_router = Router()
13
+
14
+
15
+ @tg_bot_router.message(
16
+ IsPrivateChatTgBotFilter(),
17
+ UserRolesHasAdminTgBotFilter(),
18
+ aiogram.filters.Command(AdminTgBotCommands.clear_log_file)
19
+ )
20
+ @as_tg_command(passwd_validator=get_cached_settings().tg_bot_command_passwd)
21
+ async def _(
22
+ m: types.Message,
23
+ **kwargs
24
+ ):
25
+ with open(get_cached_settings().log_filepath, mode="r") as f:
26
+ if not f.read():
27
+ await m.answer(get_cached_admin_tg_bot_blank().good())
28
+ return
29
+
30
+ with open(get_cached_settings().log_filepath, mode="w") as f:
31
+ f.write("")
32
+
33
+ await m.answer(get_cached_admin_tg_bot_blank().good())
@@ -0,0 +1,31 @@
1
+ import aiogram.filters
2
+
3
+ from arpakitlib.ar_aiogram_util import as_tg_command
4
+ from project.core.settings import get_cached_settings
5
+ from project.sqlalchemy_db_.sqlalchemy_db import get_cached_sqlalchemy_db
6
+ from project.tg_bot.blank.admin import get_cached_admin_tg_bot_blank
7
+ from project.tg_bot.const import AdminTgBotCommands
8
+ from project.tg_bot.filter_.is_private_chat import IsPrivateChatTgBotFilter
9
+ from project.tg_bot.filter_.not_prod_mode_filter import NotProdModeTgBotFilter
10
+ from project.tg_bot.filter_.user_roles_has_admin import UserRolesHasAdminTgBotFilter
11
+ from project.tg_bot.middleware.common import MiddlewareDataTgBot
12
+
13
+ tg_bot_router = aiogram.Router()
14
+
15
+
16
+ @tg_bot_router.message(
17
+ IsPrivateChatTgBotFilter(),
18
+ UserRolesHasAdminTgBotFilter(),
19
+ NotProdModeTgBotFilter(),
20
+ aiogram.filters.Command(AdminTgBotCommands.drop_sqlalchemy_db),
21
+ )
22
+ @as_tg_command(passwd_validator=get_cached_settings().tg_bot_command_passwd)
23
+ async def _(
24
+ m: aiogram.types.Message,
25
+ middleware_data_tg_bot: MiddlewareDataTgBot,
26
+ **kwargs
27
+ ):
28
+ get_cached_sqlalchemy_db().drop()
29
+ await m.answer(
30
+ text=get_cached_admin_tg_bot_blank().good()
31
+ )
@@ -0,0 +1,28 @@
1
+ import aiogram.filters
2
+
3
+ from arpakitlib.ar_aiogram_util import as_tg_command
4
+ from project.sqlalchemy_db_.sqlalchemy_db import get_cached_sqlalchemy_db
5
+ from project.tg_bot.blank.admin import get_cached_admin_tg_bot_blank
6
+ from project.tg_bot.const import AdminTgBotCommands
7
+ from project.tg_bot.filter_.is_private_chat import IsPrivateChatTgBotFilter
8
+ from project.tg_bot.filter_.user_roles_has_admin import UserRolesHasAdminTgBotFilter
9
+ from project.tg_bot.middleware.common import MiddlewareDataTgBot
10
+
11
+ tg_bot_router = aiogram.Router()
12
+
13
+
14
+ @tg_bot_router.message(
15
+ IsPrivateChatTgBotFilter(),
16
+ UserRolesHasAdminTgBotFilter(),
17
+ aiogram.filters.Command(AdminTgBotCommands.init_sqlalchemy_db)
18
+ )
19
+ @as_tg_command()
20
+ async def _(
21
+ m: aiogram.types.Message,
22
+ middleware_data_tg_bot: MiddlewareDataTgBot,
23
+ **kwargs
24
+ ):
25
+ get_cached_sqlalchemy_db().init()
26
+ await m.answer(
27
+ text=get_cached_admin_tg_bot_blank().good()
28
+ )
@@ -0,0 +1,59 @@
1
+ import aiogram
2
+ from aiogram import Router, types
3
+ from aiogram.filters import Command
4
+ from aiogram.filters.callback_data import CallbackData
5
+ from aiogram.types import InlineKeyboardButton
6
+ from aiogram.utils.keyboard import InlineKeyboardBuilder
7
+
8
+ from arpakitlib.ar_aiogram_util import as_tg_command
9
+ from project.tg_bot.blank.admin import get_cached_admin_tg_bot_blank
10
+ from project.tg_bot.const import AdminTgBotCommands
11
+ from project.tg_bot.filter_.is_private_chat import IsPrivateChatTgBotFilter
12
+ from project.tg_bot.filter_.user_roles_has_admin import UserRolesHasAdminTgBotFilter
13
+
14
+ tg_bot_router = Router()
15
+
16
+
17
+ class _CD(CallbackData, prefix=AdminTgBotCommands.kb_with_not_modified):
18
+ pass
19
+
20
+
21
+ @tg_bot_router.message(
22
+ IsPrivateChatTgBotFilter(),
23
+ UserRolesHasAdminTgBotFilter(),
24
+ aiogram.filters.Command(AdminTgBotCommands.kb_with_not_modified, ignore_case=True)
25
+ )
26
+ @as_tg_command()
27
+ async def _(
28
+ m: types.Message,
29
+ **kwargs
30
+ ):
31
+ kb_builder = InlineKeyboardBuilder()
32
+ kb_builder.row(InlineKeyboardButton(
33
+ text="Button raises Not Modified",
34
+ callback_data=_CD().pack()
35
+ ))
36
+ await m.answer(
37
+ text=get_cached_admin_tg_bot_blank().good(),
38
+ reply_markup=kb_builder.as_markup()
39
+ )
40
+
41
+
42
+ @tg_bot_router.callback_query(
43
+ IsPrivateChatTgBotFilter(),
44
+ UserRolesHasAdminTgBotFilter(),
45
+ _CD.filter()
46
+ )
47
+ async def _(
48
+ cq: types.CallbackQuery,
49
+ **kwargs
50
+ ):
51
+ kb_builder = InlineKeyboardBuilder()
52
+ kb_builder.row(InlineKeyboardButton(
53
+ text="Button raises Not Modified",
54
+ callback_data=_CD().pack()
55
+ ))
56
+ await cq.message.edit_text(
57
+ text=get_cached_admin_tg_bot_blank().good(),
58
+ reply_markup=kb_builder.as_markup()
59
+ )
@@ -0,0 +1,40 @@
1
+ import aiogram.filters
2
+ from aiogram.types import InlineKeyboardButton
3
+ from aiogram.utils.keyboard import InlineKeyboardBuilder
4
+
5
+ from arpakitlib.ar_aiogram_util import as_tg_command
6
+ from project.tg_bot.callback.common import BaseCD
7
+ from project.tg_bot.const import AdminTgBotCommands
8
+ from project.tg_bot.filter_.is_private_chat import IsPrivateChatTgBotFilter
9
+ from project.tg_bot.filter_.user_roles_has_admin import UserRolesHasAdminTgBotFilter
10
+ from project.tg_bot.middleware.common import MiddlewareDataTgBot
11
+
12
+ tg_bot_router = aiogram.Router()
13
+
14
+
15
+ class _CD(BaseCD, prefix=AdminTgBotCommands.kb_with_old_cd):
16
+ pass
17
+
18
+
19
+ @tg_bot_router.message(
20
+ IsPrivateChatTgBotFilter(),
21
+ UserRolesHasAdminTgBotFilter(),
22
+ aiogram.filters.Command(AdminTgBotCommands.kb_with_old_cd, ignore_case=True)
23
+ )
24
+ @as_tg_command()
25
+ async def _(
26
+ m: aiogram.types.Message,
27
+ middleware_data_tg_bot: MiddlewareDataTgBot,
28
+ **kwargs
29
+ ):
30
+ kb_builder = InlineKeyboardBuilder()
31
+
32
+ kb_builder.row(InlineKeyboardButton(
33
+ text="Button with old data",
34
+ callback_data=_CD().pack()
35
+ ))
36
+
37
+ await m.answer(
38
+ text="Old data",
39
+ reply_markup=kb_builder.as_markup()
40
+ )
@@ -0,0 +1,48 @@
1
+ import aiogram.filters
2
+ from aiogram.types import InlineKeyboardButton
3
+ from aiogram.utils.keyboard import InlineKeyboardBuilder
4
+
5
+ from arpakitlib.ar_aiogram_util import as_tg_command
6
+ from project.tg_bot.blank.admin import get_cached_admin_tg_bot_blank
7
+ from project.tg_bot.callback.common import BaseCD
8
+ from project.tg_bot.const import AdminTgBotCommands
9
+ from project.tg_bot.filter_.is_private_chat import IsPrivateChatTgBotFilter
10
+ from project.tg_bot.filter_.user_roles_has_admin import UserRolesHasAdminTgBotFilter
11
+ from project.tg_bot.middleware.common import MiddlewareDataTgBot
12
+
13
+ tg_bot_router = aiogram.Router()
14
+
15
+
16
+ class _CD(BaseCD, prefix=AdminTgBotCommands.kb_with_raise_error):
17
+ pass
18
+
19
+
20
+ @tg_bot_router.message(
21
+ IsPrivateChatTgBotFilter(),
22
+ UserRolesHasAdminTgBotFilter(),
23
+ aiogram.filters.Command(AdminTgBotCommands.kb_with_raise_error)
24
+ )
25
+ @as_tg_command()
26
+ async def _(
27
+ m: aiogram.types.Message,
28
+ middleware_data_tg_bot: MiddlewareDataTgBot,
29
+ **kwargs
30
+ ):
31
+ kb_builder = InlineKeyboardBuilder()
32
+ kb_builder.row(InlineKeyboardButton(
33
+ text="Raise fake error",
34
+ callback_data=_CD().pack()
35
+ ))
36
+ await m.answer(
37
+ text=get_cached_admin_tg_bot_blank().good(),
38
+ reply_markup=kb_builder.as_markup()
39
+ )
40
+
41
+
42
+ @tg_bot_router.callback_query(_CD.filter())
43
+ async def _(
44
+ m: aiogram.types.Message,
45
+ middleware_data_tg_bot: MiddlewareDataTgBot,
46
+ **kwargs
47
+ ):
48
+ raise Exception("fake error")
@@ -0,0 +1,35 @@
1
+ import aiogram.filters
2
+ from aiogram.types import InlineKeyboardButton
3
+ from aiogram.utils.keyboard import InlineKeyboardBuilder
4
+
5
+ from arpakitlib.ar_aiogram_util import as_tg_command
6
+ from project.tg_bot.blank.admin import get_cached_admin_tg_bot_blank
7
+ from project.tg_bot.callback.client import RemoveMessageCD
8
+ from project.tg_bot.const import AdminTgBotCommands
9
+ from project.tg_bot.filter_.is_private_chat import IsPrivateChatTgBotFilter
10
+ from project.tg_bot.filter_.user_roles_has_admin import UserRolesHasAdminTgBotFilter
11
+ from project.tg_bot.middleware.common import MiddlewareDataTgBot
12
+
13
+ tg_bot_router = aiogram.Router()
14
+
15
+
16
+ @tg_bot_router.message(
17
+ IsPrivateChatTgBotFilter(),
18
+ UserRolesHasAdminTgBotFilter(),
19
+ aiogram.filters.Command(AdminTgBotCommands.kb_with_remove_message)
20
+ )
21
+ @as_tg_command()
22
+ async def _(
23
+ m: aiogram.types.Message,
24
+ middleware_data_tg_bot: MiddlewareDataTgBot,
25
+ **kwargs
26
+ ):
27
+ kb_builder = InlineKeyboardBuilder()
28
+ kb_builder.row(InlineKeyboardButton(
29
+ text="Remove",
30
+ callback_data=RemoveMessageCD().pack()
31
+ ))
32
+ await m.answer(
33
+ text=get_cached_admin_tg_bot_blank().good(),
34
+ reply_markup=kb_builder.as_markup()
35
+ )
@@ -0,0 +1,37 @@
1
+ import os
2
+
3
+ import aiogram
4
+ from aiogram import Router, types
5
+ from aiogram.filters import Command
6
+ from aiogram.types import FSInputFile
7
+
8
+ from arpakitlib.ar_aiogram_util import as_tg_command
9
+ from project.core.settings import get_cached_settings
10
+ from project.tg_bot.const import AdminTgBotCommands
11
+ from project.tg_bot.filter_.is_private_chat import IsPrivateChatTgBotFilter
12
+ from project.tg_bot.filter_.user_roles_has_admin import UserRolesHasAdminTgBotFilter
13
+
14
+ tg_bot_router = Router()
15
+
16
+
17
+ @tg_bot_router.message(
18
+ IsPrivateChatTgBotFilter(),
19
+ UserRolesHasAdminTgBotFilter(),
20
+ aiogram.filters.Command(AdminTgBotCommands.log_file),
21
+ )
22
+ @as_tg_command(passwd_validator=get_cached_settings().tg_bot_command_passwd)
23
+ async def _(
24
+ m: types.Message,
25
+ **kwargs
26
+ ):
27
+ with open(get_cached_settings().log_filepath, mode="r") as f:
28
+ if not f.read():
29
+ await m.answer("log файл пустой")
30
+ return
31
+
32
+ await m.answer_document(
33
+ document=FSInputFile(
34
+ path=get_cached_settings().log_filepath,
35
+ filename=os.path.basename(get_cached_settings().log_filepath)
36
+ )
37
+ )
@@ -3,12 +3,16 @@ import aiogram.filters
3
3
  from arpakitlib.ar_aiogram_util import as_tg_command
4
4
  from project.tg_bot.blank.admin import get_cached_admin_tg_bot_blank
5
5
  from project.tg_bot.const import AdminTgBotCommands
6
+ from project.tg_bot.filter_.is_private_chat import IsPrivateChatTgBotFilter
7
+ from project.tg_bot.filter_.user_roles_has_admin import UserRolesHasAdminTgBotFilter
6
8
  from project.tg_bot.middleware.common import MiddlewareDataTgBot
7
9
 
8
10
  tg_bot_router = aiogram.Router()
9
11
 
10
12
 
11
13
  @tg_bot_router.message(
14
+ IsPrivateChatTgBotFilter(),
15
+ UserRolesHasAdminTgBotFilter(),
12
16
  aiogram.filters.Command(AdminTgBotCommands.me)
13
17
  )
14
18
  @as_tg_command()
@@ -3,13 +3,17 @@ import aiogram.filters
3
3
  from arpakitlib.ar_aiogram_util import as_tg_command
4
4
  from project.core.settings import get_cached_settings
5
5
  from project.tg_bot.const import AdminTgBotCommands
6
+ from project.tg_bot.filter_.is_private_chat import IsPrivateChatTgBotFilter
7
+ from project.tg_bot.filter_.user_roles_has_admin import UserRolesHasAdminTgBotFilter
6
8
  from project.tg_bot.middleware.common import MiddlewareDataTgBot
7
9
 
8
10
  tg_bot_router = aiogram.Router()
9
11
 
10
12
 
11
13
  @tg_bot_router.message(
12
- aiogram.filters.Command(AdminTgBotCommands.raise_fake_err)
14
+ IsPrivateChatTgBotFilter(),
15
+ UserRolesHasAdminTgBotFilter(),
16
+ aiogram.filters.Command(AdminTgBotCommands.raise_fake_error)
13
17
  )
14
18
  @as_tg_command(passwd_validator=get_cached_settings().tg_bot_command_passwd)
15
19
  async def _(
@@ -7,21 +7,25 @@ from project.core.settings import get_cached_settings
7
7
  from project.sqlalchemy_db_.sqlalchemy_db import get_cached_sqlalchemy_db
8
8
  from project.tg_bot.blank.admin import get_cached_admin_tg_bot_blank
9
9
  from project.tg_bot.const import AdminTgBotCommands
10
+ from project.tg_bot.filter_.is_private_chat import IsPrivateChatTgBotFilter
10
11
  from project.tg_bot.filter_.not_prod_mode_filter import NotProdModeTgBotFilter
12
+ from project.tg_bot.filter_.user_roles_has_admin import UserRolesHasAdminTgBotFilter
11
13
  from project.tg_bot.middleware.common import MiddlewareDataTgBot
12
14
 
13
15
  tg_bot_router = Router()
14
16
 
15
17
 
16
18
  @tg_bot_router.message(
19
+ IsPrivateChatTgBotFilter(),
20
+ UserRolesHasAdminTgBotFilter(),
21
+ NotProdModeTgBotFilter(),
17
22
  Command(AdminTgBotCommands.reinit_sqlalchemy_db),
18
- NotProdModeTgBotFilter()
19
23
  )
20
24
  @as_tg_command(passwd_validator=get_cached_settings().tg_bot_command_passwd)
21
- async def handler(
25
+ async def _(
22
26
  m: aiogram.types.Message,
23
27
  middleware_data_tg_bot: MiddlewareDataTgBot,
24
28
  **kwargs
25
29
  ):
26
30
  get_cached_sqlalchemy_db().reinit()
27
- await m.answer(text=get_cached_admin_tg_bot_blank().done())
31
+ await m.answer(text=get_cached_admin_tg_bot_blank().good())
@@ -0,0 +1,28 @@
1
+ import aiogram
2
+ from aiogram import Router
3
+ from aiogram.filters import Command
4
+
5
+ from arpakitlib.ar_aiogram_util import as_tg_command
6
+ from project.tg_bot.blank.admin import get_cached_admin_tg_bot_blank
7
+ from project.tg_bot.const import AdminTgBotCommands
8
+ from project.tg_bot.filter_.is_private_chat import IsPrivateChatTgBotFilter
9
+ from project.tg_bot.filter_.user_roles_has_admin import UserRolesHasAdminTgBotFilter
10
+ from project.tg_bot.middleware.common import MiddlewareDataTgBot
11
+ from project.tg_bot.util.set_tg_bot_commands import set_all_tg_bot_commands
12
+
13
+ tg_bot_router = Router()
14
+
15
+
16
+ @tg_bot_router.message(
17
+ IsPrivateChatTgBotFilter(),
18
+ UserRolesHasAdminTgBotFilter(),
19
+ aiogram.filters.Command(AdminTgBotCommands.set_all_tg_bot_commands)
20
+ )
21
+ @as_tg_command()
22
+ async def _(
23
+ m: aiogram.types.Message,
24
+ middleware_data_tg_bot: MiddlewareDataTgBot,
25
+ **kwargs
26
+ ):
27
+ await set_all_tg_bot_commands()
28
+ await m.answer(get_cached_admin_tg_bot_blank().good())
@@ -0,0 +1,30 @@
1
+ import logging
2
+
3
+ import aiogram
4
+ from aiogram import Router
5
+ from aiogram.filters import Command, or_f
6
+
7
+ from project.tg_bot.blank.client import get_cached_client_tg_bot_blank
8
+ from project.tg_bot.const import ClientTgBotCommands
9
+ from project.tg_bot.filter_.message_text import MessageTextTgBotFilter
10
+ from project.tg_bot.middleware.common import MiddlewareDataTgBot
11
+
12
+ tg_bot_router = Router()
13
+ _logger = logging.getLogger(__name__)
14
+
15
+
16
+ @tg_bot_router.message(
17
+ or_f(
18
+ Command(ClientTgBotCommands.about),
19
+ MessageTextTgBotFilter([
20
+ ClientTgBotCommands.about,
21
+ "о проекте"
22
+ ], ignore_case=True)
23
+ ),
24
+ )
25
+ async def _(
26
+ m: aiogram.types.Message,
27
+ middleware_data_tg_bot: MiddlewareDataTgBot,
28
+ **kwargs
29
+ ):
30
+ await m.answer(text=get_cached_client_tg_bot_blank().about_project())