service intervals

ManOnlineService

ManOnlineService

src/main/lady/interval-services/man-online.service.ts

Per-анкета. Зчитує список онлайн чоловіків і стан стріму з таби браузера. Головне джерело даних про онлайн для всіх інших сервісів.


Інтервал

15 секунд


Логіка

  1. Кожні 5 хвилин (або при першому запуску) → getMenInfo() → завантажує профілі онлайн чоловіків, оновлює manService.profiles
  2. tabsService.sendMessageToTabAsync({ type: GetOnline }) → таба повертає:
    • online[] — ID онлайн чоловіків
    • hasStream[] — ID чоловіків зі стрімом
    • camStatus — чи анкета зараз стрімить
  3. Оновлює menOnline і manWithStream сети

Стрім трекінг

При зміні camStatus:

  • false → truestreamTrackingService.startStream(ladyId_api)
  • true → truestreamTrackingService.updateStream(ladyId_api) (оновлює stop time)
  • true → falsestreamTrackingService.stopStream(ladyId_api, now)

Після кожного оновлення

  • taskFactory.checkCloseTasksOnOfflineMen() — закриває таски для чоловіків що пішли офлайн
  • manService.updateOnline(menOnline) — оновлює lastOnline в профілях

API

  • manIsOnline(manId_api)boolean — чи чоловік онлайн зараз
  • manHasStream(manId_api)boolean — чи є активний стрім

Зв’язки