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

This page is a translated version of the page Manual:Pywikibot/category.py and the translation is 100% complete.
Other languages:
English • ‎Türkçe • ‎català • ‎italiano • ‎polski • ‎русский • ‎日本語 • ‎한국어

Синтаксис

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

   python pwb.py category action [-option]

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

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

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

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

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

Если используется действие «add», доступны следующие опции:


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

Опции генератора
Параметр Описание
‑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, страница будет возвращаться, если её содержимое соответствует хотя бы одному из них. Будут использоваться регистронезависимые регулярные выражения, точка соответствует любому символу, включая перевод строки.
‑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, но возвращается страницу, если не выполняется соответствие регулярному выражению.


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

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

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

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

Опции для действия «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)
        ОБРАТИТЕ ВНИМАНИЕ: Если в именах категорий содержатся пробелы, вам следует использовать специальный синтаксис в вашей командной строке, чтобы слова не воспринимались как отдельные параметры.
        Например, BASH использует одинарные кавычки -from:'Polar bears'
* -batch       - Не запрашивать подтверждения удаления опустошённой категории (производить удаление автоматически).
* -summary:    - Выбрать произвольное описание правки.
* -inplace     - Изменять категории на месте без пересортировки.
* -recurse     - Проходить рекурсивно по всем подкатегориям категорий.
* -pagesonly   - При удалении страниц из категории сохранять ссылки на подстраницы и не удалять их.
* -match       - Работать только по страницам, чьи заголовки соответствуют указанному регулярному выражению (для действий move и remove).
* -depth:      - Максимальная глубина, за пределами которой подкатегории не обрабатываются.

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

 python pwb.py category add -person

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

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

 python pwb.py category move -from:US -to:"United States"

Это перенесёт все страницы из категории US в категорию United States.


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

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

Глобальные параметры
Параметр Описание Конфигурационная переменная
‑dir:PATH Прочитать настройки бота из каталога, заданному переменной PATH, а не из каталога по умолчанию. -
‑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 Вы можете использовать все заданные числовые настройки переменных как параметр и изменить его из командной строки. -

См. также