Руководство:Pywikibot/category.py

From mediawiki.org
This page is a translated version of the page Manual:Pywikibot/category.py and the translation is 100% complete.

Removes or adds categories to pages on a Mediawiki site.

Синтаксис

Синтаксис вызова скрипта таков:

   python pwb.py category action [-option]

и действие может быть одним из следующих:

add массовое добавление категории в страницы из списка
remove удалить тэг категории из всех страниц в категории
move переместить все страницы в категории в другую категорию
tidy расчистить категорию, переместив статьи в подкатегории
clean assisted diffusing of large categories
tree показать дерево подкатегорий данной категории
listify сформировать список статей в категории

и опция может быть одной из следующих:

Опции для действия «add»

-person сортировать персоналии по фамилии
-create Если страница не существует, не пропускать её, а создавать
-redirect Следовать по редиректам

Для этого действия, доступны следующие опции генератора страниц»:

Опции для действия «listify»

* -overwrite   - Перезаписывать текущую страницу содержимым списка, даже если она непуста.
* -showimages  - Отображать изображения, а не давать ссылки на них.
* -talkpages   - Добавляет в список ссылки на страницы обсуждения в дополнение к ссылкам на сами страницы.

Опции для действия «remove»

* -nodelsum    - Указывает не использовать произвольное описание в качестве причины удаления.
                 Вместо этого используется причина удаления по умолчанию (в английском языке — «Category was disbanded»).

<span id="Options_for_move_action">

Опции для действия «move»

-hist Создавать оформленную таблицу на странице обсуждения категорию с историей категории-источника.
-nodelete Не удалять старую категорию после переноса
-nowb Не обновлять репозиторий Wikibase
-allowsplit Если опция не установлена, переименовываются только основная страница и её обсуждение.
-mvtogether Перемещать страницы/подкатегории в категории, только если не существует целевая страница (и страница обсуждения, если не установлено -allowsplit).
-keepsortkey Использовать ключ сортировки старой категории и для новой категории.

Если не указано, ключ сортировки удаляется.

Другой способ сохранить ключ сортировки — использовать опцию -inplace

Опции для действия «tidy»

-namespaces
-namespace
-ns
Фильтровать страницы в указанном пространстве имён. Разделяйте множественные номера пространств имён запятыми.

Примеры:

-ns:0,2,4
-ns:Help,MediaWiki

Опции для нескольких действий

-rebuild сбросить базу данных
-from: Категория, из которой перемещаются страницы (для опции move)

Также категория, из которой удаляются страницы (для опции remove) Также категория, на основе которой создаётся список (для опции listify)

См. примечание под таблицей.

-to: Категория, в которую перемещаются страницы (для опции move)

Также имя создаваемого списка (для опции listify)

См. примечание под таблицей.

-batch Не запрашивать подтверждения удаления опустошённой категории (производить удаление автоматически).
-summary: Выбрать произвольное описание правки.
-inplace Изменять категории на месте без пересортировки.
-recurse Проходить рекурсивно по всем подкатегориям категорий.
-pagesonly При удалении страниц из категории сохранять ссылки на подстраницы и не удалять их.
-match Работать только по страницам, чьи заголовки соответствуют указанному регулярному выражению (для действий move и remove).
-depth: Максимальная глубина, за пределами которой подкатегории не обрабатываются.
Для опций -from и -to:

Если в именах категорий содержатся пробелы, вам следует использовать специальный синтаксис в вашей командной строке, чтобы слова не воспринимались как отдельные параметры. Например, BASH использует одинарные кавычки, -from:'Polar bears'. Для категорий с двоеточием в названии необходимо явным образом указать префикс пространства имён category: или его локализованный эквивалент.

Для действий tidy и tree бот сохраняет структуру категорий локально в category.dump. Это экономит время и нагрузку на сервер, но при повторном использовании данные уже могут устареть; в этом случае используйте параметр -rebuild. Например, чтобы создать новую категорию из списка персоналий, введите:

 python pwb.py category add -person

и следуйте инструкциям на экране.

Или, чтобы сделать это из командной строки, используйте следующий синтаксис:

 python pwb.py category move -from:US -to:"United States"
Это перенесёт все страницы из категории US в категорию United States.


Доступные генераторы и фильтры

Опции генератора
Параметр Описание
-cat Работать по всем страницам в указанной категории. Аргумент также можно указать в виде -cat:имя_категории или в виде -catимя_категории:|первая_страница (также в этой и последующих опциях вместо | можно использовать #)
-catr Аналог -cat, но также рекурсивно включает страницы не только из указанной категории, но и из её подкатегорий, подподкатегорий и т.д. Аргумент может задаваться в виде -catr:имя_категории или -catr:имя_категории|первая_страница.
-subcats Обрабатывать все подкатегории указанной категории. Аргумент может задаваться в виде -subcats:имя_категории или -subcats:имя_категории|первая_страница.
-subcatsr Аналог -subcats, но также рекурсивно включает подподкатегории и т.д. Аргумент может задаваться в виде -subcatsr:имя_категории или -subcatsr:имя_категории|первая_страница.
-uncat Работать по всем некатегоризованным страницам.
-uncatcat Работать по всем некатегоризованным категориям.
-uncatfiles Работать по всем некатегоризованным файлам.
-file Читать список страниц из указанного текстового файла. Имена страниц в файле могут быть окружены квадратными скобками (например, [[Page]]) или разделены переносами строки. Аргумент также может задаваться в виде -file:имя_файла.
-filelinks Работать по всем страницам, содержащим указанный файл. Аргумент также может задаваться в виде -filelinks:имя_файла.
-search Работать по всем страницам, которые будут найдены с помощью поиска MediaWiki по пространствам имён .
-logevents Работать по страницам, полученным с помощью Special:Log. Значение может быть разделённым запятыми списком следующего:
logevent,username,start,end

или для обратной совместимости:

logevent,username,total

Для использования значения по умолчаний оставляйте строку пустой. Доступны опции для каждого типа журналов, типы журналов могут быть следующими:

spamblacklist, titleblacklist, gblblock, renameuser, globalauth, gblrights, gblrename, abusefilter, massmessage, thanks, usermerge, block, protect, rights, delete, upload, move, import, patrol, merge, suppress, tag, managetags, contentmodel, review, stable, timedmediahandler, newusers

Количество страниц по умолчанию — 10.

Примеры:

-logevents:move возвращает страницы из журнала переименования (обычно перенаправления)
-logevents:delete,,20 возвращает 20 страниц из журнала удаления
-logevents:protect,Usr возвращает страницы, защищённые пользователем Usr
-logevents:patrol,Usr,20 возвращает 20 страниц, отпатрулированных пользователем Usr (первичное патрулирование)
-logevents:upload,,20121231,20100101 возвращает страницы, загруженные в 2010, 2011 и 2012
-logevents:review,,20121231 возвращает страницы, отпатрулированные до 31 декабря 2012
-logevents:review,Usr,20121231 возвращает страницы, отпатрулированные пользователем Usr до 31 декабря 2012
В некоторых случаях должно указываться как -logevents:"move,Usr,20"
-interwiki Работать по указанной и странице и всем её аналогам на других языках. Может быть полезно для борьбы с кросс-вики спамом. Внимание: эта опция затрагивает множество вики-сайтов, используйте с осторожностью и проверяйте все свои правки!
-links Работать по всем страницам, на которые ссылается указанная страница. Аргумент также может задаваться в виде -links:имя_страницы.
-liverecentchanges Работать по страницам из списка свежих правок. Если указано как -liverecentchanges:x, работать по x последним правкам.
-imagesused Работать по всем файлам, содержащимся на указанной странице. Аргумент также может задаваться в виде -imagesused:имя_страницы.
-newimages Работать по последним загруженным изображениям. Если задано в виде -newimages:x, работать по x последним изображениям.
-newpages Работать по последним созданным страницам. Если задано в виде -newpages:x, работать по x последним страницам.
-recentchanges Работать по страницам с наиболее свежими правками. Если задано в виде -recentchanges:x, работать по x последним страницам. Если задано в виде -recentchanges:offset,duration, работать по страницам с отступом offset в минутах продолжительностью duration минут.

Примеры:
-recentchanges:20 - возвращает 20 страниц со свежими правками
-recentchanges:120,70 - вернёт страницы с отступом 120 в минутах продолжительностью 70 минут.
-recentchanges:visualeditor,10 - возвращает visualeditor страниц со свежими правками с тэгом visualeditor
-recentchanges:"mobile edit,60,35" - вернёт страницы, отмеченные «мобильной правкой» для данного промежутка времени и начала

rc-тэги поддерживаются, при этом rc-тэг должен быть в самом первом параметре.
-unconnectedpages Работать по новейшим страницам, не связанным с репозиторием Wikibase. Если задано в виде -unconnectedpages:x, обрабатывать x новейших неподсоединённых страниц.
-ref Работать по всем страницам, которые ссылаются на указанную страницу. Аргумент также может задаваться в виде -ref:имя_страницы.
-start Указывает боту обрабатывать все страницы вики в алфавитном порядке, начиная с указанной. Аргумент также может задаваться в виде -start:имя_страницы. Также можно включать пространство имён. Например, -start:Template:! даёт боту задание работать по всем страницам в пространстве имён шаблонов. Значение по умолчанию: start:!
-prefixindex Работать по страницам, начинающимся с общего префикса.
-transcludes Работать по всем страницам, содержащим указанный шаблон. Аргумент также может задаваться в виде -transcludes:Имя.
-unusedfiles Работать по всем описаниям неиспользуемых файлов. Также может задаваться в виде -unusedfiles:n, где n — максимальное количество обрабатываемых страниц.
-lonelypages Работать по всем страницам, на которые не ссылается ни одна страница. Аргумент также может задаваться в виде -lonelypages:n, где n — максимальное количество страниц для обработки.
-unwatched Работать по всем статьям, за которыми никто не наблюдает. Аргумент также может задаваться в виде -unwatched:n, где n — максимальное количество страниц для обработки.
-property:name Работать по всем страницам с указанным свойством из Special:PagesWithProp.
-usercontribs Работать по всем статьям, которые правил указанный пользователь. (Пример: -usercontribs:DumZiBoT)
-weblink Работать по всем статьям, которые содержат внешнюю ссылку на указанный URL; может задаваться в виде -weblink:url
-withoutinterwiki Работать по всем страницам без интервики-ссылок. Аргумент может задаваться в виде -withoutinterwiki:n, где n — общее количество.
-mysqlquery Исполнить запрос Mysql вида "SELECT page_namespace, page_title, FROM page WHERE page_namespace = 0" и работать по страницам из результата. См. Manual:Pywikibot/MySQL .
-sparql Исполнить запрос SPARQL SELECT, включающий ?item и работать по страницам из результата.
-sparqlendpoint Указать URL эндпоинта SPARQL (необязательно). (Пример: -sparqlendpoint:http://myserver.com/sparql)
-searchitem Принимает строку поискового запроса и работает по содержащим его страницам Wikibase. Аргумент может задаваться в виде -searchitem:текст, где текст — искомая строка, или -searchitem:lang:текст, где lang — язык, на котором будет производиться поиск.
-random Работать по случайным страницам, возвращаемым Special:Random. Также может задаваться в виде -random:n, где n — количество возвращаемых страниц.
-randomredirect Работать по случайным перенаправлениям, возвращаемым Special:RandomRedirect. Также может задаваться в виде -randomredirect:n, где n — количество возвращаемых страниц.
-google Работать по страницам, полученным поиском Google. Для этого необходим лицензионный ключ Google Web API. Обратите внимание, что Google больше не предоставляет такие лицензионные ключи. См. google_key в config.py для инструкций. Аргумент также может задаваться в виде -google:поисковая_строка.
-yahoo Работать по страницам, полученным поиском Yahoo. Зависит от модуля Python pYsearch. См. yahoo_appid в config.py для инструкций.
-page Работать по одной странице. Аргумент может задаваться в виде -page:имя_страницы и использоваться несколько раз для нескольких страниц.
-pageid Работать по одному идентификатору страницы. Аргумент также может задаваться в виде -pageid:pageid1,pageid2,.. или -pageid:'pageid1|pageid2|.. и использоваться несколько раз для разных страниц.
-linter Работать по страница с ошибками lint. На сайте должно быть установлено расширение Linter . -linter выбирает все категории. -linter:high, -linter:medium или -linter:low выбирает все категории с указанным приоритетом. Категории могут быть указаны поодиночке через запятую -linter:кат1,кат2,кат3 Указание /int устанавливает Lint ID, с которого будет начинаться запрос; например, -linter:high/10000 -linter:show лишь показывает доступные категории.
Опции фильтрации
Параметр Описание
-catfilter Фильтровать генератор страниц, отдавать только страницы в указанной категории. Формат аргументов см. у генератора -cat.
-grep Регулярное выражение, которому должно соответствовать содержимое статьи. Могут быть указаны множественные -grep:regexpr, страница будет возвращаться, если её содержимое соответствует хотя бы одному из них. Будут использоваться регистронезависимые регулярные выражения, точка соответствует любому символу, включая перевод строки.
-grepnot Like -grep, but return the page only if the regular expression does not match.
-intersect Работать по пересечению всех указанных генераторов.
-limit При использовании любого другого аргумента -limit:n задаёт множество страниц, откуда берётся не более чем n страниц для обработки.
-namespaces
-namespace
-ns
Фильтровать генератор страниц, отдавать только страницы в указанной категории. Разделяйте множественные номера пространств имён запятыми.

Примеры:

-ns:0,2,4 -ns:Help,MediaWiki

Чтобы исключить пространство имён, перед ним надо указывать not Примеры:

-ns:not:2,3 -ns:not:Help,File

Если используется с генераторами -newpages/-random/-randomredirect/-linter, -namespace/-ns должно указываться перед -newpages/-random/-randomredirect/-linter. Если используется с генератором -recentchanges, -namespace следует указывать перед -recentchanges для улучшения производительности.

Если используется с генератором -start, -namespace/-ns должно содержать единственное значение.
-onlyif Утверждение, которое должна содержать страница, иначе элемент не будет возвращаться. Формат — свойство=значение,квалификатор=значение. Можно указывать несколько (или ни одного) квалификаторов, разделённых запятыми.

Примеры:
P1=Q2 (свойство P1 должно содержать значение Q2)
P3=Q4,P5=Q6,P6=Q7 (свойство P3 со значением Q4 и квалификаторами: P5 со значением Q6 и P6 со значением Q7)

Значение может быть идентификатором страницы, координатой в формате: latitude,longitude[,precision] (все значения в десятичных градусах), год или простая строка. Аргумент может быть указан несколько раз, страница будет возвращена, только если соответствует всем аргументам. Аргумент также может задаваться через -onlyif:expression.
-onlyifnot Утверждение, которое не должна содержать страница, иначе элемент не будет возвращаться. См. примеры и использование выше в -onlyif.
-ql Фильтровать страницы по качеству. Применимо только при модели содержимого proofread-page, иначе не оказывает никакого эффекта. Допустимы значения от 0 до 4. Множественные значения разделяются запятыми.
-subpage -subpage:n фильтрует страницы с глубиной n, т.е. глубина 0 отфильтровывает все подстраницы, а глубина 1 — все подстраницы подстраниц.
-titleregex Регулярное выражение, которому должно соответствовать название страницы, иначе она не будет возвращена. Могут быть указаны множественные -titleregex:regexpr, страница будет возвращаться, если соответствует хотя бы одному из них. Будут использоваться регистронезависимые регулярные выражения, точка соответствует любому символу.
-titleregexnot Как -titleregex, но возвращается страницу, если не выполняется соответствие регулярному выражению.

Заметка Заметка: Generators and Filters are available for add action only. tidy and listify action only accepts namespace filter

Доступные глобальные аргументы

Эти параметры переопределяют настройки параметров в user-config.py .

Глобальные параметры
Параметр Описание Конфигурационная переменная
-dir:PATH Прочитать настройки бота из каталога, заданному переменной PATH, а не из каталога по умолчанию.  
-config:file The user config filename. Default is user-config.py. user-config.py
-lang:xx Установить язык Вики с которой вы хотите работать, перезаписывая конфигурацию из user-config.py. Вместо xx должен быть указан код языка (ru). mylang
-family:xyz Установите семейство Вики с которой вы хотите работать, например, Википедия, викисловарь, викисклад, викитрэвел, ... Переопределяет конфигурацию в user-config.py. family
-user:xyz Войдите в систему как пользователь 'xyz' вместо пользователя по умолчанию. usernames
-daemonize:xyz Немедленно возвращает управление терминалу и перенаправляет stdout и stderr в файл xyz (использовать только для ботов, которые не требуют ввода из stdin).  
-help Показать справку.  
-log Включить лог-файл, используя имя файла по умолчанию script_name-bot.log. Журналы будут храниться в подкаталоге logs. log
-log:xyz Включить лог-файл, используя 'xyz' в качестве имени файла. logfilename
-nolog Отключить лог (если он включен по умолчанию).  
-maxlag Устанавливает новый параметр - maxlag (число секунд). Отложить правки ботов в периоды лагов сервера базы данных. Значение по умолчанию устанавливается в config.py maxlag
-putthrottle:n
-pt:n
-put_throttle:n
Указать минимальное время (в секундах) которое бот будет ждать после сохранения страниц. put_throttle
-debug:item
-debug
Включить лог-файл и включить расширенные отладочные данные для компонента "item(элемент)" (для всех компонентов, если используется последующая форма). debug_log
-verbose
-v
Выводить больше отладочной информации в консоль. verbose_output
-cosmeticchanges
-cc
Переключает настройки cosmetic_changes в config.py или user-config.py в противоположные или отменяет их. Все остальные параметры и ограничения остаются без изменений. cosmetic_changes
-simulate Запрещается запись на сервер. Полезно для тестирования и отладки нового кода (если эта опция указана, не делается каких-либо реальных изменений, а только показывается, что изменилось бы). simulate
-<config var>:n Вы можете использовать все заданные числовые настройки переменных как параметр и изменить его из командной строки.  


См. также