Руководство:Pywikibot/transferbot.py
Wikimedia Git repository has this file: scripts/transferbot.py |
transferbot.py is a Pywikibot script used to transfer pages from a source wiki to a target wiki.
It also copies edit history to a subpage.
Internal links are not repaired!
Примеры
Transfer all pages in category "Query service" from the English Wikipedia to the Arabic Wiktionary, adding "Wiktionary:Import enwp/" as prefix:
$ python pwb.py transferbot -family:wikipedia -lang:en -cat:"Query service" -tofamily:wiktionary -tolang:ar -prefix:"Wiktionary:Import enwp/"
Copy the template "Query service" from the Toolserver wiki to wikitech:
$ python pwb.py transferbot -family:wikipedia -lang:en -tofamily:wiktionary -tolang:ar -page:"Template:Query service"
Параметры
Parameter | Description |
---|---|
-tolang: |
The target site code. |
-tofamily: |
The target site family. |
-prefix: |
Page prefix on the new site. |
-overwrite: |
Existing pages are skipped by default. Use this option to overwrite pages. |
-target: |
Use page generator of the target site. |
Pages to work on can be specified using any of:
Доступные генераторы и фильтры
Параметр | Описание |
---|---|
-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 , но возвращается страницу, если не выполняется соответствие регулярному выражению. |
Доступные глобальные аргументы
Эта страница устарела. |
Эти параметры переопределяют настройки параметров в 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 |
Вы можете использовать все заданные числовые настройки переменных как параметр и изменить его из командной строки. |