mirror of
https://github.com/BEDOLAGA-DEV/remnawave-bedolaga-telegram-bot.git
synced 2026-01-20 11:50:27 +00:00
62 KiB
62 KiB
База по структуре проекта
Этот документ сгенерирован для быстрой навигации по репозиторию. В нём перечислены основные директории, модули, классы и функции.
Общая структура корня
.dockerignore— файл.env— файл.env.example— файл.gitignore— файлCONTRIBUTING.md— файлDockerfile— файлLICENSE— файлREADME.md— файлSECURITY.md— файл__pycache__/— директорияalembic.ini— файлapp/— директорияapp-config.json— файлassets/— директорияdata/— директорияdocker-compose.local.yml— файлdocker-compose.yml— файлdocs/— директорияinstall_bot.sh— файлlocales/— директорияlogs/— директорияmain.py— файлmigrations/— директорияminiapp/— директорияrequirements.txt— файлtests/— директорияvenv/— директорияvpn_logo.png— файл
app
app/bot.py— Python-модуль Классы: нет Функции: нетapp/config.py— Python-модуль Классы:Settings(103 методов) Функции:refresh_period_prices— Rebuild cached period price mapping using the latest settings.,get_traffic_prices,refresh_traffic_pricesapp/database/app/external/app/handlers/app/keyboards/app/localization/app/middlewares/app/services/app/states.py— Python-модуль Классы:RegistrationStates,SubscriptionStates,BalanceStates,PromoCodeStates,AdminStates,SupportStates,TicketStates,AdminTicketStates,SupportSettingsStates,BotConfigStates,PricingStates,AutoPayStates,SquadCreateStates,SquadRenameStates,SquadMigrationStates,AdminSubmenuStatesФункции: нетapp/utils/app/webapi/
app/database
app/database/crud/app/database/database.py— Python-модуль Классы: нет Функции: нетapp/database/models.py— Python-модуль Классы:UserStatus,SubscriptionStatus,TransactionType,PromoCodeType,PaymentMethod,MainMenuButtonActionType,MainMenuButtonVisibility,YooKassaPayment(6 методов),CryptoBotPayment(5 методов),MulenPayPayment(2 методов),Pal24Payment(3 методов),PromoGroup(3 методов),User(5 методов),Subscription(11 методов),Transaction(1 методов),SubscriptionConversion(2 методов),PromoCode(2 методов),PromoCodeUse,ReferralEarning(1 методов),Squad(1 методов),ServiceRule,PrivacyPolicy,PublicOffer,FaqSetting,FaqPage,SystemSetting,MonitoringLog,SentNotification,DiscountOffer,PromoOfferTemplate,SubscriptionTemporaryAccess,PromoOfferLog,BroadcastHistory,ServerSquad(3 методов),SubscriptionServer,SupportAuditLog,UserMessage(1 методов),WelcomeText,AdvertisingCampaign(2 методов),AdvertisingCampaignRegistration(1 методов),TicketStatus,Ticket(8 методов),TicketMessage(3 методов),WebApiToken(1 методов),MainMenuButton(3 методов) Функции: нетapp/database/universal_migration.py— Python-модуль Классы: нет Функции: нет
app/database/crud
app/database/crud/campaign.py— Python-модуль Классы: нет Функции: нетapp/database/crud/cryptobot.py— Python-модуль Классы: нет Функции: нетapp/database/crud/heleket.py— Python-модуль Классы: нет Функции: нетapp/database/crud/discount_offer.py— Python-модуль Классы: нет Функции: нетapp/database/crud/faq.py— Python-модуль Классы: нет Функции: нетapp/database/crud/main_menu_button.py— Python-модуль Классы: нет Функции:_enum_valueapp/database/crud/mulenpay.py— Python-модуль Классы: нет Функции: нетapp/database/crud/notification.py— Python-модуль Классы: нет Функции: нетapp/database/crud/pal24.py— CRUD helpers for PayPalych (Pal24) payments. Классы: нет Функции: нетapp/database/crud/privacy_policy.py— Python-модуль Классы: нет Функции: нетapp/database/crud/promo_group.py— Python-модуль Классы: нет Функции:_normalize_period_discountsapp/database/crud/promo_offer_log.py— Python-модуль Классы: нет Функции: нетapp/database/crud/promo_offer_template.py— Python-модуль Классы: нет Функции:_format_template_fieldsapp/database/crud/promocode.py— Python-модуль Классы: нет Функции: нетapp/database/crud/public_offer.py— Python-модуль Классы: нет Функции: нетapp/database/crud/referral.py— Python-модуль Классы: нет Функции: нетapp/database/crud/rules.py— Python-модуль Классы: нет Функции: нетapp/database/crud/server_squad.py— Python-модуль Классы: нет Функции:_generate_display_name,_extract_country_codeapp/database/crud/squad.py— Python-модуль Классы: нет Функции: нетapp/database/crud/subscription.py— Python-модуль Классы: нет Функции:_get_discount_percentapp/database/crud/subscription_conversion.py— Python-модуль Классы: нет Функции: нетapp/database/crud/system_setting.py— Python-модуль Классы: нет Функции: нетapp/database/crud/ticket.py— Python-модуль Классы:TicketCRUD— CRUD операции для работы с тикетами,TicketMessageCRUD— CRUD операции для работы с сообщениями тикетов Функции: нетapp/database/crud/transaction.py— Python-модуль Классы: нет Функции: нетapp/database/crud/user.py— Python-модуль Классы: нет Функции:generate_referral_codeapp/database/crud/user_message.py— Python-модуль Классы: нет Функции: нетapp/database/crud/web_api_token.py— CRUD операции для токенов административного веб-API. Классы: нет Функции: нетapp/database/crud/welcome_text.py— Python-модуль Классы: нет Функции:replace_placeholders,get_available_placeholdersapp/database/crud/yookassa.py— Python-модуль Классы: нет Функции: нет
app/external
app/external/cryptobot.py— Python-модуль Классы:CryptoBotService(2 методов) Функции: нетapp/external/heleket.py— Python-модуль Классы:HeleketService(3 методов) Функции: нетapp/external/heleket_webhook.py— Python-модуль Классы:HeleketWebhookHandler(3 методов) Функции:create_heleket_app,start_heleket_webhook_serverapp/external/pal24_client.py— Async client for PayPalych (Pal24) API. Классы:Pal24APIError— Base error for Pal24 API operations.,Pal24Response(2 методов) — Wrapper for Pal24 API responses.,Pal24Client(5 методов) — Async client implementing PayPalych API methods. Функции: нетapp/external/pal24_webhook.py— Flask webhook server for PayPalych callbacks. Классы:Pal24WebhookServer(3 методов) — Threaded Flask server for Pal24 callbacks. Функции:_normalize_payload,create_pal24_flask_appapp/external/remnawave_api.py— Python-модуль Классы:UserStatus,TrafficLimitStrategy,RemnaWaveUser,RemnaWaveInternalSquad,RemnaWaveNode,SubscriptionInfo,RemnaWaveAPIError(1 методов),RemnaWaveAPI(8 методов) Функции:format_bytes,parse_bytesapp/external/telegram_stars.py— Python-модуль Классы:TelegramStarsService(3 методов) Функции: нетapp/external/tribute.py— Python-модуль Классы:TributeService(2 методов) Функции: нетapp/external/webhook_server.py— Python-модуль Классы:WebhookServer(3 методов) Функции: нетapp/external/yookassa_webhook.py— Python-модуль Классы:YooKassaWebhookHandler(3 методов) Функции:create_yookassa_webhook_app
app/handlers
app/handlers/__init__.py— Python-модуль Классы: нет Функции: нетapp/handlers/admin/app/handlers/balance.py— Python-модуль Классы: нет Функции:get_quick_amount_buttons,register_handlersapp/handlers/common.py— Python-модуль Классы: нет Функции:register_handlersapp/handlers/menu.py— Python-модуль Классы: нет Функции:_format_rubles,_collect_period_discounts,_build_group_discount_lines,_get_subscription_status,_insert_random_message,register_handlersapp/handlers/promocode.py— Python-модуль Классы: нет Функции:register_handlersapp/handlers/referral.py— Python-модуль Классы: нет Функции:register_handlersapp/handlers/server_status.py— Python-модуль Классы: нет Функции:_build_status_message,_split_into_pages,_format_server_lines,register_handlersapp/handlers/stars_payments.py— Python-модуль Классы: нет Функции:register_stars_handlersapp/handlers/start.py— Python-модуль Классы: нет Функции:_get_language_prompt_text,_get_subscription_status,_get_subscription_status_simple,_insert_random_message,get_referral_code_keyboard,register_handlersapp/handlers/subscription/— пакет обработчиков подписки Ключевые модули:common.py— вспомогательные функции форматирования, расчётов и построения клавиатур.purchase.py— пользовательские сценарии, регистрация обработчиков (register_handlers).countries.py,devices.py,traffic.py,autopay.py,promo.py,happ.py,links.py,notifications.py,pricing.py— тематические обработчики и сервисные утилиты. Публичные функции доступны черезapp.handlers.subscription(например,create_deep_link,get_servers_display_names,register_handlers).
app/handlers/support.py— Python-модуль Классы: нет Функции:register_handlersapp/handlers/tickets.py— Python-модуль Классы:TicketStatesФункции:_split_text_into_pages,register_handlers— Регистрация обработчиков тикетовapp/handlers/webhooks.py— Python-модуль Классы: нет Функции: нет
app/handlers/admin
app/handlers/admin/__init__.py— Python-модуль Классы: нет Функции: нетapp/handlers/admin/backup.py— Python-модуль Классы:BackupStatesФункции:get_backup_main_keyboard,get_backup_list_keyboard,get_backup_manage_keyboard,get_backup_settings_keyboard,register_handlersapp/handlers/admin/bot_configuration.py— Python-модуль Классы:BotConfigInputFilter(1 методов) Функции:_get_group_meta,_get_group_description,_get_group_icon,_get_group_status,_get_setting_icon,_render_dashboard_overview,_build_group_category_index,_perform_settings_search,_build_search_results_keyboard,_parse_env_content,_format_preset_preview,_chunk,_parse_category_payload,_parse_group_payload,_get_grouped_categories,_build_groups_keyboard,_build_categories_keyboard,_build_settings_keyboard,_build_setting_keyboard,_render_setting_text,register_handlersapp/handlers/admin/campaigns.py— Python-модуль Классы: нет Функции:_format_campaign_summary,_build_campaign_servers_keyboard,register_handlersapp/handlers/admin/faq.py— Python-модуль Классы: нет Функции:_format_timestamp,register_handlersapp/handlers/admin/main.py— Python-модуль Классы: нет Функции:register_handlersapp/handlers/admin/maintenance.py— Python-модуль Классы:MaintenanceStatesФункции:register_handlersapp/handlers/admin/messages.py— Python-модуль Классы: нет Функции:get_message_buttons_selector_keyboard,get_updated_message_buttons_selector_keyboard,create_broadcast_keyboard,get_target_name,get_target_display_name,register_handlersapp/handlers/admin/monitoring.py— Python-модуль Классы: нет Функции:_format_toggle,_build_notification_settings_view,_build_notification_preview_message,get_monitoring_logs_keyboard,get_monitoring_logs_back_keyboard,register_handlersapp/handlers/admin/pricing.py— Python-модуль Классы:ChoiceOption(1 методов),SettingEntry(2 методов) Функции:_traffic_package_sort_key,_collect_traffic_packages,_serialize_traffic_packages,_language_code,_format_period_label,_format_traffic_label,_format_trial_summary,_format_core_summary,_get_period_items,_get_traffic_items,_get_extra_items,_build_period_summary,_build_traffic_summary,_build_period_options_summary,_build_extra_summary,_build_settings_section,_build_traffic_options_section,_build_period_options_section,_build_overview,_build_section,_build_price_prompt,_parse_price_input,_resolve_label,register_handlersapp/handlers/admin/privacy_policy.py— Python-модуль Классы: нет Функции:_format_timestamp,register_handlersapp/handlers/admin/promo_groups.py— Python-модуль Классы: нет Функции:_format_discount_lines,_format_addon_discounts_line,_get_addon_discounts_button_text,_normalize_periods_dict,_collect_period_discounts,_format_period_discounts_lines,_format_period_discounts_value,_parse_period_discounts_input,_format_rubles,_format_auto_assign_line,_format_auto_assign_value,_parse_auto_assign_threshold_input,_build_edit_menu_content,_get_edit_prompt_keyboard,_validate_percent,register_handlersapp/handlers/admin/promo_offers.py— Python-модуль Классы: нет Функции:_render_template_text,_build_templates_keyboard,_build_offer_detail_keyboard,_format_offer_remaining,_extract_offer_active_hours,_extract_template_id_from_notification,_format_promo_offer_log_entry,_build_logs_keyboard,_build_send_keyboard,_build_user_button_label,_describe_offer,_build_connect_button_rows,register_handlersapp/handlers/admin/promocodes.py— Python-модуль Классы: нет Функции:register_handlersapp/handlers/admin/public_offer.py— Python-модуль Классы: нет Функции:_format_timestamp,register_handlersapp/handlers/admin/referrals.py— Python-модуль Классы: нет Функции:register_handlersapp/handlers/admin/remnawave.py— Python-модуль Классы: нет Функции:_format_migration_server_label,_build_migration_keyboard,register_handlersapp/handlers/admin/reports.py— Python-модуль Классы: нет Функции:register_handlersapp/handlers/admin/rules.py— Python-модуль Классы: нет Функции:register_handlersapp/handlers/admin/servers.py— Python-модуль Классы: нет Функции:_build_server_edit_view,_build_server_promo_groups_keyboard,register_handlersapp/handlers/admin/statistics.py— Python-модуль Классы: нет Функции:register_handlersapp/handlers/admin/subscriptions.py— Python-модуль Классы: нет Функции:get_country_flag,register_handlersapp/handlers/admin/support_settings.py— Python-модуль Классы:SupportAdvancedStatesФункции:_get_support_settings_keyboard,register_handlersapp/handlers/admin/system_logs.py— Python-модуль Классы: нет Функции:_resolve_log_path,_format_preview_block,_build_logs_message,_get_logs_keyboard,register_handlersapp/handlers/admin/tickets.py— Python-модуль Классы: нет Функции:register_handlers— Регистрация админских обработчиков тикетовapp/handlers/admin/updates.py— Python-модуль Классы: нет Функции:get_updates_keyboard,get_version_info_keyboard,register_handlersapp/handlers/admin/user_messages.py— Python-модуль Классы:UserMessageStatesФункции:get_user_messages_keyboard,get_message_actions_keyboard,register_handlersapp/handlers/admin/users.py— Python-модуль Классы: нет Функции:register_handlersapp/handlers/admin/welcome_text.py— Python-модуль Классы: нет Функции:get_telegram_formatting_info,register_welcome_text_handlers
app/keyboards
app/keyboards/admin.py— Python-модуль Классы: нет Функции:_t— Helper for localized button labels with fallbacks.,get_admin_main_keyboard,get_admin_users_submenu_keyboard,get_admin_promo_submenu_keyboard,get_admin_communications_submenu_keyboard,get_admin_support_submenu_keyboard,get_admin_settings_submenu_keyboard,get_admin_system_submenu_keyboard,get_admin_reports_keyboard,get_admin_report_result_keyboard,get_admin_users_keyboard,get_admin_users_filters_keyboard,get_admin_subscriptions_keyboard,get_admin_promocodes_keyboard,get_admin_campaigns_keyboard,get_campaign_management_keyboard,get_campaign_edit_keyboard,get_campaign_bonus_type_keyboard,get_promocode_management_keyboard,get_admin_messages_keyboard,get_admin_monitoring_keyboard,get_admin_remnawave_keyboard,get_admin_statistics_keyboard,get_user_management_keyboard,get_user_promo_group_keyboard,get_confirmation_keyboard,get_promocode_type_keyboard,get_promocode_list_keyboard,get_broadcast_target_keyboard,get_custom_criteria_keyboard,get_broadcast_history_keyboard,get_sync_options_keyboard,get_sync_confirmation_keyboard,get_sync_result_keyboard,get_period_selection_keyboard,get_node_management_keyboard,get_squad_management_keyboard,get_squad_edit_keyboard,get_monitoring_keyboard,get_monitoring_logs_keyboard,get_monitoring_logs_navigation_keyboard,get_log_detail_keyboard,get_monitoring_clear_confirm_keyboard,get_monitoring_status_keyboard,get_monitoring_settings_keyboard,get_log_type_filter_keyboard,get_admin_servers_keyboard,get_server_edit_keyboard,get_admin_pagination_keyboard,get_maintenance_keyboard,get_sync_simplified_keyboard,get_welcome_text_keyboard,get_broadcast_button_config,get_broadcast_button_labels,get_message_buttons_selector_keyboard,get_broadcast_media_keyboard,get_media_confirm_keyboard,get_updated_message_buttons_selector_keyboard_with_mediaapp/keyboards/inline.py— Python-модуль Классы: нет Функции:_get_localized_value,_build_additional_buttons,get_rules_keyboard,get_channel_sub_keyboard,get_post_registration_keyboard,get_language_selection_keyboard,_build_text_main_menu_keyboard,get_main_menu_keyboard,get_info_menu_keyboard,get_happ_download_button_row,get_happ_cryptolink_keyboard,get_happ_download_platform_keyboard,get_happ_download_link_keyboard,get_back_keyboard,get_server_status_keyboard,get_insufficient_balance_keyboard,get_subscription_keyboard,get_payment_methods_keyboard_with_cart,get_subscription_confirm_keyboard_with_cart,get_insufficient_balance_keyboard_with_cart,get_trial_keyboard,get_subscription_period_keyboard,get_traffic_packages_keyboard,get_countries_keyboard,get_devices_keyboard,_get_device_declension,get_subscription_confirm_keyboard,get_balance_keyboard,get_payment_methods_keyboard,get_yookassa_payment_keyboard,get_autopay_notification_keyboard,get_subscription_expiring_keyboard,get_referral_keyboard,get_support_keyboard,get_pagination_keyboard,get_confirmation_keyboard,get_autopay_keyboard,get_autopay_days_keyboard,_get_days_word,get_extend_subscription_keyboard,get_add_traffic_keyboard,get_change_devices_keyboard,get_confirm_change_devices_keyboard,get_reset_traffic_confirm_keyboard,get_manage_countries_keyboard,get_device_selection_keyboard,get_connection_guide_keyboard,get_app_selection_keyboard,get_specific_app_keyboard,get_extend_subscription_keyboard_with_prices,get_cryptobot_payment_keyboard,get_devices_management_keyboard,get_updated_subscription_settings_keyboard,get_device_reset_confirm_keyboard,get_device_management_help_keyboard,get_ticket_cancel_keyboard,get_my_tickets_keyboard,get_ticket_view_keyboard,get_ticket_reply_cancel_keyboard,get_admin_tickets_keyboard,get_admin_ticket_view_keyboard,get_admin_ticket_reply_cancel_keyboardapp/keyboards/reply.py— Python-модуль Классы: нет Функции:get_main_reply_keyboard,get_admin_reply_keyboard,get_cancel_keyboard,get_confirmation_reply_keyboard,get_skip_keyboard,remove_keyboard,get_contact_keyboard,get_location_keyboard
app/localization
app/localization/default_locales/app/localization/loader.py— Python-модуль Классы: нет Функции:_normalize_language_code,_resolve_user_locales_dir,_locale_file_exists,_select_fallback_language,_determine_default_language,_normalize_key,_flatten_locale_dict,_normalize_locale_dict,ensure_locale_templates,_load_default_locale,_load_user_locale,_load_locale_file,_merge_dicts,load_locale,clear_locale_cacheapp/localization/locales/app/localization/texts.py— Python-модуль Классы:Texts(8 методов) Функции:_get_cached_rules_value,_build_dynamic_values,get_texts,_get_default_rules,get_rules_sync,clear_rules_cache,reload_locales
app/localization/default_locales
app/localization/default_locales/en.yml— файл (.yml)app/localization/default_locales/ru.yml— файл (.yml)
app/localization/locales
app/localization/locales/en.json— файл (.json)app/localization/locales/ru.json— файл (.json)
app/middlewares
app/middlewares/__init__.py— Python-модуль Классы: нет Функции: нетapp/middlewares/auth.py— Python-модуль Классы:AuthMiddlewareФункции: нетapp/middlewares/channel_checker.py— Python-модуль Классы:ChannelCheckerMiddleware(1 методов) Функции: нетapp/middlewares/display_name_restriction.py— Python-модуль Классы:DisplayNameRestrictionMiddleware(4 методов) — Blocks users whose display name imitates links or official accounts. Функции: нетapp/middlewares/global_error.py— Python-модуль Классы:GlobalErrorMiddleware(4 методов),ErrorStatisticsMiddleware(4 методов) Функции: нетapp/middlewares/logging.py— Python-модуль Классы:LoggingMiddlewareФункции: нетapp/middlewares/maintenance.py— Python-модуль Классы:MaintenanceMiddlewareФункции: нетapp/middlewares/subscription_checker.py— Python-модуль Классы:SubscriptionStatusMiddlewareФункции: нетapp/middlewares/throttling.py— Python-модуль Классы:ThrottlingMiddleware(1 методов) Функции: нет
app/services
app/services/__init__.py— Сервисы бизнес-логики Классы: нет Функции: нетapp/services/admin_notification_service.py— Python-модуль Классы:AdminNotificationService(11 методов) Функции: нетapp/services/backup_service.py— Python-модуль Классы:BackupMetadata,BackupSettings,BackupService(7 методов) Функции: нетapp/services/broadcast_service.py— Python-модуль Классы:BroadcastMediaConfig,BroadcastConfig,_BroadcastTask,BroadcastService(4 методов) — Handles broadcast execution triggered from the admin web API. Функции: нетapp/services/campaign_service.py— Python-модуль Классы:CampaignBonusResult,AdvertisingCampaignService(1 методов) Функции: нетapp/services/external_admin_service.py— Утилиты для синхронизации токена внешней админки. Классы: нет Функции: нетapp/services/faq_service.py— Python-модуль Классы:FaqService(3 методов) Функции: нетapp/services/main_menu_button_service.py— Python-модуль Классы:_MainMenuButtonData,MainMenuButtonService(2 методов) Функции: нетapp/services/maintenance_service.py— Python-модуль Классы:MaintenanceStatus,MaintenanceService(6 методов) Функции: нетapp/services/monitoring_service.py— Python-модуль Классы:MonitoringService(5 методов) Функции: нетapp/services/mulenpay_service.py— Python-модуль Классы:MulenPayService(4 методов) — Интеграция с Mulen Pay API. Функции: нетapp/services/notification_settings_service.py— Python-модуль Классы:NotificationSettingsService(32 методов) — Runtime-editable notification settings stored on disk. Функции: нетapp/services/pal24_service.py— High level integration with PayPalych API. Классы:Pal24Service(5 методов) — Wrapper around :class:Pal24Clientproviding domain helpers. Функции: нетapp/services/payment_service.py— Python-модуль Классы:PaymentService(3 методов) Функции: нетapp/services/privacy_policy_service.py— Python-модуль Классы:PrivacyPolicyService(3 методов) — Utility helpers around privacy policy storage and presentation. Функции: нетapp/services/promo_group_assignment.py— Python-модуль Классы: нет Функции: нетapp/services/promo_offer_service.py— Python-модуль Классы:PromoOfferService(1 методов) Функции: нетapp/services/promocode_service.py— Python-модуль Классы:PromoCodeService(1 методов) Функции: нетapp/services/public_offer_service.py— Python-модуль Классы:PublicOfferService(4 методов) — Helpers for managing the public offer text and visibility. Функции: нетapp/services/referral_service.py— Python-модуль Классы: нет Функции: нетapp/services/remnawave_service.py— Python-модуль Классы:RemnaWaveConfigurationError— Raised when RemnaWave API configuration is missing.,RemnaWaveService(7 методов) Функции: нетapp/services/reporting_service.py— Python-модуль Классы:ReportingServiceError— Base error for the reporting service.,ReportPeriod,ReportPeriodRange,ReportingService(7 методов) — Generates admin summary reports and can schedule daily delivery. Функции: нетapp/services/server_status_service.py— Python-модуль Классы:ServerStatusEntry,ServerStatusError— Raised when server status information cannot be fetched or parsed.,ServerStatusService(6 методов) Функции: нетapp/services/subscription_checkout_service.py— Python-модуль Классы: нет Функции:should_offer_checkout_resume— Determine whether checkout resume button should be available for the user.app/services/subscription_purchase_service.py— Python-модуль Классы:PurchaseTrafficOption(1 методов),PurchaseTrafficConfig(1 методов),PurchaseServerOption(1 методов),PurchaseServersConfig(1 методов),PurchaseDevicesConfig(1 методов),PurchasePeriodConfig(1 методов),PurchaseSelection,PurchasePricingResult,PurchaseOptionsContext,PurchaseValidationError(1 методов),PurchaseBalanceError(1 методов),MiniAppSubscriptionPurchaseService(5 методов) — Builds configuration and pricing for subscription purchases in the mini app. Функции:_apply_percentage_discount,_apply_discount_to_monthly_component,_get_promo_offer_discount_percent,_apply_promo_offer_discount,_build_server_optionapp/services/subscription_service.py— Python-модуль Классы:SubscriptionService(7 методов) Функции:_resolve_discount_percent,_resolve_addon_discount_percent,get_traffic_reset_strategyapp/services/support_settings_service.py— Python-модуль Классы:SupportSettingsService(23 методов) — Runtime editable support settings with JSON persistence. Функции: нетapp/services/system_settings_service.py— Python-модуль Классы:SettingDefinition(1 методов),ChoiceOption,ReadOnlySettingError— Исключение, выбрасываемое при попытке изменить настройку только для чтения.,BotConfigurationService(33 методов) Функции:_title_from_key,_truncateapp/services/tribute_service.py— Python-модуль Классы:TributeService(1 методов) Функции: нетapp/services/user_service.py— Python-модуль Классы:UserServiceФункции: нетapp/services/version_service.py— Python-модуль Классы:VersionInfo(5 методов),VersionService(5 методов) Функции: нетapp/services/web_api_token_service.py— Python-модуль Классы:WebApiTokenService(2 методов) — Сервис для управления токенами административного веб-API. Функции: нетapp/services/yookassa_service.py— Python-модуль Классы:YooKassaService(1 методов) Функции: нет
app/utils
app/utils/__init__.py— Python-модуль Классы: нет Функции: нетapp/utils/cache.py— Python-модуль Классы:CacheService(1 методов),UserCache,SystemCache,RateLimitCacheФункции:cache_keyapp/utils/check_reg_process.py— Python-модуль Классы: нет Функции:is_registration_processapp/utils/currency_converter.py— Python-модуль Классы:CurrencyConverter(1 методов) Функции: нетapp/utils/decorators.py— Python-модуль Классы: нет Функции:admin_required,error_handler,_extract_event,state_cleanup,typing_action,rate_limitapp/utils/formatters.py— Python-модуль Классы: нет Функции:format_datetime,format_date,format_time_ago,format_days_declension,format_duration,format_bytes,format_percentage,format_number,format_price_range,truncate_text,format_username,format_subscription_status,format_traffic_usage,format_booleanapp/utils/message_patch.py— Python-модуль Классы: нет Функции:is_qr_message,_get_language,_default_privacy_hint,append_privacy_hint,prepare_privacy_safe_kwargs,is_privacy_restricted_error,patch_message_methodsapp/utils/miniapp_buttons.py— Python-модуль Классы: нет Функции:build_miniapp_or_callback_button— Create a button that opens the miniapp in text menu mode.app/utils/pagination.py— Python-модуль Классы:PaginationResult(1 методов) Функции:paginate_list,get_pagination_info,get_page_numbersapp/utils/payment_utils.py— Python-модуль Классы: нет Функции:get_available_payment_methods— Возвращает список доступных способов оплаты с их настройками,get_payment_methods_text— Генерирует текст с описанием доступных способов оплаты,is_payment_method_available— Проверяет, доступен ли конкретный способ оплаты,get_payment_method_status— Возвращает статус всех способов оплаты,get_enabled_payment_methods_count— Возвращает количество включенных способов оплаты (не считая поддержку)app/utils/photo_message.py— Python-модуль Классы: нет Функции:_resolve_media,_get_language,_build_base_kwargsapp/utils/pricing_utils.py— Python-модуль Классы: нет Функции:calculate_months_from_days,get_remaining_months,calculate_period_multiplier,calculate_prorated_price,apply_percentage_discount,format_period_description,validate_pricing_calculation,get_period_infoapp/utils/promo_offer.py— Python-модуль Классы: нет Функции:_escape_format_braces— Escape braces so str.format treats them as literals.,get_user_active_promo_discount_percent,_format_time_left,_build_progress_barapp/utils/security.py— Утилиты безопасности и генерации ключей. Классы: нет Функции:hash_api_token— Возвращает хеш токена в формате hex.,generate_api_token— Генерирует криптографически стойкий токен.app/utils/startup_timeline.py— Python-модуль Классы:StepRecord,StageHandle(6 методов),StartupTimeline(6 методов) Функции: нетapp/utils/subscription_utils.py— Python-модуль Классы: нет Функции:get_display_subscription_link,get_happ_cryptolink_redirect_link,convert_subscription_link_to_happ_schemeapp/utils/telegram_webapp.py— Utilities for validating Telegram WebApp initialization data. Классы:TelegramWebAppAuthError— Raised when Telegram WebApp init data fails validation. Функции:parse_webapp_init_data— Validate and parse Telegram WebApp init data.app/utils/user_utils.py— Python-модуль Классы: нет Функции:format_referrer_info— Return formatted referrer info for admin notifications.app/utils/validators.py— Python-модуль Классы: нет Функции:validate_email,validate_phone,validate_telegram_username,validate_promocode,validate_amount,validate_positive_integer,validate_date_string,validate_url,validate_uuid,validate_traffic_amount,validate_subscription_period,sanitize_html,sanitize_telegram_name— Санитизация Telegram-имени для безопасной вставки в HTML и хранения.,validate_device_count,validate_referral_code,validate_html_tags,validate_html_structure,fix_html_tags,get_html_help_text,validate_rules_content
app/webapi
app/webapi/__init__.py— Пакет административного веб-API. Классы: нет Функции: нетapp/webapi/app.py— Python-модуль Классы: нет Функции:create_web_api_appapp/webapi/background/app/webapi/dependencies.py— Python-модуль Классы: нет Функции: нетapp/webapi/middleware.py— Python-модуль Классы:RequestLoggingMiddleware— Логирование входящих запросов в административный API. Функции: нетapp/webapi/routes/app/webapi/schemas/app/webapi/server.py— Python-модуль Классы:WebAPIServer(1 методов) — Асинхронный uvicorn-сервер для административного API. Функции: нет
app/webapi/background
app/webapi/background/__init__.py— Background utilities for Web API. Классы: нет Функции: нетapp/webapi/background/backup_tasks.py— Python-модуль Классы:BackupTaskState,BackupTaskManager(1 методов) Функции: нет
app/webapi/routes
app/webapi/routes/__init__.py— Python-модуль Классы: нет Функции: нетapp/webapi/routes/backups.py— Python-модуль Классы: нет Функции:_parse_datetime,_to_int,_serialize_backupapp/webapi/routes/broadcasts.py— Python-модуль Классы: нет Функции:_serialize_broadcastapp/webapi/routes/campaigns.py— Python-модуль Классы: нет Функции:_serialize_campaignapp/webapi/routes/config.py— Python-модуль Классы: нет Функции:_coerce_value,_serialize_definitionapp/webapi/routes/health.py— Python-модуль Классы: нет Функции: нетapp/webapi/routes/main_menu_buttons.py— Python-модуль Классы: нет Функции:_serializeapp/webapi/routes/miniapp.py— Python-модуль Классы: нет Функции:_normalize_autopay_days,_get_autopay_day_options,_build_autopay_payload,_autopay_response_extras,_compute_cryptobot_limits,_current_request_timestamp,_compute_stars_min_amount,_normalize_stars_amount,_build_balance_invoice_payload,_merge_purchase_selection_from_request,_parse_client_timestamp,_classify_status,_format_gb,_format_gb_label,_format_limit_label,_normalize_amount_kopeks,_extract_template_id,_extract_offer_extra,_extract_offer_type,_normalize_effect_type,_determine_offer_icon,_extract_offer_test_squad_uuids,_format_offer_message,_extract_offer_duration_hours,_format_bonus_label,_bytes_to_gb,_status_label,_parse_datetime_string,_resolve_display_name,_is_remnawave_configured,_serialize_transaction,_is_trial_available_for_user,_safe_int,_normalize_period_discounts,_extract_promo_discounts,_normalize_language_code,_build_renewal_status_message,_build_promo_offer_payload,_build_renewal_period_id,_parse_period_identifier,_get_addon_discount_percent_for_user,_get_period_hint_from_subscription,_validate_subscription_id,_ensure_paid_subscriptionapp/webapi/routes/pages.py— Python-модуль Классы: нет Функции:_serialize_rich_page,_serialize_faq_page,_serialize_rulesapp/webapi/routes/promo_groups.py— Python-модуль Классы: нет Функции:_normalize_period_discounts,_serializeapp/webapi/routes/promo_offers.py— Python-модуль Классы: нет Функции:_serialize_user,_serialize_subscription,_serialize_offer,_serialize_template,_build_log_responseapp/webapi/routes/promocodes.py— Python-модуль Классы: нет Функции:_normalize_datetime,_serialize_promocode,_serialize_recent_use,_validate_create_payload,_validate_update_payloadapp/webapi/routes/remnawave.py— Python-модуль Классы: нет Функции:_get_service,_ensure_service_configured,_serialize_node,_parse_last_updatedapp/webapi/routes/stats.py— Python-модуль Классы: нет Функции: нетapp/webapi/routes/subscriptions.py— Python-модуль Классы: нет Функции:_serialize_subscriptionapp/webapi/routes/tickets.py— Python-модуль Классы: нет Функции:_serialize_message,_serialize_ticketapp/webapi/routes/tokens.py— Python-модуль Классы: нет Функции:_serializeapp/webapi/routes/transactions.py— Python-модуль Классы: нет Функции:_serializeapp/webapi/routes/users.py— Python-модуль Классы: нет Функции:_serialize_promo_group,_serialize_subscription,_serialize_user,_apply_search_filter
app/webapi/schemas
app/webapi/schemas/__init__.py— Python-модуль Классы: нет Функции: нетapp/webapi/schemas/backups.py— Python-модуль Классы:BackupCreateResponse,BackupInfo,BackupListResponse,BackupStatusResponse,BackupTaskInfo,BackupTaskListResponseФункции: нетapp/webapi/schemas/broadcasts.py— Python-модуль Классы:BroadcastMedia,BroadcastCreateRequest(2 методов),BroadcastResponse,BroadcastListResponseФункции: нетapp/webapi/schemas/campaigns.py— Python-модуль Классы:CampaignBase(1 методов),CampaignCreateRequest(2 методов),CampaignResponse,CampaignListResponse,CampaignUpdateRequest(3 методов) Функции: нетapp/webapi/schemas/config.py— Python-модуль Классы:SettingCategorySummary— Краткое описание категории настройки.,SettingCategoryRef— Ссылка на категорию, к которой относится настройка.,SettingChoice— Вариант значения для настройки с выбором.,SettingDefinition— Полное описание настройки и её текущего состояния.,SettingUpdateRequest— Запрос на обновление значения настройки. Функции: нетapp/webapi/schemas/health.py— Python-модуль Классы:HealthFeatureFlags— Флаги доступности функций административного API.,HealthCheckResponse— Ответ на health-check административного API. Функции: нетapp/webapi/schemas/main_menu_buttons.py— Python-модуль Классы:MainMenuButtonResponse,MainMenuButtonCreateRequest,MainMenuButtonUpdateRequest(2 методов),MainMenuButtonListResponseФункции:_clean_text,_validate_action_valueapp/webapi/schemas/miniapp.py— Python-модуль Классы:MiniAppBranding,MiniAppSubscriptionRequest,MiniAppSubscriptionUser,MiniAppPromoGroup,MiniAppAutoPromoGroupLevel,MiniAppConnectedServer,MiniAppDevice,MiniAppDeviceRemovalRequest,MiniAppDeviceRemovalResponse,MiniAppTransaction,MiniAppPromoOffer,MiniAppPromoOfferClaimRequest,MiniAppPromoOfferClaimResponse,MiniAppSubscriptionAutopay,MiniAppSubscriptionRenewalPeriod,MiniAppSubscriptionRenewalOptionsRequest,MiniAppSubscriptionRenewalOptionsResponse,MiniAppSubscriptionRenewalRequest,MiniAppSubscriptionRenewalResponse,MiniAppSubscriptionAutopayRequest,MiniAppSubscriptionAutopayResponse,MiniAppPromoCode,MiniAppPromoCodeActivationRequest,MiniAppPromoCodeActivationResponse,MiniAppFaqItem,MiniAppFaq,MiniAppRichTextDocument,MiniAppLegalDocuments,MiniAppReferralTerms,MiniAppReferralStats,MiniAppReferralRecentEarning,MiniAppReferralItem,MiniAppReferralList,MiniAppReferralInfo,MiniAppPaymentMethodsRequest,MiniAppPaymentMethod,MiniAppPaymentMethodsResponse,MiniAppPaymentCreateRequest,MiniAppPaymentCreateResponse,MiniAppPaymentStatusQuery,MiniAppPaymentStatusRequest,MiniAppPaymentStatusResult,MiniAppPaymentStatusResponse,MiniAppSubscriptionResponse,MiniAppSubscriptionServerOption,MiniAppSubscriptionTrafficOption,MiniAppSubscriptionDeviceOption,MiniAppSubscriptionCurrentSettings,MiniAppSubscriptionServersSettings,MiniAppSubscriptionTrafficSettings,MiniAppSubscriptionDevicesSettings,MiniAppSubscriptionBillingContext,MiniAppSubscriptionSettings,MiniAppSubscriptionSettingsResponse,MiniAppSubscriptionSettingsRequest(1 методов),MiniAppSubscriptionServersUpdateRequest(1 методов),MiniAppSubscriptionTrafficUpdateRequest(1 методов),MiniAppSubscriptionDevicesUpdateRequest(1 методов),MiniAppSubscriptionUpdateResponse,MiniAppSubscriptionPurchaseOptionsRequest,MiniAppSubscriptionPurchaseOptionsResponse,MiniAppSubscriptionPurchasePreviewRequest(1 методов),MiniAppSubscriptionPurchasePreviewResponse,MiniAppSubscriptionPurchaseRequest,MiniAppSubscriptionPurchaseResponse,MiniAppSubscriptionTrialRequest,MiniAppSubscriptionTrialResponseФункции: нетapp/webapi/schemas/pages.py— Python-модуль Классы:RichTextPageResponse— Generic representation for rich text informational pages.,RichTextPageUpdateRequest,FaqPageResponse,FaqPageListResponse,FaqPageCreateRequest,FaqPageUpdateRequest,FaqReorderItem,FaqReorderRequest,FaqStatusResponse,FaqStatusUpdateRequest,ServiceRulesResponse,ServiceRulesUpdateRequest,ServiceRulesHistoryResponseФункции: нетapp/webapi/schemas/promo_groups.py— Python-модуль Классы:PromoGroupResponse,_PromoGroupBase(1 методов),PromoGroupCreateRequest,PromoGroupUpdateRequest,PromoGroupListResponseФункции:_normalize_period_discountsapp/webapi/schemas/promo_offers.py— Python-модуль Классы:PromoOfferUserInfo,PromoOfferSubscriptionInfo,PromoOfferResponse,PromoOfferListResponse,PromoOfferCreateRequest,PromoOfferTemplateResponse,PromoOfferTemplateListResponse,PromoOfferTemplateUpdateRequest,PromoOfferLogOfferInfo,PromoOfferLogResponse,PromoOfferLogListResponseФункции: нетapp/webapi/schemas/promocodes.py— Python-модуль Классы:PromoCodeResponse,PromoCodeListResponse,PromoCodeCreateRequest,PromoCodeUpdateRequest,PromoCodeRecentUse,PromoCodeDetailResponseФункции: нетapp/webapi/schemas/remnawave.py— Python-модуль Классы:RemnaWaveConnectionStatus,RemnaWaveStatusResponse,RemnaWaveNode,RemnaWaveNodeListResponse,RemnaWaveNodeActionRequest,RemnaWaveNodeActionResponse,RemnaWaveNodeStatisticsResponse,RemnaWaveNodeUsageResponse,RemnaWaveBandwidth,RemnaWaveTrafficPeriod,RemnaWaveTrafficPeriods,RemnaWaveSystemSummary,RemnaWaveServerInfo,RemnaWaveSystemStatsResponse,RemnaWaveSquad,RemnaWaveSquadListResponse,RemnaWaveSquadCreateRequest,RemnaWaveSquadUpdateRequest,RemnaWaveSquadActionRequest,RemnaWaveOperationResponse,RemnaWaveInboundsResponse,RemnaWaveUserTrafficResponse,RemnaWaveSyncFromPanelRequest,RemnaWaveGenericSyncResponse,RemnaWaveSquadMigrationPreviewResponse,RemnaWaveSquadMigrationRequest,RemnaWaveSquadMigrationStats,RemnaWaveSquadMigrationResponseФункции: нетapp/webapi/schemas/subscriptions.py— Python-модуль Классы:SubscriptionResponse,SubscriptionCreateRequest,SubscriptionExtendRequest,SubscriptionTrafficRequest,SubscriptionDevicesRequest,SubscriptionSquadRequestФункции: нетapp/webapi/schemas/tickets.py— Python-модуль Классы:TicketMessageResponse,TicketResponse,TicketStatusUpdateRequest,TicketPriorityUpdateRequest,TicketReplyBlockRequestФункции: нетapp/webapi/schemas/tokens.py— Python-модуль Классы:TokenResponse,TokenCreateRequest,TokenCreateResponseФункции: нетapp/webapi/schemas/transactions.py— Python-модуль Классы:TransactionResponse,TransactionListResponseФункции: нетapp/webapi/schemas/users.py— Python-модуль Классы:PromoGroupSummary,SubscriptionSummary,UserResponse,UserListResponse,UserCreateRequest,UserUpdateRequest,BalanceUpdateRequestФункции: нет
tests
tests/conftest.py— Глобальные фикстуры и настройки окружения для тестов. Классы: нет Функции:fixed_datetime— Возвращает фиксированную отметку времени для воспроизводимых проверок.tests/external/tests/services/tests/test_miniapp_payments.py— Python-модуль Классы: нет Функции:anyio_backend,test_compute_cryptobot_limits_scale_with_ratetests/utils/
tests/external
tests/external/__init__.py— Python-модуль Классы: нет Функции: нетtests/external/test_cryptobot_service.py— Тесты для внешнего клиента CryptoBotService. Классы: нет Функции:anyio_backend,_enable_token,test_verify_webhook_signature,test_verify_webhook_signature_without_secrettests/external/test_webhook_server.py— Тестирование хендлеров WebhookServer без запуска реального сервера. Классы:DummyBotФункции:anyio_backend,webhook_server,_mock_request
tests/services
tests/services/__init__.py— Python-модуль Классы: нет Функции: нетtests/services/test_mulenpay_service_adapter.py— Юнит-тесты MulenPayService. Классы: нет Функции:anyio_backend,_enable_service,test_is_configured,test_format_and_signaturetests/services/test_pal24_service_adapter.py— Тесты Pal24Service и вспомогательных функций. Классы:StubPal24Client(1 методов) Функции:_enable_pal24,anyio_backend,test_parse_callback_success,test_parse_callback_missing_fields,test_convert_to_kopeks_and_expirationtests/services/test_payment_service_cryptobot.py— Тесты сценариев CryptoBot в PaymentService. Классы:DummySession(2 методов),DummyLocalPayment(1 методов),StubCryptoBotService(1 методов) Функции:anyio_backend,_make_servicetests/services/test_payment_service_heleket.py— Тесты сценариев Heleket в PaymentService. Классы:DummySession(2 методов),DummyLocalPayment(1 методов),StubHeleketService(1 методов) Функции:anyio_backend,_make_servicetests/services/test_payment_service_mulenpay.py— Тесты для сценариев MulenPay в PaymentService. Классы:DummySession,DummyLocalPayment(1 методов),StubMulenPayService(1 методов) Функции:anyio_backend,_make_servicetests/services/test_payment_service_pal24.py— Тесты Pal24 сценариев PaymentService. Классы:DummySession,DummyLocalPayment(1 методов),StubPal24Service(1 методов) Функции:anyio_backend,_make_servicetests/services/test_payment_service_stars.py— Тесты для Telegram Stars-сценариев внутри PaymentService. Классы:DummyBot(1 методов) — Минимальная заглушка aiogram.Bot для тестов. Функции:anyio_backend— Ограничиваем anyio тесты только бэкендом asyncio.,_make_service— Создаёт экземпляр PaymentService без выполнения полного конструктора.tests/services/test_payment_service_tribute.py— Тесты Tribute-платежей PaymentService. Классы: нет Функции:anyio_backend,_make_service,test_verify_tribute_webhook_signature,test_verify_tribute_webhook_returns_false_without_keytests/services/test_payment_service_webhooks.py— Интеграционные проверки обработки вебхуков PaymentService. Классы:DummyBot(1 методов),FakeSession(2 методов) Функции:_make_service,anyio_backendtests/services/test_payment_service_yookassa.py— Тесты для YooKassa-сценариев PaymentService. Классы:DummySession(1 методов) — Простейшая заглушка AsyncSession.,DummyLocalPayment(1 методов) — Объект, имитирующий локальную запись платежа.,StubYooKassaService(1 методов) — Заглушка для SDK, сохраняющая вызовы. Функции:anyio_backend— Запускаем async-тесты на asyncio, чтобы избежать зависимостей trio.,_make_servicetests/services/test_yookassa_service_adapter.py— Тесты низкоуровневого сервиса YooKassaService. Классы:DummyLoopФункции:anyio_backend,_prepare_config,test_init_without_credentials
tests/utils
tests/utils/__init__.py— Python-модуль Классы: нет Функции: нетtests/utils/test_formatters_basic.py— Тесты для базовых форматтеров из app.utils.formatters. Классы: нет Функции:test_format_datetime_handles_iso_strings— ISO-строка должна корректно преобразовываться в отформатированный текст.,test_format_date_uses_custom_format— Можно задавать собственный шаблон вывода.,test_format_time_ago_returns_human_readable_text— Разница во времени должна переводиться в человеко-понятную строку.,test_format_days_declension_handles_russian_rules— Склонение дней в русском языке зависит от числа.,test_format_duration_switches_units— В зависимости от длины интервала выбирается подходящая единица измерения.,test_format_bytes_scales_value— Размер должен выражаться в наиболее подходящей единице.,test_format_percentage_respects_precision— Проценты форматируются с нужным количеством знаков.,test_format_number_inserts_separators— Разделители тысяч должны расставляться корректно как для int, так и для float.,test_truncate_text_appends_suffix— Строки, превышающие лимит, должны обрезаться и дополняться суффиксом.,test_format_username_prefers_full_name— Полное имя имеет приоритет, затем username, затем ID.,test_format_subscription_status_handles_active_and_expired— Статус подписки различается для активных/просроченных случаев.,test_format_traffic_usage_supports_unlimited— При безлимитном тарифе в строке должна появляться бесконечность.,test_format_boolean_localises_output— Булевые значения отображаются локализованными словами.tests/utils/test_security.py— Тесты для функций безопасности из app.utils.security. Классы: нет Функции:test_hash_api_token_default_algorithm_matches_hashlib— Проверяем, что алгоритм по умолчанию совпадает с hashlib.sha256.,test_hash_api_token_accepts_supported_algorithms— Каждый поддерживаемый алгоритм должен выдавать корректный результат.,test_hash_api_token_rejects_unknown_algorithm— Некорректное имя алгоритма должно приводить к ValueError.,test_generate_api_token_respects_length_bounds— Функция должна ограничивать длину токена безопасным диапазоном.,test_generate_api_token_produces_random_values— Два последовательных вызова должны выдавать разные токены.tests/utils/test_validators_basic.py— Базовые тесты для валидаторов из app.utils.validators. Классы: нет Функции:test_validate_email_handles_expected_patterns— Проверяем типичные корректные и некорректные адреса.,test_validate_phone_strips_formatting_and_checks_pattern— Телефон должен соответствовать стандарту E.164 после очистки.,test_validate_telegram_username_enforces_length— Telegram-логин должен быть 5-32 символов и содержать допустимые символы.,test_validate_amount_returns_float_within_bounds— Числа должны конвертироваться с уважением к диапазону.,test_validate_positive_integer_enforces_upper_bound— Положительное целое число выходит за пределы — возвращаем None.,test_validate_traffic_amount_supports_units— Валидатор трафика распознаёт разные единицы измерения и особые значения.,test_validate_subscription_period_accepts_reasonable_range— Диапазон допустимой длительности от 1 до 3650 дней.,test_validate_uuid_detects_standard_format— UUID должен соответствовать HEX шаблону версии 4/5.,test_validate_url_recognises_https_links— Валидатор URL допускает http/https ссылки и отклоняет произвольные строки.,test_validate_html_tags_rejects_unknown_tags— Неизвестные HTML теги должны приводить к отказу.,test_validate_html_structure_detects_wrong_nesting— Неправильная вложенность тегов должна сообщаться пользователю.,test_fix_html_tags_repairs_missing_quotes— Автоисправление должно добавлять кавычки у ссылок.,test_validate_rules_content_detects_structure_error— При нарушении структуры должны вернуться сообщение и отсутствие подсказки.,test_validate_rules_content_accepts_supported_markup— Корректный HTML должен проходить проверку без сообщений.
migrations
migrations/alembic/
migrations/alembic
migrations/alembic/alembic.ini— файл (.ini)migrations/alembic/env.py— Python-модуль Классы: нет Функции:run_migrations_offline,do_run_migrations,run_migrations_onlinemigrations/alembic/versions/
migrations/alembic/versions
migrations/alembic/versions/1f5f3a3f5a4d_add_promo_groups_and_user_fk.py— add promo groups table and link users Классы: нет Функции:_table_exists,_column_exists,_index_exists,_foreign_key_exists,upgrade,downgrademigrations/alembic/versions/4b6b0f58c8f9_add_period_discounts_to_promo_groups.py— Python-модуль Классы: нет Функции:upgrade,downgrademigrations/alembic/versions/5d1f1f8b2e9a_add_advertising_campaigns.py— add advertising campaigns tables Классы: нет Функции:_table_exists,_index_exists,upgrade,downgrademigrations/alembic/versions/8fd1e338eb45_add_sent_notifications_table.py— add sent notifications table Классы: нет Функции:_table_exists,_unique_constraint_exists,upgrade,downgrade
docs
docs/miniapp-setup.md— файл (.md)docs/web-admin-integration.md— файл (.md)
miniapp
miniapp/app-config.json— файл (.json)miniapp/index.html— файл (.html)miniapp/redirect/
miniapp/redirect
miniapp/redirect/index.html— файл (.html)
assets
assets/bedolaga_app3.svg— файл (.svg)assets/logo2.svg— файл (.svg)
locales
locales/en.json— файл (.json)locales/ru.json— файл (.json)
data
data/backups/data/bot.db— файл (.db)
data/backups
logs
logs/bot.log— файл (.log)