3.9 KiB
Operation (logic layer) │ ├── handle_search_in_law(...) │ ├── دریافت ورودی خام │ ├── فراخوانی request_manager │ ├── ساخت خروجی منطقی (data) │ └── بدون وابستگی به بله │ └── return OperationResult
BaleBotCore (delivery / interface layer) │ ├── دریافت user ├── صدا زدن Operation ├── تبدیل خروجی به متن + دکمه └── ارسال به بله
Logic & Flow
Operation → منطق، پردازش، گرفتن دیتا، تصمیمگیری BaleBotCore → ورودی/خروجی، ارتباط با بله، فرمت پیام، دکمهها، مدیریت state کاربر
FlowChart
/
└── main.py
│ └── fast-api app
├── core
│ └── core.py
│ ├── class Formatter : فرمت دهی و مدیریت استایل ها و UI
│ ├── class RequestManager : درخواست ها و داده ها را از بک اند میگیرد در دو نوع async (chunk-chunk) و ساده
│ └── class ElasticHelper : مدیریت و ارتباط با الاستیک سرچ
├── router
│ └── bale
│ ├── bale.py
│ │ ├── func webhook : دریافت داده از بله
│ │ └── func initialize_webhook : شناساندن ربات به بله
│ ├── bale_handle.py
│ │ ├── class BaleBotBase : برای مدیریت پیام ها و دکمه ها و 3 url send, update, delet ارتباط با سرور بله
│ │ ├── class BaleBotUI : مدیریت پیام های موقتی
│ │ ├── class StackManager : مدیریت داده های کاربر در پشته یا stack
│ │ └── class BaleBotCore : ساختار ربات و انجام state ها
│ │ ├── func render_update : مسئول گرفتن داده از بله به دو صورت BaleStartMessage یا BaleCallbackQuery
│ │ ├── func render_user_state : وظیفه مدیریت و پاس دادن هر ورودی به بر اساس state به تابع موردنظر
│ │ ├── func handle_previous_message : دسترسی به پیام مرحله قبل (بزودی باید با stack هندل شود)
│ │ ├── func handle_main : صفحه اول - حذف کننده داده ها و ریست داده ها
│ │ ├── func handle_search_in_law :
│ │ ├── func handle_search_in_law_rules
│ │ ├── func handle_rule_making
│ │ ├── func handle_chat_in_law
│ │ ├── func handle_qanon_title_repeat
│ │ ├── func handle_logical_chat_in_law
│ │ ├── func handle_conflict_qanon_asasi
│ │ ├── func handle_conflict_law_writing_policy
│ │ ├── func handle_subject_unities_to_evalution
│ │ ├── func show_stack_data
│ │ ├── func handle_summary_conflict_all_qavanin
│ │ ├── func save_to_db
│ │ └──
input-flow
User-Input
↓
app → initialize_webhook → Bale-Server
↓
webhook
↓
BaleBotCore
└→ BaleBotBase
└→ BaleBotUI
└→ StackManager
└→ UserManager
└→ Operation
↑ ↓ ← →