Меню
Главная
Случайная статья
Настройки
|
Данный шаблон оставляет запрос для NapalmBot (исходный код, crontab) на сканирование дампа. Бот обрабатывает запросы раз в 6 часов (в 0:30, 6:30, 12:30 и 18:30 по UTC); сканирование дампа, как правило, занимает около часа — соответственно, если запрос заполнен корректно, разультат придёт в течение 8 часов.
В целях безопасности, бот реагирует только на шаблоны, поставленные на подстраницы в пространствах имён «Участник» и «Проект». В частности, вы можете подставить её на свою подстраницу.
Для регулярных выражений используется стандартная библиотека re языка программирования Python, документация доступна здесь.
Формат запроса{{scan dump
|title=<nowiki></nowiki>
|namespaces=
|contains=<nowiki></nowiki>
|not contains=<nowiki></nowiki>
|ignore=<nowiki></nowiki>
|ignorecase=
|multiline=
|dotall=
|verbose=
|prefix=
|result=<nowiki></nowiki>
|postfix=
|sortkey=<nowiki>{title}</nowiki>
|sortreverse=
}}
Запрос:
title — регулярное выражение, описывающее заголовок; будет передано в функцию match, которая посчитает заголовок подходящим, если некоторый суффикс заголовка удовлетворяет регулярному выражению. Добавьте символ $ в конец, чтобы проверять заголовок целиком.
namespaces — список номеров пространств имён, в которых следует проводить поиск, через запятую. По умолчанию поиск будет проводиться во всех пространствах имён.
contains , обязательный параметр — регулярное выражение, которому должна удовлетворять подстрока страницы.
not contains — регулярное выражение, которому не должна удовлетворять ни одна подстрока страницы.
ignore — все вхождения, удовлетворяющие регулярному выражению, будут заменены на специальные метки; если эти метки попадут в результат, на их месте будет восстановлен исходный текст. С помощью этого параметра можно, например, скрыть комментарии регулярным выражением <!--.*?--> , чтобы contains и not contains не реагировали на их содержимое.
Флаги регулярных выражений:
ignorecase — нечувствительность к регистру.
dotall — точка (. ) будет находить все символы, включая перевод строки.
multiline — символы ^ и $ будут обозначать начало и конец строк, а не всей страницы.
verbose — регулярные выражения будут поддерживать комментарии и разбиения на строки.
Любое непустое значение этих параметров активируют соответствующий флаг. Флаги влияют только на регулярные выражения, переданные в contains и not contains . title в любом случае будет анализироваться без флагов, чувствительно к регистру. ignore в любом случае будет обрабатываться со всеми четырьмя флагами.
Формирование результата:
prefix — код, который будет добавлен перед результатом.
result — форматная строка для одной строчки результата, см. ниже. По умолчанию — * [[{title}]] .
postfix — код, который будет добавлен после результата.
sortkey — форматная строка для ключа сортировки. По умолчанию сортировка проводиться не будет, то есть, результаты будут следовать в том же порядке, в котором они следуют в дампах — по возрастанию даты создания страницы.
sortreverse — при любом непустом значении сортировка будет проводиться в обратном порядке (по убыванию).
Форматные строки:
Все коды вида {code} будут заменены на подстроки. Для экранирования символов { и } дублируйте их. Список доступных кодов:
{title} — заголовок страницы.
{namespace} — номер пространства имён страницы.
{text} — текст страницы.
{id} — идентификатор страницы.
{t_0} — найденное параметром title выражение.
{t_N} — содержимое группы N, найденной параметром title , где N — номер неименованной или имя именованной группы.
{c_0} — найденное параметром contains выражение.
{c_N} — содержимое группы N, найденной параметром contains , где N — номер неименованной или имя именованной группы.
Экранирование символов:
Поскольку символы, присутствующие в регулярных выражениях или форматных строках, могут быть восприняты движком MediaWiki и парсером бота не как обычный текст (например, символ | в регулярных выражениях может быть воспринят как начало следующего параметра), рекомендуется оборачивать весь параметр в тег <nowiki> , бот умеет это обрабатывать; если регулярное выражение само должно включать в себя тег nowiki, то символы < и > можно будет описать последовательностями \x3c и \x3e соответственно.
Заготовки для копирования
Результат в список:
{{scan dump
|title=<nowiki></nowiki>
|namespaces=
|contains=<nowiki></nowiki>
|not contains=<nowiki></nowiki>
|ignore=<nowiki></nowiki>
|ignorecase=
|multiline=
|dotall=
|verbose=
|prefix=
|result=<nowiki>* [[{title}]]</nowiki>
|postfix=
|sortkey=<nowiki>{title}</nowiki>
|sortreverse=
}}
|
Результат таблицей:
{{scan dump
|title=<nowiki></nowiki>
|namespaces=
|contains=<nowiki></nowiki>
|not contains=<nowiki></nowiki>
|ignore=<nowiki></nowiki>
|ignorecase=
|multiline=
|dotall=
|verbose=
|prefix=<nowiki>{| class="wikitable"\n|-\n!Заголовок!!Вхождение</nowiki>
|result=<nowiki>|-\n|[[{title}]]||<code>\x3cnowiki\x3e{c_0}\x3c/nowiki\x3e</code></nowiki>
|postfix=<nowiki>|}</nowiki>
|sortkey=<nowiki>{title}</nowiki>
|sortreverse=
}}
|
Технические ограничения- На странице может одновременно находиться не более одного включения данного шаблона. Страницы, содержащие несколько шаблонов, будут проигнорированы ботом даже в том случае, если невыполненным является только один из них.
- Дампы создаются примерно раз в месяц и не всегда удачно, поэтому результат запроса может существенно отставать от реального положения вещей: некоторые из найденных вхождений могут быть уже исправленными, некоторые из существующих в Википедии — не найдены. Бот оставляет вместе с результатом дату просканированного дампа, чтобы вы могли оценить задержку.
- Бот не поддерживает никаких манипуляций над результатом (например, замену в найденной группе), однако их можно будет провести с помощью подстановочных шаблонов.
- Размер результата ограничен одним миллионом символов, при превышении этого предела сканирование дампа будет прервано.
- Одновременно обрабатываются до 100 запросов; если их больше, часть из них будет оставлена на следующий запуск бота. Это ограничение необходимо для того, чтобы не упереться в нехватку памяти.
|
|