Docs GitHub
-- --
Theme:
Language:
EN فا

رابط کاربری#

رابط ترمینالی bgscan با BubbleTea v2 و Lipgloss ساخته شده است. پایهٔ کار یک درخت کامپوننت است؛ صفحه‌ها در Stack قرار می‌گیرند و Dialogها روی صفحهٔ فعلی می‌آیند.

بخش‌های اصلی#

پکیجکار
ui/main/appمدل اصلی و ماشین مرحله‌ها: Splash → Startup → Workspace
ui/main/splashصفحهٔ Splash با انیمیشن لوگو و نمایش نسخه
ui/main/startupبررسی‌های اولیه: لاگر، Config، Xray، DNSTT، Slipstream، VayDNS و وضعیت برنامه
ui/main/workspaceWorkspace اصلی؛ Header، Body و Footer را نگه می‌دارد
ui/main/bodyنگه‌داری Stack صفحه‌ها داخل Workspace
ui/components/basicWidgetهایی مثل input، table، menu، dialog، crud و progress
ui/components/formفرم‌های Config تونل DNS: dnstt، slipstream و vaydns
ui/components/inspectorفرم تنظیمات پروتکل‌ها
ui/components/menusمنوهای اصلی، اسکن، لاگ، تونل DNS و تنظیمات
ui/components/tablesجدول IP list، Outbound، تونل DNS، نتیجه و IP viewer
ui/components/scannerصفحهٔ اسکن زنده
ui/sharedLayout، Dialog، کلیدها و قرارداد Component
ui/themeتم روشن، تیره و خودکار + آداپتر فرم huh

Componentها#

هر صفحه و Widget رابط Component را پیاده می‌کند: ID، Name، Init، Update، View، OnClose و Mode.

مدل اصلی AppState را نگه می‌دارد؛ AppState شامل Layout، Config و Store است. کامپوننت‌ها تنظیمات را از Config می‌خوانند و با Store ذخیره می‌کنند. تنظیمات Global نداریم.

سه مرحلهٔ برنامه#

برنامه از سه مرحله می‌گذرد:

مرحلهکامپوننتکار
Splashsplashانیمیشن لوگوی ASCII و نمایش نسخه
Startupstartupاجرای بررسی‌های اولیه به‌ترتیب (لاگر → Config → Xray → DNSTT → Slipstream → VayDNS → App)؛ هر قدم در نوار کناری نشان داده می‌شود و بعد از پاس‌شدن همه، با Enter مرحلهٔ بعد شروع می‌شود
Workspaceworkspaceصفحهٔ اصلی برنامه با Header، Body (Stack صفحه‌ها)، Footer و Dialogها

Config در همین مرحلهٔ Startup بارگذاری و Validate می‌شود و بعد از آن برای همهٔ کامپوننت‌ها در AppState در دسترس است.

حرکت بین صفحه‌ها#

Body یک Stack است و فقط صفحهٔ بالایی پیام می‌گیرد. بازکردن صفحه، آن را Push می‌کند؛ Back یا CloseComponentMsg آن را Pop می‌کند. ResetComponentStacksMsg شما را به منوی اصلی برمی‌گرداند.

Dialogها هم Stack دارند. اگر Dialog باز باشد، فقط Dialog بالایی ورودی را می‌گیرد.

حالتBackQuit
NormalModeb، Backspace، Escq، ctrl+c
InputModeEscctrl+c
ScanModeنداردctrl+c

اسکن زنده و تنظیمات#

برای هر Stage یک Tab ساخته می‌شود. هر Tab Progress bar و جدول نتیجهٔ زنده دارد. وضعیت Stageها از Waiting به PreProcess، Scanning و بعد Ended یا Error می‌رسد. در زمان اسکن Pause، Resume، Stop و جابه‌جایی Tab در دسترس است.

Inspector قبل از ذخیره، تغییر را روی یک کپی اعمال و Validate می‌کند. اگر مقدار غلط باشد، نه Config و نه فایل روی دیسک تغییر نمی‌کند. گزینه‌های پویا مثل TLS فقط با انتخاب HTTPS نشان داده می‌شوند و فیلدهای مخصوص هر پروتکل تونل فقط در فرم همان پروتکل ظاهر می‌شوند.

مدیریت Configهای تونل DNS هم در همین رابط انجام می‌شود: جدول Main Menu → DNS Tunneling همهٔ تونل‌های ذخیره‌شده را نشان می‌دهد و با کلیدهای a، r و x می‌توانید Config اضافه، تغییر نام یا حذف کنید. با Enter هم Config انتخابی ویرایش می‌شود یا اسکن تونل با آن شروع می‌گردد.