Руководство:Pywikibot/category.py
Wikimedia Git repository has this file: scripts/category.py |
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 | Использовать ключ сортировки старой категории и для новой категории.
Если не указано, ключ сортировки удаляется. Другой способ сохранить ключ сортировки — использовать опцию |
Опции для действия «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: | Максимальная глубина, за пределами которой подкатегории не обрабатываются. |
Если в именах категорий содержатся пробелы, вам следует использовать специальный синтаксис в вашей командной строке, чтобы слова не воспринимались как отдельные параметры.
Например, 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 |
Работать по страницам с наиболее свежими правками. Если задано в виде , работать по x последним страницам. Если задано в виде , работать по страницам с отступом offset в минутах продолжительностью duration минут.
Примеры: |
-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 Чтобы исключить пространство имён, перед ним надо указывать -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 |
Утверждение, которое должна содержать страница, иначе элемент не будет возвращаться. Формат — свойство=значение,квалификатор=значение. Можно указывать несколько (или ни одного) квалификаторов, разделённых запятыми.
Примеры: -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 |
Вы можете использовать все заданные числовые настройки переменных как параметр и изменить его из командной строки. |
См. также
- fr:Aide:Pywikipedia/category.py
- wikigraphviz - visualizes category tree with https://graphviz.org/
- stable source of category.py