How tranduon/zascrape2fb works
Sale Room Agent tự động nhận tin phòng từ Zalo, gom thành listing, dùng Gemini để phân loại và trích xuất dữ liệu, lưu trạng thái trong MongoDB, rồi soạn nhiều biến thể và xếp job đăng lên các group Facebook. Telegram hỗ trợ duyệt/sửa/thử lại và điều khiển cầu dao; scheduler, health endpoint và maintenance vận hành nền. Các mũi tên phản ánh luồng được README hoặc các excerpt xác nhận; một số liên kết của module chưa được lấy mẫu nên không vẽ.
Components 27
Zalo Intake
- Zalo Client
src/zalo/zaloClient.ts - Reconnect Manager
src/zalo/reconnectManager.ts - Message Listener
src/zalo/messageListener.ts - Message Batcher
src/zalo/messageBatcher.ts - Media Downloader
src/zalo/mediaDownloader.ts
Listing Understanding
- Extraction Worker
src/jobs/extractionWorker.ts - Listing Extractor
src/llm/extractor.ts - Confidence Gate
src/llm/confidenceGate.ts
Publishing Pipeline
- Composer Worker
src/jobs/composerWorker.ts - Post Composer
src/llm/composer.ts - Job Queue
src/jobs/jobQueue.ts - Posting Worker
src/jobs/postingWorker.ts - Facebook Poster
src/facebook/fbPoster.ts
Operations Control
- Telegram Bot
src/notifier/telegramBot.ts - Review Flow
src/review/reviewFlow.ts - Cron Runner
src/scheduler/cronRunner.ts - Maintenance Jobs
src/maintenance/cronJobs.ts - Health Server
src/health/healthServer.ts - Application Entry
src/index.ts
Persistence
- Collection Access
src/db/collections.ts
Other components
- Operator
- Zalo
- Gemini API
- Telegram
- HTTP Client
- MongoDB
Connections 38
- Zalo → Zalo Client: authenticates
- Reconnect Manager → Zalo Client: reconnects
- Reconnect Manager → Message Listener: attaches
- Zalo → Message Listener: sends messages
- Message Listener → Message Batcher: batches messages
- Message Batcher → Media Downloader: downloads media
- Message Batcher → Collection Access: stores listings
- Collection Access → MongoDB: reads/writes
- Extraction Worker → Collection Access: loads listings
- Extraction Worker → Listing Extractor: extracts fields
- Listing Extractor → Gemini API: calls model
- Extraction Worker → Confidence Gate: checks confidence
- Extraction Worker → Collection Access: updates status
- Extraction Worker → Job Queue: enqueues composing
- Composer Worker → Job Queue: claims jobs
- Composer Worker → Collection Access: reads groups
- Composer Worker → Post Composer: generates variants
- Post Composer → Gemini API: calls model
- Composer Worker → Job Queue: enqueues posts
- Cron Runner → Posting Worker: drives posting
- Posting Worker → Job Queue: claims jobs
- Posting Worker → Facebook Poster: posts content
- Facebook Poster → Facebook: publishes posts
- Posting Worker → Collection Access: records history
- Telegram → Telegram Bot: receives commands
- Telegram Bot → Review Flow: dispatches actions
- Review Flow → Collection Access: updates listings
- Review Flow → Job Queue: queues review
- Review Flow → Composer Worker: requests recompose
- Operator → Telegram: controls agent
- Cron Runner → Maintenance Jobs: runs cleanup
- HTTP Client → Health Server: requests health
- Health Server → Collection Access: reads state
- Application Entry → Reconnect Manager: starts intake
- Application Entry → Extraction Worker: starts worker
- Application Entry → Composer Worker: starts worker
- Application Entry → Cron Runner: starts scheduler
- Application Entry → Health Server: starts endpoint