Участник:Ilya Voyager/wikipedia-notifywikipedia-notify — система мгновенного уведомления о новых правках на страницах проектов Фонда Викимедиа. Позволяет отслеживать свежие правки и участвовать в дискуссиях на страницах Википедии так же легко, как болтать в мессенджере, а также мгновенно блокировать вандалов. Техническая реализацияКлиент Irssi подключается к специальным IRC-каналам на irc.wikimedia.org, на которые транслируются свежие правки. В Irssi загружается скрипт wikipedia-notify.pl, осуществляющий фильтрацию новых сообщений на выбранных каналах. В случае, если сообщение соответствует правке, удовлетворяющей определенным критериям, скрипт загружает старую и новую ревизию, делает дифф с помощью wdiff, и с помощью libnotify выдает сообщение, аналогичное уведомлению о новых сообщения в интернет-мессенджерах. (См. скриншот.) Возможные критерии:
1-click blockФункция 1-click block позволяет заблокировать автора правки буквально «одним кликом» по специальной ссылке, приводимой в окне-уведомлении. (Ссылки «1 day» и «indef» на скриншоте сверху.) Эта функция особенно полезна для борьбы с явным «серийным» вандализмом или грубыми оскорблениями. Поскольку основной задачей в данном случае является оперативное пресечение деструктивных действий и экономия времени администратора, форма Special:Block заполняется автоматически (пользовательским javascript'ом, см. код ниже), при этом подставляются стандартные параметры блокировки для типичных ситуаций (например, вандализм с IP-адреса — блокировка на 1 день; вандализм с зарегистрированной учетной записи — бессрочная блокировка). В случае необходимости, параметры такой блокировки впоследствии могут быть уточнены либо изменены. Если есть основания считать, что блокировка с помощью 1-click block была наложена ошибочно, её можно снять или скорректировать без предварительного обращения к блокировавшему администратору (но, желательно, с его уведомлением). Код пользовательского javascriptСледующий код используется для мгновенной бессрочной блокировки вандальных учетных записей. function kickOut(){
document.getElementById('mw-bi-other').value = 'infinite'
document.getElementById('mw-bi-reason').value = '[[user:Ilya Voyager/wikipedia-notify#1-click block|1-click block]], вероятно [[ВП:В|вандализм]]'
document.getElementById('wpAllowUsertalk').checked = false
document.getElementById('wpEmailBan').checked = true
document.getElementById('blockip').submit()
}
if (document.URL.match(/\?kickout=1/) && wgPageName == 'Служебная:Block') addOnloadHook(kickOut)
Код wikipedia-notify.plТекущий код доступен в svn-репозитории. Распространяется под GPLv2+. Другие версииВерсия, не требующая irssiМожет быть написана. Когда-нибудь :) Скажем, можно использовать POE::Component::IRC. Правьте смело! :) Версия под MS WindowsМожет быть написана. Когда-нибудь :) Скажем, на основе snarl. Правьте смело! :) |
Portal di Ensiklopedia Dunia