Pull to refresh

Доработка скрипта быстрого показа кармы (FF, Chrome, Opera)

Reading time 2 min
Views 1.1K
Опубликованный вчера скрипт для показа кармы "КармаПисчик" (автор Atilla) имел одну недоработку, не позволявшую пользоваться им на части страниц, а именно, на страницах с доменами 3-го уровня (персональные блоги). Оказался интересен не столько сам скрипт, хотя решение полезное, спасибо за него автору (в дизайне и поведении его я почти ничего не менял), а решение вопроса кроссдоменного скриптинга. Запрос к API идёт на домен 2-го уровня, а скрипт — на 3-м уровне. В результате, пришлось полностью отказаться от применения XMLHttp к API и сделать обращение к фрейму — древний «фреймовый AJAX».

Цель этого скрипта я бы сформулировал иначе, чем автор. Не «снизить объективность оценки», а улучшить влияние на карму в зависимости от её значения. Например, если карма находится в опасном диапазоне около нуля, то каждое изменение сильно сказывается на возможности публиковаться. Иногда нужно удержаться от изменения, а для этого не обязательно переходить на страницу пользователя. По этой причине 3 цвета я расположил в таких диапазонах: до -6, от -5 до +9 и от +10 и выше.



Добавлена задержка срабатывания. Если мышь находилась над ником пользователя менее 300 мс, подгрузки данных не происходит. В подсказке title добавлен просмотр рейтинга. По наведению на себя возле комментария тоже показываются свои карма и рейтинг. Сделано без запоминания карм разных авторов, поэтому не подгружаются данные только при повторном показе того же автора.

Скрипт конфликтует с другим скриптом, HabraKarma (автор: fedor.indutny) для Chrome, поэтому их нужно включать по отдельности через окно chrome://extensions/.

Проверено в Chrome 4 и FF 3.6 + GreaseMonkey.
На официальные страницы не выкладываю — возможно, сам автор доработает скрипт далее и опубликует.

Скачать:
Для FF + GreaseMonkey, для Chrome: HabraKarmaView.user.js, версия 1.1, 3.8 КБа (ниже — версия новее!).

Опера недоработана (в чтении данных из фрейма), Safari не проверялось (если способно, то только для Mac, т.к. GreaseKit работает только на Маках).


Сегодня же, 23.15. Доработка скрипта.
1. Убраны мигания и пропадания подсказок за счёт более сложной организации висящего блока.
2. Добавлена фича — постоянное висение блока с кармой, если кликнуть по нему. Постоянно висящие блоки уже не подгружаются каждый раз. Режим постоянного висения снимается, если кликнуть по указателю (блоку с кармой) ещё раз (указатель руки сменяется на стрелку).
3. Цвета сделаны бледнее и спокойнее, скруглённые углы у блоков в соответствии с общим дизайном.

Сейчас выглядит так (FF; нижний блок был кликнут и находится в режиме постоянного показа):

Из минусов: сайт при регулярном просмотре кармы периодически (раз в несколько часов) начинает интересоваться, не робот ли я и требовать авторизацию и проход капчи. (Смотреть карму без авторизации не мешает.)

26 марта. Опера стала работать. Её механизм доступа к XML оказался немного другим — что-то не смогла прочитать, а что-то смогла записать. В результате — те же действия без потери функциональности. Добавлено раздвигание кнопок "+" и "-".

FF + GreaseMonkey, Chrome3+, Opera 10+: HabraKarmaViewPlus.user.js, версия 1.3, 5.7 КБа
Tags:
Hubs:
0
Comments 11
Comments Comments 11

Articles