ManOnlineService
src/main/lady/interval-services/man-online.service.ts
Per-анкета. Зчитує список онлайн чоловіків і стан стріму з таби браузера. Головне джерело даних про онлайн для всіх інших сервісів.
Інтервал
15 секунд
Логіка
- Кожні 5 хвилин (або при першому запуску) →
getMenInfo()→ завантажує профілі онлайн чоловіків, оновлюєmanService.profiles tabsService.sendMessageToTabAsync({ type: GetOnline })→ таба повертає:online[]— ID онлайн чоловіківhasStream[]— ID чоловіків зі стрімомcamStatus— чи анкета зараз стрімить
- Оновлює
menOnlineіmanWithStreamсети
Стрім трекінг
При зміні camStatus:
false → true→streamTrackingService.startStream(ladyId_api)true → true→streamTrackingService.updateStream(ladyId_api)(оновлює stop time)true → false→streamTrackingService.stopStream(ladyId_api, now)
Після кожного оновлення
taskFactory.checkCloseTasksOnOfflineMen()— закриває таски для чоловіків що пішли офлайнmanService.updateOnline(menOnline)— оновлюєlastOnlineв профілях
API
manIsOnline(manId_api)→boolean— чи чоловік онлайн заразmanHasStream(manId_api)→boolean— чи є активний стрім
Зв’язки
- Оновлює профілі: ManService
- Трекінг стріму: StreamTrackingService
- Закриває таски: Tasks
- Дані онлайну читає: FavoriteService, ChatSender