Участник:NirvanaBot

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
NirvanaBot Этот участник — робот
Владелец:Нирваньчик
Статус ботаПрисвоен
Задачи:

1.Списки новых статей (а также изображений, шаблонов, категорий
2.Списки лучших статей (избранные, хорошие, добротные) 3.Списки проблемных статей (к удалению, к переименованию, к улучшению, {{rq}}, и др.) 4.Статистика по порталам

Режим работыавтоматический, ручной запуск
Периодичность запускараз в сутки
Время работы от 4 до 7 часов
Язык программированияJava
ФреймворкWiki.java
Открытость кодаПолная (GPLv3)
Сервер запускаСервер участника DR (иногда домашний пк Нирваньчик)


17 декабря 2023 - Бот работает нестабильно с 1 декабря. В чем дело, пока не выяснил, подозрение на сломы сервиса petscan.

Орденоносный бот Википедии —Volgar 08:53, 8 ноября 2011 (UTC)
Звезда бота. Вручил: → borodun™ ¿¿¿ 15:15, 31 декабря 2013 (UTC)

Этот бот — потомок бота NewPagesWikiBot, работавшего в 2008—2011 годах под аккаунтом ClaymoreBot, портированный на язык Java, и имеющий много улучшений и исправлений. NirvanaBot обновляет в порталах и проектах такие секции, как списки новых статей, новых категорий, шаблонов, иллюстраций. Полный список видов секций см. ниже:

Элемент списка может содержать: название статьи, автор, дата создания, изображение (найденное в статье), размер статьи, обсуждение (вики-ссылка).

При обновлении, удалённые из списка статьи могут складываться в архив (пример). Архив может разбиваться по годам/кварталам (пример,параметры). В архив могут добавляться заголовки (пример,параметры).

Порталы и проекты

[править | править код]

Дополнительные задачи

[править | править код]
  1. Архивы. Бот может проставить заголовки и подзаголовки в существующих архивах новых статей, расставить нумерацию (решетки, или в html-формате), рассортировать список статей по дате. Оставляйте заявку на странице обсуждения.
  2. Статистика. Обновление статистики. Читайте детали в Участник:NirvanaBot/Статистика

Режим работы

[править | править код]

Бот запускается в автоматическом режиме 1 раз в сутки (или правильнее сказать 2 раза в сутки). Обычное время запуска 20:00 MSK. С недавних пор был добавлен ещё один запуск в 08:00 MSK для обновления некоторых, самых «горячих» списков.

Бот обрабатывает все секции, подключившие в настройках шаблон User:NirvanaBot/Новые статьи, или старый шаблон User:ClaymoreBot/Новые статьи.

У бота есть глобальные настройки (общие для всех) и персональные для каждого обновляемого списка (см. документацию). В персональных настройках можно переопределить любые глобальные настройки. Посмотреть примеры настроек можно здесь.

Как использовать

[править | править код]

Для подключения бота в портал, нужно создать подстраницу наподобие [[Портал:Жабы/Новые статьи/Параметры]], в которую подставить шаблон {{User:NirvanaBot/Новые статьи}}. Какие параметры подставлять в шаблон и примеры настроек смотрите в документации к шаблону. Бот сам обнаружит потом эти настройки, и по ним сделает обновление.

Старый алгоритм (быстрый режим : нет)

[править | править код]

Такой режим я включаю в отдельных списках, когда сервис Petscan тупит, делает сбои, не тянет (на тяжелых проектах - География, История, и т.п.).

  1. Бот собирает список настроек, т.е. страниц которые включили шаблон: {{User:NirvanaBot/Новые статьи}}
  2. По каждому порталу в списке делает следующие шаги
    1. Извлекает настройки портала
    2. Используя сервис CatScan2 Petscan (который работает на Wikimedia Labs) получает списки новых статей по всем заданным категориям, и объединяет их в один большой список A
    3. Используя сервис CatScan2 Petscan получает списки новых статей по всем категориям из параметра "игнорировать" и объединяет их в один большой список B
    4. Из списка A выкидывает все элементы списка B, и все у которых автор совпадает с указанным в параметре "игнорировать авторов", и ещё при необходимости выкидываются удалённые статьи ака "красные ссылки" (если параметр "удаленные статьи = удалять")
    5. Сортирует список A по дате: в начало новые, в конец старые
    6. Обрезает список A до указанного количества статей, т.е. если список слишком длинный, то все лишние отбрасываются
    7. Извлекает старый список X
    8. Добавляет из старого списка X нехватающие элементы в A, (если размер A меньше указанного количества статей)
    9. Оставшиеся элементы из X временно сохраняет, если есть архив, или отбрасывает, если архива нет
    10. Записывает список A в Википедию
    11. Обновляет архив если он есть, дописав туда оставшееся в X элементы

Особенности. CatScan2 Petscan собирает статьи не только указанных категорий но и всех вложенных категорий до указанной глубины (6 по умолчанию).

Обновлённый алгоритм (быстрый режим : да)

[править | править код]

Всё точно также как в старом алгоритме, только пункты 2, 3 и частично 4 выполняются за одну операцию обращения к сервису самим сервисом CatScan2 Petscan. Т.е. шлём в сервис список нужных категорий, список игнорируемых категорий, получаем готовый список статей, нам остаётся только сократить длину до нужного количества и сформировать результат.

Описание на примере

[править | править код]

Упрощенное описание на примере фруктового сада

[править | править код]

Возьмём к примеру фруктовый сад, фруктовый сад - это Википедия. В саду под деревьями лежат опавшие фрукты - груши, яблоки, сливы. Допустим, по 3 каждого вида. Бот должен собрать в саду спелые яблоки и груши, у нас есть корзина, в которой вмещаеются 2 фрукта. Причём яблоко1, груша1, слива1 - гнилые; яблоко3, груша3, слива3 - незрелые, т.д. зелёные. В настройках проекта будут заданы такие значения:

  • | категории = Яблоки, Груши
  • | игнорировать = Зеленые, Гнилые
  • | элементов = 2
  1. Бот получит задание: категории Яблоки и Груши, игнорировать Зеленые (неспелые) и Гнилые
  2. Бот получает список Яблоки: яблоко1, яблоко2, яблоко3. Потом бот получает список Груши: груша1, груша2, груша3. Потом они объединяются в один список A: яблоко1, яблоко2, яблоко3, груша1, груша2, груша3.
  3. Бот получает список Зеленые: яблоко3, груша3, слива3. Бот получает список Гнилые яблоко1, груша1, слива1. Объединяет всё в список B: яблоко3, груша3, слива3, яблоко1, груша1, слива1.
  4. Из A выкидываем то что в B, т.е. гнилые яблоко3 и груша3 и также зеленые яблоко1 и груша1 выкидываются из списка. У нас остаётся яблоко2 и груша2.
  5. Сортируем по порядку (сначала самые спелые): яблоко2, груша2 (яблоко2 более спелое чем груша2).
  6. У нас надо собрать 2 элемента, мы их и берём. Если бы было 3, то 3-й бы откинули.
  7. Берём корзину со старыми фруктами.
  8. Кладём туда яблоко2 и груша2, а старых 2 вынимаем.
  9. Если есть погреб (архив), кладём туда старых 2 фрукта, вынятые из корзины, если нет - выкидываем.
  10. Отдаём корзину заказчику

Технические детали

[править | править код]

Бот написан на языке Java на базе легковесного вики-фреймворка Wiki.java (новый адрес). Исходный код доступен по лицензии GNU GPL на сайте github.com. Для сборки бота используется JDK версии от 1.8.0 и несколько свободных библиотек: Apache log4j, Apache Commons (lang, collections), Jackson Json Parser. Для запуска бота используется JRE 8 версии или выше, распакованный distribution-архив бота, и консоль. Бот работает под ОС Windows. Совместим с Linux, но под ним не тестировался. Среднее время работы бота: 6-8 часов. Частота обновлений: 1-2 правки в минуту. Бот очень сильно зависит от сервиса CatScan2 Petscan.

Технические ограничения

[править | править код]

Максимальный размер списка 5000 элементов. Максимальное количество часов — 8928 (1 год). Ограничение установлено в теле бота.

Бот полностью реализует поведение ClaymoreBot/NewPagesWikiBot последней версии (от 10 декабря 2010).

Дополнительные возможности
  1. исправлен ряд багов, найденных в ClaymoreBot
  2. содержательный комментарий к правкам
  3. совместим с параллельными ручными правками и правками других аналогичных ботов
  4. архивы с заголовками
  5. разбивание архивов по годам/сезонам/кварталам
  6. поддержка шаблонов {{nobots}} и {{bots}} чтобы временно отключить бота
  7. сообщение об ошибках в настройках на страницу обсуждения (пока не включено)
  8. поддержка нескольких категорий и параметра игнорировать для списков список новых статей с изображениями, -//- в карточке, список наблюдения (ClaymoreBot обрабатывает только одну категорию для этих типов)
  9. обработка красных ссылок, т.е. удалённых статей (их можно оставлять, помечать, или удалять) (удаленные статьи всегда убираются из списка)
  10. подробный ежедневный отчёт
  11. разбивание списка на 2 колонки (функция удалена за ненадобностью)
  12. пропускание несвободных изображений (их нельзя размещать на страницах порталов)
  13. интеллектуальный поиск новых статей с изображениями в карточке (боту можно указать в каких параметрах определенных шаблонов могут находиться изображения, см. Портал:Нумизматика и бонистика/Новые статьи с иллюстрациями/Параметры)
  14. автоматически создаваемая ссылка на обсуждение в списках "к удалению", "к улучшению" и т.п.
  15. ежесуточный отчёт
  • Подстановка subst в архиве вместо шаблона (идёт анализ)
  • Улучшенное обновление списков ( без перестановок некоторых статей вниз)

Другие боты этого автора

[править | править код]

Похожие боты

[править | править код]
  • ClaymoreBot - этот бот ушел на покой
  • AeroBot - это был временный заместитель NirvanaBot
  • KrBot
  • Участник:AdamantBot - начинающий бот, обновляет только списки новых статей, обновляет по тем же настройкам, что и NirvanaBot; постоянный заместитель NirvanaBot.

Другие боты

[править | править код]

Тестирование

[править | править код]