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

0 Members and 8 Guests are viewing this topic.

Offline WAJIM

Re: Опять меняется протокол ICQ?
« Reply #870 on: 16 12 2019, 16:03:59 »
Последний билд перестал делать серыми [deleted] контакты, но сделал серым контакт "ICQ Official" и после перезапуска он удалился.  ;D

Мне вот интересно, эти [deleted] могут залогиниться и как-то вернуть себе нормальный статус? Или их окончательно удалили и оставили только затычки?
 

Offline dartraiden

Re: Опять меняется протокол ICQ?
« Reply #871 on: 16 12 2019, 16:05:19 »
Насчёт "ICQ Official" не подтверждаю, он на месте.

Поддержка ICQ утверждает, что аккаунты удаляются необратимо. Залогиниться нельзя, даже чтобы поменять телефон или почту. По запросу могут отвязать телефон, чтобы человек зарегистрировал новую учётку с этим номером (один такой случай мне известен, но не обещаю, что любой агент поддержки согласится).
« Last Edit: 16 12 2019, 20:38:38 by dartraiden »
 

Offline WAJIM

Re: Опять меняется протокол ICQ?
« Reply #872 on: 16 12 2019, 16:33:43 »
Такое ощущение, что контакта "ICQ Official" не было в ростере, да и фиг с ним, там реклама одна.

Вроде падения с DbEditorPP пропали.
« Last Edit: 16 12 2019, 16:36:33 by WAJIM »
 

Offline WAJIM

Re: Опять меняется протокол ICQ?
« Reply #873 on: 19 12 2019, 23:55:25 »
А вы в курсе, что если в окне настроек ICQ переключить любую галку, применить настройки и потом перезапустить Миранду, то пароль ICQ окажется сброшенным и его надо будет заново вводить?  :(
 

Offline dartraiden

Re: Опять меняется протокол ICQ?
« Reply #874 on: 19 12 2019, 23:56:15 »
Да, пока руки не доходят зарепортить. Что оно сбрасывается иногда само собой, я знал, не было времени узнать, от чего конкретно. Спасибо за алгоритм.
« Last Edit: 20 12 2019, 00:03:21 by dartraiden »
 

Offline IceHat

  • Newbie
  • *
  • Posts: 18
Re: Опять меняется протокол ICQ?
« Reply #875 on: 04 01 2020, 18:23:27 »
Понемногу переношу на dummy протокол [deleted] контакты через DB Editor.

Quote
Миранда подключается к серверу > от сервера прилетает инфа, что у контакта изменилось имя на [deleted] и что он больше не в серверном ростере > контакт получает ключ в базе, который принудительно оставляет его в локальном ростере > профит.
У меня возник вопрос касательно этой информации. По какому "имени" сейчас Миранда определяет, что контакт [deleted] и создает ему особый ключ IcqDeleted=1?

Просто во время работы в DB Editor вижу, что некоторые контакты имеют FirstName="[deleted]", Nick="[deleted]" и IcqDeleted=1. А некоторые контакты имеют только FirstName="[deleted]", Nick - указанный пользователем, но не имеют ключа IcqDeleted=1. Смущает эта ситуация.
« Last Edit: 04 01 2020, 18:26:32 by IceHat »
 

Offline dartraiden

Re: Опять меняется протокол ICQ?
« Reply #876 on: 05 01 2020, 17:38:47 »
Quote
Nick - указанный пользователем
Не совсем понятно, как это происходит, ведь значение ключа Nick (которое является отображаемым именем в клисте) у нас строго равно "FirstName"+" "+"LastName".

Удалённые аккаунты распознаются по специальному флагу  "deleted":true, который прилетает от сервера. Кроме того, у удалённого аккаунта FirstName всегда = [deleted] (по крайней мере, никто пока не прислал примера, доказывающего иное), а значит, Nick тоже, поскольку, как сказано выше, он конструируется программой. Поэтому, такие контакты для простоты зовутся [deleted]-контакты, поскольку если у контакта флажок "deleted":true, то и имя у него [deleted].

Quote
А некоторые контакты имеют только FirstName="[deleted]", Nick - указанный пользователем, но не имеют ключа IcqDeleted=1
Пример такого уина, пожалуйста. Может, там пользователь взял и сам себе поставил такое имя по приколу, а аккаунт никто и не удалял.
« Last Edit: 05 01 2020, 18:03:52 by dartraiden »
 

Offline dartraiden

Re: Опять меняется протокол ICQ?
« Reply #877 on: 05 01 2020, 17:57:53 »
Если у контактна назначено имя руками, то в списке контактов он не станет как [deleted] и без серости невозможно понять, есть контакт в ростере или нет.
Tipper должен уметь извлекать из базы значение любого ключа. Например, ключа IcqDeleted. Соответственно, через говносинтаксис Variables (?if) можно попытаться прикрутить в подсказку вывод сведений о том, что контакт удалён .
« Last Edit: 05 01 2020, 18:04:26 by dartraiden »
 

Offline dartraiden

Re: Опять меняется протокол ICQ?
« Reply #878 on: 05 01 2020, 18:10:48 »
А некоторые контакты имеют только FirstName="[deleted]", Nick - указанный пользователем, но не имеют ключа IcqDeleted=1. Смущает эта ситуация.
Может, по какой-то причине в Nick залипло какое-то гуано со старого протокола...
Можно попробовать убить Nick и перезапуститься. Но это не объясняет того, почему контакт не получает IcqDeleted.
 

Offline IceHat

  • Newbie
  • *
  • Posts: 18
Re: Опять меняется протокол ICQ?
« Reply #879 on: 06 01 2020, 13:39:26 »
Quote
Пример такого уина, пожалуйста. Может, там пользователь взял и сам себе поставил такое имя по приколу, а аккаунт никто и не удалял.
У меня таких пользователей достаточно много. Вот некоторые: 646130706, 671070858, 679147480


Quote
Можно попробовать убить Nick и перезапуститься. Но это не объясняет того, почему контакт не получает IcqDeleted.
Попробовал так сделать с одним из UIN указанных выше. Удалил параметр Nick в ветке протокола через DB Editor. Перезапустил Миранду. Она либо подтянула Nick с сервера, либо скопировала из параметра MyHandle модуля CList (может дело в этом?). Ключ Nick снова появился, а флаг IcqDelete=1 нет. Вот и непонятно, удален такой контакт на сервере или нет.
 

Offline dartraiden

Re: Опять меняется протокол ICQ?
« Reply #880 on: 06 01 2020, 13:56:20 »
Она либо подтянула Nick с сервера
Исключено, Nick вычисляется по указанной выше формуле.

либо скопировала из параметра MyHandle модуля CList
Тоже исключено, протокол ничего про MyHandle не знает. MyHandle это ключ, создаваемый и используемый клистом (он и находится в секции клиста).

Я добавил 646130706, он сразу получил IcqDeleted и Nick = [deleted]. Затем я создал MyHandle = 123, удалил Nick и IcqDeleted, и перезапустился. Nick снова стал [deleted] и создался ключ IcqDeleted (от сервера прилетел флаг deleted:true). Почему у вас иное поведение - загадка...

Попробуйте через редактор базы экспортировать проблемный контакт в ini целиком. А я попробую втащить это себе. Кроме того, какая версия: стабильная или в разработке?

Ещё можно после удаления Nick включить запись нетлога аська и перезапуститься, а затем поискать в логе проблемный UIN и убедиться, что deleted:true от сервера прилетает. А вот почему Миранда его не обрабатывает именно у вас - сложно сказать.
« Last Edit: 06 01 2020, 14:08:26 by dartraiden »
 

Offline dartraiden

Re: Опять меняется протокол ICQ?
« Reply #881 on: 09 01 2020, 09:09:10 »
Разобрались: почему-то для этого контакта не приходит от сервера флажок о том, что он удалён. Вероятно, придётся вернутся от анализа флажка к анализу имени, как уже было ранее (и кому-то тут в топике, помню это было не по душе, но другого варианта, похоже, теперь нет).
 
The following users thanked this post: IceHat

Offline IceHat

  • Newbie
  • *
  • Posts: 18
Re: Опять меняется протокол ICQ?
« Reply #882 on: 09 01 2020, 16:38:44 »

Рад, что это прояснилось. Значит это
Quote
у удалённого аккаунта FirstName всегда = [deleted]
остается основным показателем того, что контакту на сервере ICQ точно капут, и его можно без сомнений переводить на протокол Dummy даже без флага IcqDeleted=1? Я пока такие контакты не трогал. Понимаю, что кто-то ради прикола может прописать себе в имя "[deleted]", но этот крайне частный случай, который не столь важен.
 

Offline dartraiden

Re: Опять меняется протокол ICQ?
« Reply #883 on: 09 01 2020, 17:18:52 »
Получается, что да. Ну и если такой контакт удалить и добавить с нуля, то от сервера сразу же прилетает всё, что надо. Проблема возникает только с некоторыми контактами, которые уже добавлены.
 

Offline dartraiden

Re: Опять меняется протокол ICQ?
« Reply #884 on: 10 01 2020, 18:44:51 »
В ночник прилетел фикс для [deleted] (теперь Миранда смотрит на имя контакта, так что если какой-то шутник установит себе такое имя, он получит ключ IcqDeleted=1, что, впрочем, ничем ему не грозит).

Также исправлено затирание пароля в базе, которое иногда случалось.