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

This page is a translated version of the page Manual:Pywikibot/create categories.py and the translation is 91% complete.

create_categories.py — это скрипт Pywikibot , используемый для создания категорий.

The program expects a generator of category titles to be used as suffix for creating new categories with a different base.

Параметры

Принимаются следующие аргументы командной строки:


ParameterDescription
-always делать правки без подтверждений
-parent Имя родительской категории
-basename Префикс имён новых категорий
-overwrite Существующие категории по умолчанию пропускаются. Эта опция заставляет скрипт перезаписывать их

Пример

   $ python pwb.py create_categories \
        -lang:commons \
        -family:commons \
        -links:User:Multichill/Wallonia \
        -parent:"Cultural heritage monuments in Wallonia" \
        -basename:"Cultural heritage monuments in"

Страница 'User:Multichill/Wallonia' на Викискладе содержит ссылки на категории вида [[Category:Hensies]], что заставляет скрипт создавать Category:Cultural heritage monuments in Hensies.


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

Опции генератора
Параметр Описание
-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, но возвращается страницу, если не выполняется соответствие регулярному выражению.


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

Эти параметры переопределяют настройки параметров в 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 Вы можете использовать все заданные числовые настройки переменных как параметр и изменить его из командной строки.