>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Разработка http://forum.mozilla-russia.org/viewforum.php?id=18 >Помогите исправить скрипт для yandex.ru под WebMail Notifier http://forum.mozilla-russia.org/viewtopic.php?id=26529 |
Evialroot > 22-09-2008 04:46:50 |
Здравствуйте. Я переделал скрипт для mail.ru. Работающий скрипт имеет вид: function initHandler(handler){ handler.name="mailru"; handler.getData=function(aData){ //aData is a html source in dataURL Но для Яндекса по такой же аналогии скрипт не проверяет количество писем на почтовом ящике: function initHandler(handler){ handler.name="yandexru"; handler.getData=function(aData){ //aData is a html source in dataURL Подскажите пожалуйста, что я сделал не так? :-) |
Shutnik > 22-09-2008 09:54:43 |
кто вам сказал, что при простом изменении домена этот скрипт будет работать? он выдирает количество новых сообщений прямо со страницы почты, к тому же, система авторизации на яндексе устроена совсем иначе. |
Evialroot > 22-09-2008 10:07:56 |
Неработающий скрипт как бы и так предполагает, что простое изменение домена не помогло. Это даже мне, ни разу не скриптостроителю, ясно. Буду прям: как поправить скрипт для майла, чтобы он работал под яндексом? |
Evialroot > 22-09-2008 12:53:42 |
Вроде как этот вариант более правильный, а всё равно нет уведомлений о приходе писем: function initHandler(handler){ handler.name="yandexru"; handler.getData=function(aData){ //aData is a html source in dataURL |
Forest > 22-09-2008 14:36:41 |
При нахождении в папке Входящие (а логин автоматом туда приводит) эту информацию можно взять из заголовка таба и окна |
Evialroot > 22-09-2008 14:50:44 |
Никто не спорит :-) Но как всё-таки должен выглядеть скрипт? Неужели никто не переписывал его под Яндекс? |
dishlo > 03-10-2008 10:25:29 |
Находит непрочитанные сообщения по шабону, типа "(<b>2323</b>)". Выделить код Код:function initHandler(handler) { handler.name = 'yandex'; handler.dataURL = 'http://mail.ya.ru/'; handler.mailURL = 'http://mail.ya.ru/'; handler.loginData = ['https://passport.yandex.ru/passport?mode=auth', 'login', 'passwd', 'retpath=http://mail.yandex.ru/']; handler.getData = function(aData) { try { var str = aData.match(/">\(<b>\d+<\/b>\)/); if(str) { return String(str).match(/\d+/); } return 0; } catch(err) { return 1000; } return 2000; }; } |
ViRUS > 03-10-2008 11:08:41 |
Не проще ли делать такие вещи опрашивая непосредственно POP3 сервер? |
Evialroot > 03-10-2008 12:02:37 |
Заработало! Спасибо,dishlo |
Warhangel > 14-10-2008 12:46:59 |
Вопрос про скрипт от mailru |
Evialroot > 14-10-2008 12:57:29 |
А вот этого я не знаю. При получении почты, всегда появляется уведомление. Большего мне от этого плагина и не надо |
GOR70 > 13-09-2009 16:31:13 |
А у меня для yandex'a, почему-то не работает. Нет уведомления о новой почте. |
ivk > 06-12-2009 14:32:40 |
Сделал скрипт для яндекса. Вроде работает Выделить код Код:/*********************************************************** yandex 2009-12-06 ***********************************************************/ function initHandler(handler) { handler.name = "Yandex"; handler.dataURL = "http://mail.yandex.ru/"; handler.loginData = ["https://passport.yandex.ru/passport", "login", "passwd", "mode=auth&retpath=http://mail.yandex.ru"]; handler.mailURL = "http://mail.yandex.ru/"; handler.getData = function(aData) { //Не знаю как match'ем ловить русские символы и пробелы, поэтому вместо них .* и \s соотвественно. //Есть нечитанная почта. //<title>Входящие (1 / 127) — Яндекс.Почта</title> var fnd = aData.match(/<title>.*\s\((\d+)\s\/\s\d+\)\s.*<\/title>/); if (fnd) return fnd[1]; //Нечитанной почты нету. //<title>Входящие (127) — Яндекс.Почта</title> fnd = aData.match(/<title>.*\s\((\d+)\)\s.*<\/title>/); if (fnd) return 0; return -1; } } |
ivk > 01-01-2010 13:14:50 |
Вышла новая версия Webmail Notifier - старый скрипт не работает. Выделить код Код:/*********************************************************** yandex 2010-01-01 ***********************************************************/ var name="Yandex"; function init() { this.dataURL = "http://mail.yandex.ru/"; this.loginData = ["https://passport.yandex.ru/passport", "login", "passwd", "mode=auth&retpath=http://mail.yandex.ru"]; this.mailURL = "http://mail.yandex.ru/"; } function getCount(aData) { //Есть нечитанная почта. //<title>Входящие (1 / 127) — Яндекс.Почта</title> // В х о д я щ и е ( 1 / 127) var fnd = aData.match(/<title>\u0412\u0445\u043E\u0434\u044F\u0449\u0438\u0435\s\((\d+)\s\/\s\d+\)\s.*<\/title>/); if (fnd) return fnd[1]; //Нечитанной почты нету. //<title>Входящие (127) — Яндекс.Почта</title> fnd = aData.match(/<title>\u0412\u0445\u043E\u0434\u044F\u0449\u0438\u0435\s\((\d+)\)\s.*<\/title>/); if (fnd) return 0; return -1; } |