Боты используются для выполнения рутинных задач по улучшению Википедии. Администраторам: если этот бот работает неправильно или каким-либо другим образом наносит вред Википедии, пожалуйста, заблокируйте его и сообщите владельцу о возникшей проблеме.
1.Списки новых статей (а также изображений, шаблонов, категорий
2.Списки лучших статей (избранные, хорошие, добротные)
3.Списки проблемных статей (к удалению, к переименованию, к улучшению, {{rq}}, и др.)
4.Статистика по порталам
Этот бот — потомок бота NewPagesWikiBot, работавшего в 2008—2011 годах под аккаунтом ClaymoreBot, портированный на язык Java, и имеющий много улучшений и исправлений. NirvanaBot обновляет в порталах и проектах такие секции, как списки новых статей, новых категорий, шаблонов, иллюстраций.
Полный список видов секций см. ниже:
Полный список обновляемых ботом блоков
Списки новых статей, картинок, шаблонов, категорий, и т.д.
Элемент списка может содержать: название статьи, автор, дата создания, изображение (найденное в статье), размер статьи, обсуждение (вики-ссылка).
Архив
При обновлении, удалённые из списка статьи могут складываться в архив (пример). Архив может разбиваться по годам/кварталам (пример,параметры). В архив могут добавляться заголовки (пример,параметры).
Использующие старый шаблон: ~600 списков, см. категорию или кто включил шаблон. ВНИМАНИЕ: эти списки обновляются также ботом У:AdamantBot (т.е. они временно обновляются двумя ботами).
Дополнительные задачи
Архивы. Бот может проставить заголовки и подзаголовки в существующих архивах новых статей, расставить нумерацию (решетки, или в html-формате), рассортировать список статей по дате. Оставляйте заявку на странице обсуждения.
Бот запускается в автоматическом режиме 1 раз в сутки (или правильнее сказать 2 раза в сутки). Обычное время запуска 20:00 MSK. С недавних пор был добавлен ещё один запуск в 08:00 MSK для обновления некоторых, самых «горячих» списков.
У бота есть глобальные настройки (общие для всех) и персональные для каждого обновляемого списка (см. документацию). В персональных настройках можно переопределить любые глобальные настройки. Посмотреть примеры настроек можно здесь.
Как использовать
Для подключения бота в портал, нужно создать подстраницу наподобие [[Портал:Жабы/Новые статьи/Параметры]], в которую подставить шаблон {{User:NirvanaBot/Новые статьи}}. Какие параметры подставлять в шаблон и примеры настроек смотрите в документации к шаблону. Бот сам обнаружит потом эти настройки, и по ним сделает обновление.
Алгоритм
Старый алгоритм (быстрый режим : нет)
Такой режим я включаю в отдельных списках, когда сервис Petscan тупит, делает сбои, не тянет (на тяжелых проектах - География, История, и т.п.).
Используя сервис CatScan2Petscan (который работает на Wikimedia Labs) получает списки новых статей по всем заданным категориям, и объединяет их в один большой список A
Используя сервис CatScan2 Petscan получает списки новых статей по всем категориям из параметра "игнорировать" и объединяет их в один большой список B
Из списка A выкидывает все элементы списка B, и все у которых автор совпадает с указанным в параметре "игнорировать авторов", и ещё при необходимости выкидываются удалённые статьи ака "красные ссылки" (если параметр "удаленные статьи = удалять")
Сортирует список A по дате: в начало новые, в конец старые
Обрезает список A до указанного количества статей, т.е. если список слишком длинный, то все лишние отбрасываются
Извлекает старый список X
Добавляет из старого списка X нехватающие элементы в A, (если размер A меньше указанного количества статей)
Оставшиеся элементы из X временно сохраняет, если есть архив, или отбрасывает, если архива нет
Записывает список A в Википедию
Обновляет архив если он есть, дописав туда оставшееся в X элементы
Особенности. CatScan2 Petscan собирает статьи не только указанных категорий но и всех вложенных категорий до указанной глубины (6 по умолчанию).
Обновлённый алгоритм (быстрый режим : да)
Всё точно также как в старом алгоритме, только пункты 2, 3 и частично 4 выполняются за одну операцию обращения к сервису самим сервисом CatScan2 Petscan. Т.е. шлём в сервис список нужных категорий, список игнорируемых категорий, получаем готовый список статей, нам остаётся только сократить длину до нужного количества и сформировать результат.
Описание на примере
Упрощенное описание на примере фруктового сада
Возьмём к примеру фруктовый сад, фруктовый сад - это Википедия. В саду под деревьями лежат опавшие фрукты - груши, яблоки, сливы. Допустим, по 3 каждого вида. Бот должен собрать в саду спелые яблоки и груши, у нас есть корзина, в которой вмещаеются 2 фрукта. Причём яблоко1, груша1, слива1 - гнилые; яблоко3, груша3, слива3 - незрелые, т.д. зелёные. В настройках проекта будут заданы такие значения:
| категории = Яблоки, Груши
| игнорировать = Зеленые, Гнилые
| элементов = 2
Бот получит задание: категории Яблоки и Груши, игнорировать Зеленые (неспелые) и Гнилые
Бот получает список Яблоки: яблоко1, яблоко2, яблоко3. Потом бот получает список Груши: груша1, груша2, груша3. Потом они объединяются в один список A: яблоко1, яблоко2, яблоко3, груша1, груша2, груша3.
Бот получает список Зеленые: яблоко3, груша3, слива3. Бот получает список Гнилые яблоко1, груша1, слива1. Объединяет всё в список B: яблоко3, груша3, слива3, яблоко1, груша1, слива1.
Из A выкидываем то что в B, т.е. гнилые яблоко3 и груша3 и также зеленые яблоко1 и груша1 выкидываются из списка. У нас остаётся яблоко2 и груша2.
Сортируем по порядку (сначала самые спелые): яблоко2, груша2 (яблоко2 более спелое чем груша2).
У нас надо собрать 2 элемента, мы их и берём. Если бы было 3, то 3-й бы откинули.
Берём корзину со старыми фруктами.
Кладём туда яблоко2 и груша2, а старых 2 вынимаем.
Если есть погреб (архив), кладём туда старых 2 фрукта, вынятые из корзины, если нет - выкидываем.
Отдаём корзину заказчику
Технические детали
Бот написан на языке Java на базе легковесного вики-фреймворка Wiki.java (новый адрес). Исходный код доступен по лицензии GNU GPL на сайте github.com. Для сборки бота используется JDK версии от 1.8.0 и несколько свободных библиотек: Apachelog4j, Apache Commons (lang, collections), Jackson Json Parser. Для запуска бота используется JRE 8 версии или выше, распакованный distribution-архив бота, и консоль. Бот работает под ОС Windows. Совместим с Linux, но под ним не тестировался. Среднее время работы бота: 6-8 часов. Частота обновлений: 1-2 правки в минуту. Бот очень сильно зависит от сервиса CatScan2Petscan.
Технические ограничения
Максимальный размер списка 5000 элементов. Максимальное количество часов — 8928 (1 год). Ограничение установлено в теле бота.
Функции
Бот полностью реализует поведение ClaymoreBot/NewPagesWikiBot последней версии (от 10 декабря 2010).
Дополнительные возможности
исправлен ряд багов, найденных в ClaymoreBot
содержательный комментарий к правкам
совместим с параллельными ручными правками и правками других аналогичных ботов
архивы с заголовками
разбивание архивов по годам/сезонам/кварталам
поддержка шаблонов {{nobots}} и {{bots}} чтобы временно отключить бота
сообщение об ошибках в настройках на страницу обсуждения (пока не включено)
поддержка нескольких категорий и параметра игнорировать для списков список новых статей с изображениями, -//- в карточке, список наблюдения (ClaymoreBot обрабатывает только одну категорию для этих типов)
обработка красных ссылок, т.е. удалённых статей (их можно оставлять, помечать, или удалять) (удаленные статьи всегда убираются из списка)
подробный ежедневный отчёт
разбивание списка на 2 колонки (функция удалена за ненадобностью)
пропускание несвободных изображений (их нельзя размещать на страницах порталов)
Участник:AdamantBot - начинающий бот, обновляет только списки новых статей, обновляет по тем же настройкам, что и NirvanaBot; постоянный заместитель NirvanaBot.