TaskChatService
src/main/lady/interval-services/task-chat.service.ts
Per-анкета. Кожні 60 секунд перевіряє чат-активність активних фаворитів і генерує таски.
Інтервал
60 секунд
Умови виконання
Пропускає ітерацію якщо:
!isActive— LadyRunner зупинений!networkService.isConnected()— немає мережіactivityService.sleepModeActive()— Sleep Mode активний
Кандидати
Беруться активні фаворити (isActiveFavorite = true) що:
- Онлайн (
manOnlineService.manIsOnline) - Не заблоковані TU (
!blockedByTU)
Для кожного чоловіка
officialApiService.chatHistory() → останні повідомлення, без CLOSE_CHAT.
Умова NeedToWriteMessage (треба написати):
- Останнє повідомлення від чоловіка (
direction = false) - Пройшло більше 10 хвилин з моменту повідомлення
- Фаворит ще активний
- Чоловік не в whitelist
lastSendService.chatIsReadyToSend()— не надсилали нещодавно
Умова UnansweredMessage (не відповіли):
- Останнє повідомлення від анкети (
direction = true) lastSendService.chatIsReadyToSend()— ok
Між перевірками
500 мс затримка між чоловіками — щоб не флудити API.
Перериває цикл якщо !isActive або Sleep Mode ввімкнувся.