Участник:NirvanaBot

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

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

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


8 октября 2021 - Бот сломан с 30 сентября. Не работает авторизация. Разбираюсь.

8/9 октября 2021 (полночь) - Бот починен.

О боте

Кратко о себе
Crystal Clear action suspend.svg Этот бот не будет обновлять страницы, помеченные шаблоном nobots или bots
300 000+
Java Для этого участника Java является родным языком.

Главный запуск:

Статус бота
Состояние:остановлен
Версия бота:1.19
Стартовал:2022-01-24 18:01:08 UTC
Остановился:2022-01-24 21:01:31 UTC
Время работы:3 h 0 m 23 s
Настроек всего:933
Проверено:933
Списков обработано:922
Обновлено:259
Ошибок:4

Утренний запуск:

Статус бота
Состояние:остановлен
Версия бота:1.19
Стартовал:2022-01-25 06:01:10 UTC
Остановился:2022-01-25 06:16:46 UTC
Время работы:0 h 15 m 35 s
Настроек всего:356
Проверено:356
Списков обработано:36
Обновлено:27
Ошибок:0
Подробный отчёт за сутки
Орденоносный бот Википедии —Volgar 08:53, 8 ноября 2011 (UTC)
Звезда бота. Вручил: → borodun™ ¿¿¿ 15:15, 31 декабря 2013 (UTC)

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

Список

Красные ссылки могут удаляться из списка или помечаться комментарием Статья удалена (пример). Список можно разбивать на 2 колонки и это кросс-браузерный способ разбиения (пример). Если статью переименовали, то бот может включать в список оба варианта названия, только старое название, или только новое название.

Архив

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

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

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

  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.

Другие боты

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

Original: Original:

https://ru.wikipedia.org/wiki/%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%3ANirvanaBot