Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Сделать "Мягкое игнорирование" - так сказать, полуигнор. #4106

Open
SM-Sergey opened this issue Jan 7, 2024 · 11 comments

Comments

@SM-Sergey
Copy link

SM-Sergey commented Jan 7, 2024

Текущие проблемы с редактированием групп и настройкой инвизов-игноров навеяли вот такую идею...

Сейчас оно как работает: Ставлю некую группу контактов, не связанных с работой, в полный игнор, чтобы не мешали работе. Потом, когда появилось свободное время, убираю с них игнор, и делаю им всем по очереди Load Server History, и смотрю, писал ли кто-то мне что-то в то время, когда было не до них. Оно работает, но это не очень удобно, особенно когда контактов, которые уводились в игнор, например сотня, умумукиваешься Load History делать.

Предложение: сделать некий "soft ignore". Аналогично, уходя в работу, ставлю группу контактов в "полуигнор". При этом, если полуигнор установлен для контакта, при приходе с сервера чего либо от этого контакта, оно принимается и записывается в базу. Автозагрузка файлов также работает. НО! При этом не возникает никаких уведомлений о сообщениях и файлах, и не всплывают и не самооткрываются окна/закладки с журналом. То есть, все происходит втихаря, как будто ничего не происходит. Ну, за исключением случая, если лог этого контакта и так открыт мной - тогда, конечно же, я все вижу сразу и могу ответить. Соответственно, все пришедшее и невиденное не помечается прочитанным. Затем, когда такой "полуигнор" сняли - все резко вываливается, если что-то пришло, то появляется, всплывает, уведомляет, и я резко все вижу, что там где было, пока я был занят, из того, что я сам до этого не открывал и не смотрел.

Можно такое реализовать? Если да, то вот, запрос на фичу.

@SM-Sergey
Copy link
Author

И да, это на сегодня даже поддержано сервером ICQ, и оф. клиентом. Там это называется "тихий режим" - при его включении у контакта появляется поле "mute":1280. Я не знаю, что означает эта цифра, но вот так. При снятии "тихого режима" - поле "mute" пропадает совсем.
Но в оф. клиенте оно недореализовано - если снять их "тихий режим" с контакта, то он не всплывет и не уведомит, если там была активность, пока он был "тихим", а это вот прямо очень нужно, особенно если по группам их массово делать тихими и снимать тихость, как это предполагается. В остальном - он работает именно так, как было описано выше.

Так что, видимо стоит переименовать "мягкое игнорирование" в "тихий режим" (Mute).

@SM-Sergey
Copy link
Author

SM-Sergey commented Jan 8, 2024

А, да - переключается этот режим через GET https://u.icq.net/api/v92/wim/buddylist/Mute?buddy=<UIN>&eternal=<X>&f=json&aimsid=<AIMSID>&r=<REQ_ID>

где X = 1 для включения тихого режима, и 0 для его выключения. Соответственно, после исполнения этого запроса всем подключенным клиентам прилетит уведомление об изменении "тихого режима" для контакта UIN

@georgehazan
Copy link
Member

у контакта появляется поле "mute":1280. Я не знаю, что означает эта цифра, но вот так.

Учитывая, что 1280 == 0x500, это два каких-то бита. Каких - неизвестно.

@SM-Sergey
Copy link
Author

SM-Sergey commented Jan 9, 2024

Если что-то дальше прояснится (в дизассемблированном в IDA Pro коде оф. клиента винды) - допишу. Пока еще не нашел, обрабатывается там это как-то, кроме "есть/нет" или нет.

Там, в этом коде, кстати, вообще много интересного есть. Например, в запрос presence/setState в view можно передавать не только online/offline, а еще "occupied" и "away", а также при "online" можно дать "invisible=1". И сервер это реально принимает (при том, что на иное - ругается - то есть не игнорит, по крайней мере проверяет). Что намекает на наличие еще пары статусов и инвиза. Но что это и зачем - остатки былой роскоши, или их планы на будущее, или еще что, пока тоже непонятно. Также, там присутствует вся инфраструктура работы с серверными группами, но "на морду" не вытащена.

@SUGHuser
Copy link

Эти статусы это пережиток прошлого ) пока зачем-то для совестимости ) хотя с чем ? Вот в чём вопрос... я ещё раньше замечал (когда оно работало в QIP-е) что у ICQ было реальных только два статуса , Online и Offline ) всё промежуточное трактовалось как Online )

@SM-Sergey
Copy link
Author

SM-Sergey commented Feb 26, 2024

Не надо путать мух с котлетами. Это "mute" это не статус, а свойство контакта, хранящееся на сервере, и доступное клиентам с целью управления "тихим режимом" на них. И это работает во всех видах оф. клиентов прямо сейчас.

А "невидимость" уже реализована в миранде и работает ровно так же, как она работает сейчас на смартфонских клиентах - уходит в "оффлайн" по таймауту, на самом деле сидя в онлайне и принимая все сообщения.

@SUGHuser
Copy link

SUGHuser commented Feb 26, 2024

Это так же как в MailAgent и в Telegram ) , я понял о чём вы сказали ) , а вот occupied / away и подобное - это то что я говорил вам выше , некий костыль по совместимости )
Раньше например occupied (занят) приводило к тому же к чему не беспокоить ) то есть сообщения приходили , только вам не выдавались всплывахи и звуки от прихода сообщений )

@SM-Sergey
Copy link
Author

SM-Sergey commented Feb 26, 2024

А про occupied/away - ну есть надежда, что нам когда нибудь это вернут, раз на сервере оно есть. Реально очень-очень нехватает этой функциональности, менять статусы. Но это к теме тикета это не относится, тут про реализацию "тихого режим" - "mute". И, вообще, это от нас не зависит...

@SUGHuser
Copy link

SUGHuser commented Feb 26, 2024

Вообще этот режим реально хотелось бы иметь ) , причём было бы не плохо ещё выбирать как его включить , на конкретный контакт , или группу , или на конкретное событие ) ещё было бы не плохо чтоб те контакты которые помещены в тихий режим помечались отдельным конвертиком с зачёркнутым динамиком ) то есть... к вам обычно приходят уведомляшки и в трее вы видите мигающий конвертик и вы понимаете что тыкнув на него - вы видите сообщение от контакта , а вот для контактов в тихом режиме , жилательно чтоб появлялся ещё один конвертик с сообщением на котором перечёркнут динамик и который не мигал бы , а просто показывал бы количество не прочитанных сообщений ) и вот если вы наводите на него , то открывать сообщения последовательно начиная с первого )

@SM-Sergey
Copy link
Author

Только вот не надо городить непонятного и нового. Имеется удобная настройка игнорирования, просто в ней надо добавить еще один вид игнора. Там и так можно включать режимы игнора и для групп контактов, и для отдельных контактов. А вот игнор событий - это другое, к тихому режиму отношения не имеет, и давно там же работает. Тихий же режим по отдельным событиям - ИМХО жесткое излишество, и сервером не поддерживается, на сервере только один флаг вроде как есть.

Насчет "как это должно выглядить" - лично мне надо, чтобы в тихом режиме для этого контакта ничего нигде не появлялось совсем, не мигало, не возникало, и никак не раздражало. Как будто ничего не произошло. Именно для этого тихий режим и нужен в принципе. А вот как только я его сниму с группы контактов или с контакта - все уведомляшки должны возникнуть, если где-то что-то новое появилось за время тихого режима. Но тут есть команда разработчиков со своим видением, как и что должно работать.

@SUGHuser
Copy link

Можно и так ) только тогда включение мягкого игнора надо сделать не залазанием в настройки , а чем-то типа кнопки поиска контактов )

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants