Комментарии 17
У меня вопрос. Сразу оговорюсь, я не эксперт в веб программировангии. Как Вам удалось аутентификацию Капчи пройти?
Если пользователь не авторизован, то ему выведется капча.
Я написал комментарий в примере:
Я написал комментарий в примере:
Скрытый текст
/* Получаем ссылку на капчу и выводим окно ввода пользователю */
case ST_PRE_RES + 1:
var recaptchaUid = aData.match(/challenge\s*:\s*'(\S+?)'/);
if (recaptchaUid) {
this.loginData[LOGIN_POST] += "&recaptcha_challenge_field=" + encodeURIComponent(recaptchaUid[1]);
this.openCaptchaDialog(this.id, this.user, "https://www.google.com/recaptcha/api/image?c=" + recaptchaUid[1]);
return false;
}
this.onError();
break;


Там не только счётчики, но и полноценный просмотр данных, сортировка данных и возможность комментирования, ставить карму и т.д., работа offline.
Сейчас добиваю (тестирую) новую версию с новыми возможностями + версия для Firefox уже готова, тестирую.
Вот скрин, когда на полный экран, реализована возможность показывать только новые комментарии, а старые скрывать — экономит кучу времени на чтение обновлений. То есть. если например, для статьи в 300 комментариев завтра напишут только 2 или 3 новых комментария в разных местах, то их можно будет мгновенно прочитать, не тратя времени на перемещение по всем 300 комментариям.

Цель топика не написать расширение для Хабры.
Основная идея была показать, как написать скрипт для X-Notifier.
Основная идея была показать, как написать скрипт для X-Notifier.
Угу, понял.
Да, x-notifier интересная вещичка.
Просто ваши слова без учёта x-notifier мной были поняты так, что скрипта подобного нет и всё тут :-)
Наверное, было бы понятнее (если не вчитываться), если так:
Он позволяет получать уведомления о новых письмах, сообщениях, да о чем угодно с различных сервисов в одном месте. Для x-notifier написано множество плагинов (Gmail, Яндекс.Почта, Google+, Facebook, Twitter и прочих), но для Хабра до сих пор никто не написал, пора исправить это недоразумение!
Да, x-notifier интересная вещичка.
Просто ваши слова без учёта x-notifier мной были поняты так, что скрипта подобного нет и всё тут :-)
Он позволяет получать уведомления о новых письмах, сообщениях, да о чем угодно с различных сервисов в одном месте. Для него написано множество скриптов (Gmail, Яндекс.Почта, Google+, Facebook, Twitter и прочих). Но скрипта для Хабра, до сих пор никто не написал, пора исправить это недоразумение!
Наверное, было бы понятнее (если не вчитываться), если так:
Он позволяет получать уведомления о новых письмах, сообщениях, да о чем угодно с различных сервисов в одном месте. Для x-notifier написано множество плагинов (Gmail, Яндекс.Почта, Google+, Facebook, Twitter и прочих), но для Хабра до сих пор никто не написал, пора исправить это недоразумение!
А где же версия для firefox? Вы сказали год назад, что рабоаете над над ней.
Сейчас поддерживаются браузеры Firefox и Chrome. Есть какие-то сложности с написанием скрипта под разные браузеры?
Спасибо за инструкцию, благодаря ей написал скрипт для сайтов StackExchange.
Только вот две вещи мне остались непонятны:
1) можно ли как-то задавать параметры по умолчанию (например, чтоб обновление было не раз в 10 минут, а раз в час)?
2) на что влияет возвращается ли true или false в результате работы каждого этапа? Почему в каких-то случаях следующий этап запускается вручную, а в каких-то — нет?
Только вот две вещи мне остались непонятны:
1) можно ли как-то задавать параметры по умолчанию (например, чтоб обновление было не раз в 10 минут, а раз в час)?
2) на что влияет возвращается ли true или false в результате работы каждого этапа? Почему в каких-то случаях следующий этап запускается вручную, а в каких-то — нет?
Рад что кому то пригодилась эта писанина))
1) Это конфигурируется в настройках плагина (Options -> Check interval), по умолчанию свое значение, кажется, задавать нельзя.
2) Каждая стадия это инт. Когда мы возвращаем false, мы инкрементируем значение стадии на 1. К примеру тут в стадии
Я рекомендую посмотреть исходники плагина и можете посмотреть то что я понаписал, я думаю станет немного яснее.
Если будут вопросы, то пишите, помогу)
1) Это конфигурируется в настройках плагина (Options -> Check interval), по умолчанию свое значение, кажется, задавать нельзя.
2) Каждая стадия это инт. Когда мы возвращаем false, мы инкрементируем значение стадии на 1. К примеру тут в стадии
ST_PRE_RES + 1
я делаю return false;
и перехожу к следующей стадии ST_PRE_RES + 2
. Если я не хочу переходить к следующей стадии, а сразу перейти к конкретному этапу то я присваиваю значение this.stage = ST_LOGIN;
и возвращаю процесс. return true;
это просто завершение.Я рекомендую посмотреть исходники плагина и можете посмотреть то что я понаписал, я думаю станет немного яснее.
Если будут вопросы, то пишите, помогу)
Спасибо за пояснения! Касательно стадий — не сразу обратил внимание на дефолтные id стадий, оказывается
Свой первый скрипт я уже написал, вроде хорошо работает.
Но вот над вторым скриптом все думаю. Хочу, чтобы X-Notifier уведомлял меня о новых отзывах на Google Play о моем приложении. API у Google Play нет, так что тут лишь парсить страницы выйдет. Но вот умеют ли скрипты X-Notifier хранить какие-то переменные до следующего запуска? Например, сохранить дату последнего отзыва, чтобы при следующей проверке определить появились ли новые отзывы или нет.
ST_PRE
и ST_PRE_RES
как раз на единицу отличаются, потому в ST_PRE
можно возвращать false
.Свой первый скрипт я уже написал, вроде хорошо работает.
Но вот над вторым скриптом все думаю. Хочу, чтобы X-Notifier уведомлял меня о новых отзывах на Google Play о моем приложении. API у Google Play нет, так что тут лишь парсить страницы выйдет. Но вот умеют ли скрипты X-Notifier хранить какие-то переменные до следующего запуска? Например, сохранить дату последнего отзыва, чтобы при следующей проверке определить появились ли новые отзывы или нет.
Похоже, cookieManager в последних версиях плагина X-Notifier отсутствует (или отсутствует в Chrome-версии плагина).
Кстати, обнаружил, что некоторые значения по умолчанию можно задавать в скрипте, например,
Над вторым скриптом все бьюсь — научился получать данные об отзывах и извлекать их. Но вот с авторизацией в Google есть проблемы — взял за основу код от Gmail, авторизация срабатывает. Но вот потом надо как-то перейти на страницу с отзывами Google Play, а скрипт страницы GMail'a получает.
Кстати, обнаружил, что некоторые значения по умолчанию можно задавать в скрипте, например,
var defaultInterval=120;
.Над вторым скриптом все бьюсь — научился получать данные об отзывах и извлекать их. Но вот с авторизацией в Google есть проблемы — взял за основу код от Gmail, авторизация срабатывает. Но вот потом надо как-то перейти на страницу с отзывами Google Play, а скрипт страницы GMail'a получает.
Решил еще один скрипт написать и снова столкнулся с той же проблей — логика перехода между шагами (this.stage) по-прежнему не ясна. В каких-то случаях return false автоматически добавляет +1 к номеру шага. Но в каких-то шагах нет. Например, если в ST_LOGIN_RES вернуть false, то ST_LOGIN_RES+1 автоматически не запустится. Еще в каких-то случаях, видимо, запуск this.getHtml приводит к увеличению шага на 1 (наверное, когда завершается выполнение получения HTML-страницы). Но в каких-то случаях вообще используется return this.process(aData, aHttp), а в каких-то — return this.baseProcess(aData, aHttp).
В получении данных мне нужно было сделать несколько getHtml запросов (без получения результата) и один getHtml для последующего использования в getCount. Но предсказать что в этом случае попадет как aData в getCount невозможно — судя по всему то, что завершится первым.
В получении данных мне нужно было сделать несколько getHtml запросов (без получения результата) и один getHtml для последующего использования в getCount. Но предсказать что в этом случае попадет как aData в getCount невозможно — судя по всему то, что завершится первым.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
X-Notifier. Пишем оповещалку для трекера и диалогов на Хабарахабр