Interested Article - NirvanaBot
- 2021-12-12
- 1
|
Это учётная запись
бота
, принадлежащего участнику
Нирваньчик
(
обсуждение
).
Бот одобрен и в данный момент активен — соответствующий
запрос на одобрение
можно посмотреть
здесь
.
|
17 декабря 2023 -
Бот работает нестабильно с 1 декабря
. В чем дело, пока не выяснил, подозрение на сломы сервиса petscan.
О боте
Кратко о себе | ||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Бот
Нирваньчик
|
||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||
|
Этот бот — потомок бота NewPagesWikiBot , работавшего в 2008—2011 годах под аккаунтом ClaymoreBot , портированный на язык Java , и имеющий много улучшений и исправлений. NirvanaBot обновляет в порталах и проектах такие секции, как списки новых статей, новых категорий, шаблонов, иллюстраций. Полный список видов секций см. ниже:
- Списки новых статей, картинок, шаблонов, категорий, и т.д.
- новые статьи ( пример );
- новые шаблоны ( пример );
- новые категории ( пример );
- новые изображения ( пример );
- изображения новых статей ( пример );
- Полные выборки по категории
- Статьи с шаблонами, по выставленным замечаниям
- к удалению ( пример );
- к переименованию ( пример );
- к улучшению ( пример );
- проблемные статьи с проблемами разного рода (плюс ссылки на обсуждение при наличии, пример );
- проблемные статьи с одной определённой проблемой (проблема - значимость, шаблон rq, пример )
- Статьи с шаблонами, по уровню качества
Список
Элемент списка может содержать: название статьи, автор, дата создания, изображение (найденное в статье), размер статьи, обсуждение (вики-ссылка).
Архив
При обновлении, удалённые из списка статьи могут складываться в архив ( пример ). Архив может разбиваться по годам/кварталам ( , ). В архив могут добавляться заголовки ( пример , параметры ).
Порталы и проекты
- Использующие новый шаблон: ~350 списков, см. категорию или кто включил шаблон .
- Использующие старый шаблон: ~600 списков, см. категорию или кто включил шаблон . ВНИМАНИЕ: эти списки обновляются также ботом У:AdamantBot (т.е. они временно обновляются двумя ботами).
Дополнительные задачи
- Архивы . Бот может проставить заголовки и подзаголовки в существующих архивах новых статей, расставить нумерацию (решетки, или в html-формате), рассортировать список статей по дате. Оставляйте заявку на странице обсуждения.
- Статистика . Обновление статистики. Читайте детали в Участник:NirvanaBot/Статистика
Режим работы
Бот запускается в автоматическом режиме 1 раз в сутки (или правильнее сказать 2 раза в сутки). Обычное время запуска 20:00 MSK. С недавних пор был добавлен ещё один запуск в 08:00 MSK для обновления некоторых, самых «горячих» списков.
Бот обрабатывает все секции, подключившие в настройках шаблон User:NirvanaBot/Новые статьи , или старый шаблон User:ClaymoreBot/Новые статьи .
Настройки
У бота есть глобальные настройки (общие для всех) и персональные для каждого обновляемого списка (см. документацию ). В персональных настройках можно переопределить любые глобальные настройки. Посмотреть примеры настроек можно здесь .
Как использовать
Для подключения бота в портал, нужно создать подстраницу наподобие [[Портал:Жабы/Новые статьи/Параметры]] , в которую подставить шаблон {{ User:NirvanaBot/Новые статьи }}. Какие параметры подставлять в шаблон и примеры настроек смотрите в документации к шаблону. Бот сам обнаружит потом эти настройки, и по ним сделает обновление.
Алгоритм
Старый алгоритм (быстрый режим : нет)
Такой режим я включаю в отдельных списках, когда сервис Petscan тупит, делает сбои, не тянет (на тяжелых проектах - География, История, и т.п.).
- Бот собирает список настроек, т.е. страниц которые включили шаблон: {{ User:NirvanaBot/Новые статьи }}
-
По каждому порталу в списке делает следующие шаги
- Извлекает настройки портала
-
Используя сервис
-
Используя сервис
CatScan2Petscan получает списки новых статей по всем категориям из параметра "игнорировать" и объединяет их в один большой список 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
на базе легковесного вики-фреймворка
(
). Исходный код доступен по лицензии
GNU GPL
на сайте
. Для сборки бота используется
JDK
версии от 1.8.0 и несколько свободных библиотек:
Apache
log4j
,
Apache Commons
(lang, collections),
. Для запуска бота используется
JRE
8 версии или выше, распакованный distribution-архив бота, и консоль. Бот работает под ОС Windows. Совместим с Linux, но под ним не тестировался. Среднее время работы бота: 6-8 часов. Частота обновлений: 1-2 правки в минуту. Бот очень сильно зависит от сервиса
.
Технические ограничения
Максимальный размер списка 5000 элементов. Максимальное количество часов — 8928 (1 год). Ограничение установлено в теле бота.
Функции
Бот полностью реализует поведение ClaymoreBot /NewPagesWikiBot последней версии (от 10 декабря 2010).
- Дополнительные возможности
- исправлен ряд багов, найденных в ClaymoreBot
- содержательный комментарий к правкам
- совместим с параллельными ручными правками и правками других аналогичных ботов
- архивы с заголовками
- разбивание архивов по годам/сезонам/кварталам
- поддержка шаблонов {{ nobots }} и {{ bots }} чтобы временно отключить бота
- сообщение об ошибках в настройках на страницу обсуждения (пока не включено)
- поддержка нескольких категорий и параметра игнорировать для списков список новых статей с изображениями , -//- в карточке , список наблюдения (ClaymoreBot обрабатывает только одну категорию для этих типов)
-
обработка красных ссылок, т.е. удалённых статей (их можно оставлять, помечать, или удалять)(удаленные статьи всегда убираются из списка) - подробный ежедневный отчёт
-
разбивание списка на 2 колонки(функция удалена за ненадобностью) - пропускание несвободных изображений (их нельзя размещать на страницах порталов)
- интеллектуальный поиск новых статей с изображениями в карточке (боту можно указать в каких параметрах определенных шаблонов могут находиться изображения, см. Портал:Нумизматика и бонистика/Новые статьи с иллюстрациями/Параметры )
- автоматически создаваемая ссылка на обсуждение в списках "к удалению", "к улучшению" и т.п.
- ежесуточный отчёт
Планы
- Подстановка subst в архиве вместо шаблона (идёт анализ)
- Улучшенное обновление списков ( без перестановок некоторых статей вниз)
См. также
Другие боты этого автора
Похожие боты
- ClaymoreBot - этот бот ушел на покой
- AeroBot - это был временный заместитель NirvanaBot
- KrBot
- Участник:AdamantBot - начинающий бот, обновляет только списки новых статей, обновляет по тем же настройкам, что и NirvanaBot; постоянный заместитель NirvanaBot.
Другие боты
Тестирование
- Шаблон "Новые статьи" — Участник:NirvanaBot/test/Новые статьи
- Портал 1 — тестирование основного модуля
- Портал 2 — тестирование модуля архивации
- 2021-12-12
- 1