tabsService
src/main/services/tabs.service.ts
Для чого це
Кожна анкета ТЮ живе у своєму BrowserWindow з ізольованою сесією. tabsService — це реєстр цих вікон і єдиний канал спілкування між main-процесом і вкладками. Без нього неможлива жодна взаємодія з сайтом.
Що робить
createChatTab({ id_api, password, PUBLIC_KEY })— створюєBrowserWindowз ізольованимpartition: temp:profile_${id_api}, відкриваєgoldenbride.net/chat, логінить анкету черезloginAndConnectgetTab(id_api)/getAllTabs()— доступ до віконsendMessageToTabAsync()— надсилає команду у вкладку через IPC, чекає відповідь (timeout 10 сек). При помилці — читає JSESSIONID з cookies для діагностикиsendMessageToTab()— fire-and-forget версія
Команди до вкладок (MainToTabCommand)
| Команда | Що робить |
|---|---|
Translate | Перекласти текст через сайт |
UploadMediaFile | Завантажити медіа в чат |
UploadMailMediaFile | Завантажити медіа в лист |
DeleteMediaFile | Видалити медіафайл |
SetAuthUserOnline | Встановити онлайн-статус |
GetLadyPaidChatMedia | Отримати платні медіа чату |
UniversalRPC | Виконати довільний RPC-запит |
Logout | Розлогінити вкладку |
Нюанси
- Ізольовані сесії
temp:profile_${id_api}— cookies однієї анкети не впливають на інші - При створенні вкладки — очищається вся попередня сесія (
clearStorageData,clearCache, cookies) - JSESSIONID перехоплення — дозволяється тільки з
/rlogin, всі інші Set-Cookie JSESSIONID — блокуються. Це захист від перезапису сесії сторонніми редіректами - При помилці
Bad status: 500— тригеритьсяhandleNeedRefreshPublicKey - Таймаут відповіді вкладки — 10 секунд, після чого помилка трекається в
errorMonitorService
Зв’язки
- Вкладки анкет: LadyRunner-Tab
- Помилки: errorMonitorService