Меню
Главная
Случайная статья
Настройки
|
17 декабря 2023 - Бот работает нестабильно с 1 декабря. В чём дело, пока не выяснил, подозрение на сломы сервиса petscan.
Содержание
О боте
Этот бот — потомок бота NewPagesWikiBot, работавшего в 2008—2011 годах под аккаунтом ClaymoreBot, портированный на язык Java, и имеющий много улучшений и исправлений. NirvanaBot обновляет в порталах и проектах такие секции, как списки новых статей, новых категорий, шаблонов, иллюстраций.
Полный список видов секций см. ниже:
- Списки новых статей, картинок, шаблонов, категорий, и т.д.
- Полные выборки по категории
- Статьи с шаблонами, по выставленным замечаниям
- к удалению (пример);
- к переименованию (пример);
- к улучшению (пример);
- проблемные статьи с проблемами разного рода (плюс ссылки на обсуждение при наличии, пример);
- проблемные статьи с одной определённой проблемой (проблема - значимость, шаблон rq, пример)
- Статьи с шаблонами, по уровню качества
Список
Элемент списка может содержать: название статьи, автор, дата создания, изображение (найденное в статье), размер статьи, обсуждение (вики-ссылка).
Архив
При обновлении, удалённые из списка статьи могут складываться в архив (пример). Архив может разбиваться по годам/кварталам (пример, параметры). В архив могут добавляться заголовки (пример,параметры).
Порталы и проекты
Дополнительные задачи- Архивы. Бот может проставить заголовки и подзаголовки в существующих архивах новых статей, расставить нумерацию (решетки, или в html-формате), рассортировать список статей по дате. Оставляйте заявку на странице обсуждения.
- Статистика. Обновление статистики. Читайте детали в Участник:NirvanaBot/Статистика
Режим работы
Бот запускается в автоматическом режиме 1 раз в сутки (или правильнее сказать 2 раза в сутки). Обычное время запуска 20:00 MSK. С недавних пор был добавлен ещё один запуск в 08:00 MSK для обновления некоторых, самых «горячих» списков.
Бот обрабатывает все секции, подключившие в настройках шаблон User:NirvanaBot/Новые статьи, или старый шаблон User:ClaymoreBot/Новые статьи.
Настройки
У бота есть глобальные настройки (общие для всех) и персональные для каждого обновляемого списка (см. документацию). В персональных настройках можно переопределить любые глобальные настройки. Посмотреть примеры настроек можно здесь.
Как использовать
Для подключения бота в портал, нужно создать подстраницу наподобие [[Портал:Жабы/Новые статьи/Параметры]], в которую подставить шаблон {{User:NirvanaBot/Новые статьи}}. Какие параметры подставлять в шаблон и примеры настроек смотрите в документации к шаблону. Бот сам обнаружит потом эти настройки, и по ним сделает обновление.
Алгоритм
Старый алгоритм (быстрый режим : нет)
Такой режим я включаю в отдельных списках, когда сервис Petscan тупит, делает сбои, не тянет (на тяжелых проектах - География, История, и т. п.).
- Бот собирает список настроек, т.е. страниц которые включили шаблон: {{User:NirvanaBot/Новые статьи}}
- По каждому порталу в списке делает следующие шаги
- Извлекает настройки портала
- Используя сервис
CatScan2 Petscan (который работает на 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 и несколько свободных библиотек: 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).
- Дополнительные возможности
- исправлен ряд багов, найденных в ClaymoreBot
- содержательный комментарий к правкам
- совместим с параллельными ручными правками и правками других аналогичных ботов
- архивы с заголовками
- разбивание архивов по годам/сезонам/кварталам
- поддержка шаблонов
- сообщение об ошибках в настройках на страницу обсуждения (пока не включено)
- поддержка нескольких категорий и параметра игнорировать для списков список новых статей с изображениями, -//- в карточке, список наблюдения (ClaymoreBot обрабатывает только одну категорию для этих типов)
обработка красных ссылок, т. е. удалённых статей (их можно оставлять, помечать, или удалять) (удаленные статьи всегда убираются из списка)
- подробный ежедневный отчёт
разбивание списка на 2 колонки (функция удалена за ненадобностью)
- пропускание несвободных изображений (их нельзя размещать на страницах порталов)
- интеллектуальный поиск новых статей с изображениями в карточке (боту можно указать в каких параметрах определенных шаблонов могут находиться изображения, см. Портал:Нумизматика и бонистика/Новые статьи с иллюстрациями/Параметры)
- автоматически создаваемая ссылка на обсуждение в списках "к удалению", "к улучшению" и т. п.
- ежесуточный отчёт
Планы- Подстановка subst в архиве вместо шаблона (идёт анализ)
- Улучшенное обновление списков ( без перестановок некоторых статей вниз)
См. также
Другие боты этого автора
Похожие боты- ClaymoreBot - этот бот ушел на покой
- AeroBot - это был временный заместитель NirvanaBot
- KrBot
- Участник:AdamantBot - начинающий бот, обновляет только списки новых статей, обновляет по тем же настройкам, что и NirvanaBot; постоянный заместитель NirvanaBot.
Другие боты
Тестирование
|
|