Miranda NG Official Community Forum

Miranda NG русскоязычный форум => Общие разговоры о Miranda NG => Topic started by: BadBlock on 19 03 2019, 01:14:35

Title: VK: запросы авторизации
Post by: BadBlock on 19 03 2019, 01:14:35
Надоедливая проблема с сабжами.

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

В итоге сегодня встал с утра - иконка в таскбаре мигает. Жму - запрос авторизации от контакта XXX. Жму "Решить позже".
Но иконка мигает всё равно. Жму на неё опять — ещё один запрос авторизации от этого же контакта. Жму "Решить позже".
И так несколько раз.
Сложилось впечатление, что запросы выстроились в очередь на показ юзеру.

Если я прав, то нельзя ли перед тем, как ставить запрос авторизации в очередь, сначала проверять, нет ли уже в очереди запроса от этого контакта?
И если уже есть, то игнорировать запрос.
Title: Re: VK: запросы авторизации
Post by: Elzor on 19 03 2019, 05:16:36
BadBlock, не так.
Плагин отслеживает, был ли запрос авторизации от контакта, и если запрос был, нового не показывает до вашего следующего выхода в онлайн. Кнопка "Напомнить позже" вообще с точки зрения плагина ничего не делает - это просто способ выйти из диалога авторизации, не запустив при этом процедуру добавления контакта в друзья или отказа от добавления. Выглядит это следующим образом: прилетел запрос на добавление, плагин его обработал, и запихнул событие запроса авторизации в базу. При этом уже сама миранда в трей пихнет соответствующую иконку, при нажатии на которую вылезет окно с визуализацией запроса авторизации. Важный момент тут в том, что плагин не отслеживает (и не должен), что там дальше с запросом в миранде происходит, у него какая-то информация о дальнейшей судьбе запроса появляется только когда пользователь нажал "Добавить" или "Отказать". Ваша беда в том, что пока вас нет возле компьютера, протокол несколько раз гуляет в оффлайн-онлайн (скорее всего из-за нестабильной связи или еще почему), и при каждом выходе в онлайн протокол "напоминает" о нерешенном запросе на добавление. При этом он знать не знает, что с прошлым запросом стало - ответили ли "Подождать" или не успели ответить. Конечно, можно продолжать игнорировать запрос и при выходе в онлайн, но тогда не понятно, когда напоминать если было нажато "Напомнить позже".
Как вариант, можно при каждом онлайне пытаться искать в очереди событий контактлиста событие запроса авторизации (грубо говоря мигающую иконку), но это очень замороченный способ и не слишком надежный - оно того не стоит.
Title: Re: VK: запросы авторизации
Post by: BadBlock on 19 03 2019, 05:38:20
Именно так, ночью провайдер проводил плановые работы на оборудовании, онлайн/оффлайн скорее всего гулял туда-сюда.

Quote
Важный момент тут в том, что плагин не отслеживает (и не должен), что там дальше с запросом в миранде происходит, у него какая-то информация о дальнейшей судьбе запроса появляется только когда пользователь нажал "Добавить" или "Отказать".

Понял... А что если заменить кнопку "Напомнить позже" на "Игнорировать", и в дальнейшем игнорировал запросы с сервера по этому контакту?
Добавить контакт потом всегда можно, если надо, в веб-интерфейсе, он там будет болтаться в списке ожидающих, его будет видно.
Или такое невозможно?
Я просто в принципе не вижу смысла каждый раз при входе в в онлайн показывать запрос об авторизации от одного и того же контакта.
Title: Re: VK: запросы авторизации
Post by: Elzor on 20 03 2019, 03:41:07
Понял... А что если заменить кнопку "Напомнить позже" на "Игнорировать", и в дальнейшем игнорировал запросы с сервера по этому контакту?
Протокол не может добавить/заменить в окне авторизации кнопку - оно не его. А вносить такие изменения в ядро из-за одного протокола никто не будет. Кроме того, если активирована настройка "Добавлять в список контактов только друзей", то таких заигноренных придется добавлять в контактлист, чтобы знать, что они заигнорены. %)

Я просто в принципе не вижу смысла каждый раз при входе в онлайн показывать запрос об авторизации от одного и того же контакта.
Что, никогда не бывает, что прилетит запрос авторизации и вот прямо сейчас нет времени посмотреть, что за человек и надо ли его в друзья? Кроме того, если было запущено более одной миранды (как часто у меня бывает) и прилетит запрос на ненужную дружбу, то отказывать надо только в одной, а во второй нажимать "Решить позже", потому что ловить, что в дружбе уже отказано довольно хлопотно, а второй отказ вызовет сброс токена (на такую ситуацию сервер отвечает ошибкой "отказано в доступе" точно так же, как в некоторых ситуациях, когда требуется обновить токен).
Показывать при каждом онлайне было выбрано еще и потому, что при выставленной настройке "Добавлять в список контактов только друзей" при онлайне идет отчистка списка от всего того, что не друзья, не группы и не чаты, а после такой очистки не понятно уже новый запрос или старый и все равно его показывать.
Title: Re: VK: запросы авторизации
Post by: BadBlock on 20 03 2019, 03:50:57
Ууу, как всё непросто. :)