/var/log/life.log
Блог программиста из солнечной Бурятии

Psi уведомления о новых письмах в Gmail

Некоторая часть моих контактов в jabber использует gtalk. Мне стало интересно, “почему?”. Я его попробовал, мне он не особо понравился, в том смысле, что там нет поддержки конференций, нельзя использовать “негугл” аккаунт, и linux версия отсутствует. Аргументами были то, что есть уведомления о новых письмах, и голосовое общение, да и некоторым просто нравится как он выглядит :). Мне подумалось, “так и в psi всё это есть”. Подключив в качестве jabber аккаунта свой гугловский, был удивлён отсутствием уведомлений о новых письмах, хотя явно помнил, что получал их. Оказалось что я получал их из-за того что пользовался транспортом j2j. А в самой psi поддержка этого расширения протокола не поддерживается.
Я давно хотел потрогать плагины в psi, но как то даже не мог придумать, чего такого можно с их помощью сделать, да и зачем. Оказалось, что через предоставляемое API достаточно легко реализовать базовый функционал расширения протокола. Гугл выдал ссылку на описание jep : Gmail Notifications . В описании есть маленькая неточность, но это не страшно. Хуже другое: гугл так же шлёт url на пришедшее письмо, но этот url не полный, и если перейти по этому url, gmail создаст ещё одно окно со списком всех сообщений, а нужное сообщение так и не откроет. В url не хватает параметра zx, который как я понял, можно получить зная версию js движка на gmail, а её можно узнать только если залогинится через веб, что не есть хорошо, и поэтому в плагине реализован переход на http://mail.google.com/mail . Если кто знает, куда надо написать, чтобы они починили это, прошу сообщить мне. А так же сервер отказался воспринимать параметр newer-than-time отдельно, без newer-than-tid.
Пока писал пост, переделал плагин :) В результате получилось практически тоже самое, что и через j2j транспорт. В джуике пришёл вопрос: а зачем оно надо если j2j есть? Как минимум это надо для того, чтобы не давать свой пароль от email стороннему сервису.

Архив
upd:Плагин теперь идёт вместе с установкой psi+