Участник:NirvanaBot
|
Это учётная запись бота, принадлежащего Нирваньчик.
Бот одобрен и в данный момент активен — соответствующий запрос на одобрение можно посмотреть здесь. |
NirvanaBot | |
---|---|
Владелец: | Нирваньчик |
Статус бота | Присвоен |
Задачи: |
1.Списки новых статей (а также изображений, шаблонов, категорий |
Режим работы | автоматический, ручной запуск |
Периодичность запуска | раз в сутки |
Время работы | от 4 до 7 часов |
Язык программирования | Java |
Фреймворк | Wiki.java |
Открытость кода | Полная (GPLv3) |
Сервер запуска | Сервер участника DR (иногда домашний пк Нирваньчик) |
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 (который работает на Wikimedia Labs) получает списки новых статей по всем заданным категориям, и объединяет их в один большой список A - Используя сервис
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 на базе легковесного вики-фреймворка 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
- содержательный комментарий к правкам
- совместим с параллельными ручными правками и правками других аналогичных ботов
- архивы с заголовками
- разбивание архивов по годам/сезонам/кварталам
- поддержка шаблонов {{nobots}} и {{bots}} чтобы временно отключить бота
- сообщение об ошибках в настройках на страницу обсуждения (пока не включено)
- поддержка нескольких категорий и параметра игнорировать для списков список новых статей с изображениями, -//- в карточке, список наблюдения (ClaymoreBot обрабатывает только одну категорию для этих типов)
обработка красных ссылок, т.е. удалённых статей (их можно оставлять, помечать, или удалять)(удаленные статьи всегда убираются из списка)- подробный ежедневный отчёт
разбивание списка на 2 колонки(функция удалена за ненадобностью)- пропускание несвободных изображений (их нельзя размещать на страницах порталов)
- интеллектуальный поиск новых статей с изображениями в карточке (боту можно указать в каких параметрах определенных шаблонов могут находиться изображения, см. Портал:Нумизматика и бонистика/Новые статьи с иллюстрациями/Параметры)
- автоматически создаваемая ссылка на обсуждение в списках "к удалению", "к улучшению" и т.п.
- ежесуточный отчёт
Планы
[править | править код]- Подстановка subst в архиве вместо шаблона (идёт анализ)
- Улучшенное обновление списков ( без перестановок некоторых статей вниз)
См. также
[править | править код]Другие боты этого автора
[править | править код]Похожие боты
[править | править код]- ClaymoreBot - этот бот ушел на покой
- AeroBot - это был временный заместитель NirvanaBot
- KrBot
- Участник:AdamantBot - начинающий бот, обновляет только списки новых статей, обновляет по тем же настройкам, что и NirvanaBot; постоянный заместитель NirvanaBot.
Другие боты
[править | править код]Тестирование
[править | править код]- Шаблон "Новые статьи" — Участник:NirvanaBot/test/Новые статьи
- Портал 1 — тестирование основного модуля
- Портал 2 — тестирование модуля архивации