Author Topic: Опять меняется протокол ICQ?  (Read 276652 times)

0 Members and 1 Guest are viewing this topic.

Offline dartraiden

Re: Опять меняется протокол ICQ?
« Reply #1110 on: 24 06 2023, 19:29:28 »
Quote
В крысе всегда номер уходит в офлайн через минуту, если свернуть оф клиент.
Я ещё разок гляну, но Гоша говорил, что официальный клиент через минуту после сворачивания присылает статус "я вышел в ОНЛАЙН". Собственно, почему Миранда и не показывает, что он ушел в оффлайн, т.к. от сервера пришло прямо противоположное...

Итого, мне нужно будет проверить:
- какие данные приходят в Миранду от свёрнутого десктопного оф. клиента
- какие данные приходят в крысу от свёрнутого десктопного оф. клиента
- если данные различаются, выяснить, почему так происходит
- если Миранда перестанет разрывать сессию при выходе, начнут ли другие Миранды видеть выключенную Миранду как выключенную (сейчас при выключении Миранды остальные Миранды видят её в онлайне до тех пор, пока эти остальные Миранды не передёрнут своё подключение)
« Last Edit: 24 06 2023, 19:33:31 by dartraiden »
 

Offline Mikanoshi

Re: Опять меняется протокол ICQ?
« Reply #1111 on: 24 06 2023, 20:01:57 »
Да, похоже раньше приходило другое, сейчас и в крысе в офлайн не выходит, событие такое:
Code: [Select]
{
          "type" : "presence",
          "eventData" : {
            "nick" : "Crackerz",
            "aimId" : "694631417",
            "displayId" : "694631417",
            "friendly" : "Номер Асечков",
            "onlineTime" : 0,
            "userType" : "icq",
            "iconId" : "000101103cdcb279dc09ceaaa1b97d3b38f677de",
            "lastseen" : 0
          },
          "seqNum" : 163250
        }
Точно такое же приходит при разлогинивании, так что номер всегда в сети.
Если запросить статус номера или перелогиниться, то у такого номера не будет приходить onlineTime в данных, так его можно приписать к офлайновым.
 

Offline dartraiden

Re: Опять меняется протокол ICQ?
« Reply #1112 on: 24 06 2023, 20:21:55 »
Интересно, почему мобильный оф. клиент (Android) посылает что-то другое... в итоге, он исправно уходит в оффлайн по неактивности.
Нужно учиться захватывать трафик с Android.
 

Offline Mikanoshi

Re: Опять меняется протокол ICQ?
« Reply #1113 on: 24 06 2023, 20:32:44 »
Не обязательно мобильную, есть веб версия, там тоже выходит) Запрашиваемая ссылка там такая:
https://u.icq.net/api/v92/bos/nbos-b013m/aim/fetchEvents?aimsid=xxx&rnd=1687638477.968304&seqNum=1311&timeout=30000&supportedSuggestTypes=text-smartreply,sticker-smartreply&bg=1&hidden=1

bg наверно и отвечает за постоянные отключения по неактивности, ибо в десктопном ссылка такая:
https://u.icq.net/api/v91/bos/nbos-b013m/aim/fetchEvents?aimsid=xxx&rnd=1687638703.630124&seqNum=1481&f=json&r=7&timeout=60000&peek=0&hidden=1&supportedSuggestTypes=text-smartreply,sticker-smartreply
 

Offline Mikanoshi

Re: Опять меняется протокол ICQ?
« Reply #1114 on: 25 06 2023, 00:17:08 »
Короче я протестировал крысу с веб оф клиентом, какая-то каша у них там на серверах)

Веб клиент после недолгого простоя прибавляет &bg=1&hidden=1 к ссылке, что переводит номер в инвиз, поэтому он и уходит в альт. клиентах в офлайн.

Если же разлогиниться, то приходит событие где lastseen=0 onlineTime=0 из которого ничего не ясно о статусе контакта.
При запросе presence этого уина приходит lastseen=0 onlineTime>0 и даже state=online, т.е. он однозначно в сети, и пока не переподключишься эти неверные данные продолжают приходить хоть через неделю после логаута.

Мало того, при создании сессии приходит список контактов где у всех подобных контактов, а также у всех кто реально онлайн, lastseen=0 onlineTime=0, так что опять статус неясен.
Только если запросить presence после релогина, то наконец приходит state=offline, lastseen>0
В крысе после получения КЛ запрашиваются капсы всех онлайн контактов, там приходит правильный lastseen и контакт наконец уходит в офлайн, при последующих переподключениях уже и сервер присылает КЛ с правильным lastseen.

Абсолютно никакой логики))
 
The following users thanked this post: dartraiden

Offline -SM-

Re: Опять меняется протокол ICQ?
« Reply #1115 on: 18 12 2023, 10:36:11 »
Давно в этой теме ничего не было....

Есть подозрение, что потихоньку меняется апи у аськи. Что происходит - оффлайн файлы глючат. Если в оф. клиенте можно открыть-сохранить оффлайн файл или сразу, или почти сразу, то в миранде зачастую только с какой-то недетской задержкой порядка минут и десятков минут. При этом ссылки на файл выходят разные, например:
у оф. клиента - начало ссылки такое (обрезано) - https://ub.icq.net/api/v92/files/get/Y6objunM1DrecSEHXTfS5vmTfSey
а у миранды в это же время - так же  обрезано  - https://ub.icq.net/api/v1.1/files/get/Y6objUFbij7nWGZPTJqSCbJJqSq0
при этом первая ссылка уже работает, а по второй прилетает 404.
Через какое-то, непонятно какое время, для миранды временная ссылка меняется. В данном случае ее начало стало https://ub.icq.net/api/v1.1/files/get/Y6objGLiuQQ11GpDJM2G0GOM2GR5, и по ней файл уже дают.

А есть возможность попытаться получить ссылку в /api/v92 ?
Оф. клиент запрашивает ее через запрос такого формата: https://u.icq.net/api/v92/files/info/0hqBK000IYSUSHGQUc1r2865801f711bg/?aimsid=026.0475288527.2786154709%3A300659245&previews=192%2C600%2C800%2Cxlarge
А миранда - через такой формат - https://u.icq.net/files/api/v1.1/info/09xkE000qfU57BSclxXetg657fee141bb/?aimsid=036.1570679608.3399382210%3A300659245&previews=192%2C600%2Cxlarge
примеры были для разных файлов, поэтому кучабуквицифр разная.

-------------
если попробовать взять свежую ссылку запроса инфо из нетлога миранды, вставить в браузер, и переделать ее в формат api/v92, сохранив aimsid, что был в нетлоге - "прокатывает":
« Last Edit: 18 12 2023, 10:45:11 by -SM- »
 
The following users thanked this post: Россарх, Boris_M

Offline -SM-

Re: Опять меняется протокол ICQ?
« Reply #1116 on: 21 12 2023, 08:12:26 »
.... что-то и в оф.клиенте просмотр файлов сломался. Видимо "дело не в бобине", может ддосят, может еще что.
 

Offline Mikanoshi

Re: Опять меняется протокол ICQ?
« Reply #1117 on: 25 12 2023, 17:54:23 »
Да вроде они пашут (или не пашут :) ) сразу обе, но с версией протокола v92 ссылки больше данных выдают, проверку антивирусом например. Откуда в миранде v1.1 хз, не видел такого в оф. клиенте, может старое)