Manual:Pywikibot/transwikiimport.py
このファイルはウィキメディアの Git リポジトリにあります: scripts/transwikiimport.py |
Pywikibot スクリプト |
---|
|
transwikiimport.py は、転送元ウィキから転送先ウィキにページを転送するために使用される Pywikibot スクリプトです。
The complete edit history can be imported. So a recursive import of all transcluded pages and templates is possible.
内部リンクは修復されません。
The script gives access to all options available on the Specialpage:Import and over the appropriate API (see API:Import.
例
カテゴリ「Query service」にあるすべてのページを転送元ウィキからホームウィキに転送し、ページのすべてのバージョン (完全な履歴) をインポートします。変更をローカルに存在するアカウントに割り当て、適切な要約を設定します。同じ名前の既存のページがある場合は上書きしません:
$ python pwb.py transwikiimport -interwikisource:en -cat:"Query service" -fullhistory -assignknownusers -summary:"Pages from the category Query service copied."
ページ「Page:How to become famous.djvu/333」を転送元ウィキからホームウィキにコピーし、ページのすべてのバージョン (完全な履歴) をインポートします。変更をローカルに存在するアカウントに割り当て、適切な要約を設定します。同じ名前の既存のページがある場合は上書きしません:
$ python pwb.py transwikiimport -interwikisource:en -page:"How to become famous.djvu/333" -fullhistory -assignknownusers -summary:"Page copied from the oldwiki."
カテゴリ「Page:How to become famous.djvu/?」にあるすべてのページを転送元ウィキからホームウィキにコピーし、ページのすべてのバージョン (完全な履歴) をインポートします。変更をローカルに存在するアカウントに割り当て、適切な要約を設定します。同じ名前の既存のページがある場合は上書きしません:
カテゴリ「Page:How to become famous.djvu/?」の 111 から 222 までのページを転送元ウィキからホームウィキにコピーし、ページのすべてのバージョン (完全な履歴) をインポートします。変更をローカルに存在するアカウントに割り当て、適切な要約を設定します。同じ名前の既存のページがある場合は上書きしません:
Linux システム上でこれを実行するためのワンライナーは、以下のようになります:
$ for i in {111..222} ; do python3 pwb.py transwikiimport -interwikisource:en -page:"How to become famous.djvu/$i" -fullhistory -assignknownusers -summary:"Page copied from the oldwiki." ; done
Windows マシン上での実行には、以下のように使用できます:
$ FOR /L %A IN (111,1,222) DO python pwb.py transwikiimport -interwikisource:en -page:"How to become famous.djvu/%A" -fullhistory -assignknownusers -summary:"Page copied from the oldwiki."
パラメータ
パラメーター | 説明 |
---|---|
-interwikisource: |
The interwiki code of the source wiki. |
-fullhistory: |
Include all versions of the page. |
-includealltemplates: |
All templates and transcluded pages will be copied (dangerous). |
-assignknownusers: |
If user exists on target wiki, assign the editions to them. |
-correspondingnamespace: |
The number of the corresponding namespace. |
-rootpage: |
Import as subpages of ... |
-summary: |
Log entry import summary. |
-tags: |
Change tags to apply to the entry in the import log and to the null revision on the imported pages. |
-test: |
No import, the names of the pages are output. |
-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:
Generators and filters available
パラメーター | 説明 |
---|---|
-cat |
特定のカテゴリに属するすべてのページを対象にする。 Argument can also be given as "-cat:categoryname" or as "-cat:categoryname|fromtitle" (using # instead of | is also allowed in this one and the following) |
-catr |
Like -cat, but also recursively includes pages in subcategories, sub-subcategories etc. of the given category. Argument can also be given as "-catr:categoryname" or as "-catr:categoryname|fromtitle". |
-subcats |
特定のカテゴリに属するすべての下位カテゴリを対象にする。 Argument can also be given as "-subcats:categoryname" or as "-subcats:categoryname|fromtitle". |
-subcatsr |
Like -subcats, but also includes sub-subcategories etc. of the given category. Argument can also be given as "-subcatsr:categoryname" or as "-subcatsr:categoryname|fromtitle". |
-uncat |
カテゴリに属していないすべてのページを対象にする。 |
-uncatcat |
カテゴリ分けされていないすべてのカテゴリを対象にする。 |
-uncatfiles |
カテゴリに属していないすべてのファイルを対象にする。 |
-file |
Read a list of pages to treat from the named text file. Page titles in the file may be either enclosed with brackets (example: [[Page]] ), or be separated by new lines. Argument can also be given as "-file:filename". |
-filelinks |
特定の画像/メディア ファイルを使用しているすべてのページを対象にする。 Argument can also be given as "-filelinks:filename". |
-search |
すべての名前空間 にわたって MediaWiki の検索で見つかったすべてのページを対象にする。 |
-logevents |
指定された Special:Log にある記事を対象にする。 The value may be a comma separated list of these values:
logevent,username,start,end or for backward compatibility: logevent,username,total To use the default value, use an empty string. You have options for every type of logs given by the log event parameter which could be one of the following: 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 It uses the default number of pages 10. 例: -logevents:move gives pages from move log (usually redirects) -logevents:delete,,20 gives 20 pages from deletion log -logevents:protect,Usr gives pages from protect by user Usr -logevents:patrol,Usr,20 gives 20 patroled pages by Usr -logevents:upload,,20121231,20100101 gives upload pages in the 2010s, 2011s, and 2012s -logevents:review,,20121231 gives review pages since the beginning till the 31 Dec 2012 -logevents:review,Usr,20121231 gives review pages by user Usr since the beginning till the 31 Dec 2012In some cases it must be given as -logevents:"move,Usr,20" |
-interwiki |
指定されたページと、他の言語の同等のページをすべて対象にする。 This can, for example, be used to fight multi-site spamming. Attention: this will cause the bot to modify pages on several wiki sites, this is not well tested, so check your edits! |
-links |
特定のページからリンクされているすべてのページを対象にする。 Argument can also be given as "-links:linkingpagetitle". |
-liverecentchanges |
Work on pages from the live recent changes feed. If used as -liverecentchanges:x, work on x recent changes. |
-imagesused |
特定のページに含まれるすべての画像を対象とする。 Can also be given as "-imagesused:linkingpagetitle". |
-newimages |
Work on the most recent new images. If given as -newimages:x, will work on x newest images. |
-newpages |
Work on the most recent new pages. If given as -newpages:x, will work on x newest pages. |
-recentchanges |
Work on the pages with the most recent changes. If given as -recentchanges:x , will work on the x most recently changed pages. If given as -recentchanges:offset,duration it will work on pages changed from 'offset' minutes with 'duration' minutes of timespan.
Examples: |
-unconnectedpages |
Work on the most recent unconnected pages to the Wikibase repository. Given as -unconnectedpages:x, will work on the x most recent unconnected pages. |
-ref |
特定のページにリンクしているすべてのページを対象にする。 Argument can also be given as "-ref:referredpagetitle". |
-start |
Specifies that the robot should go alphabetically through all pages on the home wiki, starting at the named page. Argument can also be given as "-start:pagetitle". You can also include a namespace. For example, "-start:Template:!" will make the bot work on all pages in the template namespace. default value is start:! |
-prefixindex |
Work on pages commencing with a common prefix. |
-transcludes |
特定のテンプレートを使用しているすべてのページを対象にする。 Argument can also be given as "-transcludes:Title". |
-unusedfiles |
どこにも使用されていない画像/メディア ファイルのすべての解説ページを対象にする。 Argument can be given as "-unusedfiles:n" where n is the maximum number of articles to work on. |
-lonelypages |
他の記事からリンクされていないすべての記事を対象にする。 Argument can be given as "-lonelypages:n" where n is the maximum number of articles to work on. |
-unwatched |
誰からもウォッチリストに登録されていないすべての記事を対象にする。 Argument can be given as "-unwatched:n" where n is the maximum number of articles to work on. |
-property:name |
Special:PagesWithProp から指定されたプロパティ名を持つすべてのページを対象にする。 |
-usercontribs |
特定の利用者が編集したすべての記事を対象にする。 (Example : -usercontribs:DumZiBoT) |
-weblink |
指定された URL への外部リンクを含むすべての記事を対象にする。「-weblink:url」として指定されることもある。 |
-withoutinterwiki |
言語間リンクがないすべてのページを対象にする。 Argument can be given as "-withoutinterwiki:n" where n is the total to fetch. |
-mysqlquery |
Takes a Mysql query string like "SELECT page_namespace, page_title, FROM page WHERE page_namespace = 0" and works on the resulting pages. See Manual:Pywikibot/MySQL . |
-sparql |
Takes a SPARQL SELECT query string including ?item and works on the resulting pages. |
-sparqlendpoint |
Specify SPARQL endpoint URL (optional). (Example : -sparqlendpoint:http://myserver.com/sparql) |
-searchitem |
Takes a search string and works on Wikibase pages that contain it. Argument can be given as "-searchitem:text", where text is the string to look for, or "-searchitem:lang:text", where lang is the language to search items in. |
-random |
Work on random pages returned by Special:Random. Can also be given as "-random:n" where n is the number of pages to be returned. |
-randomredirect |
Work on random redirect pages returned by Special:RandomRedirect. Can also be given as "-randomredirect:n" where n is the number of pages to be returned. |
-google |
Google 検索で見つかるすべてのページを対象にする。 You need a Google Web API license key. Note that Google doesn't give out license keys anymore. See google_key in config.py for instructions. Argument can also be given as "-google:searchstring". |
-yahoo |
Yahoo 検索で見つかるすべてのページを対象にする。 Depends on python module pYsearch. See yahoo_appid in config.py for instructions. |
-page |
単一のページを対象にする。 Argument can also be given as "-page:pagetitle", and supplied multiple times for multiple pages. |
-pageid |
単一のページ ID を対象にする。 Argument can also be given as "-pageid:pageid1,pageid2,." or "-pageid:'pageid1|pageid2|..'" and supplied multiple times for multiple pages. |
-linter |
lint エラーがあるページを対象にする。 Extension Linter must be available on the site. -linter select all categories. -linter:high, -linter:medium or -linter:low select all categories for that prio. Single categories can be selected with commas as in -linter:cat1,cat2,cat3 Adding '/int' identifies Lint ID to start querying from: e.g. -linter:high/10000 -linter:show just shows available categories. |
パラメーター | 説明 |
---|---|
-catfilter |
Filter the page generator to only yield pages in the specified category. See -cat generator for argument format. |
-grep |
A regular expression that needs to match the article otherwise the page won't be returned. Multiple -grep:regexpr can be provided and the page will be returned if content is matched by any of the regexpr provided. Case insensitive regular expressions will be used and dot matches any character, including a newline. |
-grepnot |
Like -grep, but return the page only if the regular expression does not match. |
-intersect |
Work on the intersection of all the provided generators. |
-limit |
When used with any other argument -limit:n specifies a set of pages, work on no more than n pages in total. |
-namespaces -namespace -ns |
Filter the page generator to only yield pages in the specified namespaces. Separate multiple namespace numbers or names with commas.
例: -ns:0,2,4 -ns:Help,MediaWiki You may use a preleading "not" to exclude the namespace. 例: -ns:not:2,3 -ns:not:Help,File If used with -newpages/-random/-randomredirect/-linter generators, -namespace/-ns must be provided before -newpages/-random/-randomredirect/-linter. If used with -recentchanges generator, efficiency is improved if -namespace is provided before -recentchanges. If used with -start generator, -namespace/-ns shall contain only one value. |
-onlyif |
A claim the page needs to contain, otherwise the item won't be returned. The format is property=value,qualifier=value. Multiple (or none) qualifiers can be passed, separated by commas.
例: -onlyif:expression ". |
-onlyifnot |
A claim the page must not contain, otherwise the item won't be returned. For usage and examples, see -onlyif above. |
-ql |
Filter pages based on page quality. This is only applicable if contentmodel equals 'proofread-page', otherwise has no effects. Valid values are in range 0-4. Multiple values can be comma-separated. |
-subpage |
-subpage:n filters pages to only those that have depth n i.e. a depth of 0 filters out all pages that are subpages, and a depth of 1 filters out all pages that are subpages of subpages. |
-titleregex |
A regular expression that needs to match the article title otherwise the page won't be returned. Multiple -titleregex:regexpr can be provided and the page will be returned if title is matched by any of the regexpr provided. Case insensitive regular expressions will be used and dot matches any character. |
-titleregexnot |
Like -titleregex , but return the page only if the regular expression does not match. |
利用できるグローバル引数
このページは直近の情報を反映していません。 |
以下のオプションを用いることで、user-config.py の設定を上書きすることができます。
パラメーター | 説明 | 設定変数名 |
---|---|---|
-dir:パス |
既定のディレクトリではなく、PATH で指定されたディレクトリからボットの設定データを読み込みます。 | |
-config:ファイル |
The user config filename. Default is user-config.py. | user-config.py |
-lang:xx |
user-config.py の設定を上書きする形で、作業するウィキの言語を設定します。xx には設定する適切な言語コードに置き換えてください。 | mylang |
-family:xyz |
作業するウィキのファミリーを設定します。xyz には wikipedia、wiktionary、wikitravel などを指定します。 This will override the configuration in user-config.py. | family |
-user:xyz |
既定の利用者名ではなく、利用者 'xyz' としてログインします。 | usernames |
-daemonize:xyz |
直ちにターミナルへ操作を返し、stdout と stderr をファイル xyz にリダイレクトします。これは stdin からの入力を必要としないボットのみで使用します。 | |
-help |
ヘルプ テキストを表示します。 | |
-log |
ログファイル (ファイル名は既定で「スクリプト名-bot.log」の形式になります) の出力を有効にします。ログは logs の下位ディレクトリに保存されます。 | log |
-log:xyz |
ファイル xyz へのログの出力を有効にします。xyz にはファイル名を指定します。 | logfilename |
-nolog |
ログ ファイルの出力を無効にします (既定で有効になっている場合)。 | |
-maxlag |
maxlag パラメータの秒数を新しく設定します。 データベース サーバーが遅延している間、ボットの編集を遅らせます。既定値は config.py で設定できます。 | maxlag |
-putthrottle:n -pt:n -put_throttle:n |
ページを保存するまでの最小時間(秒)を設定します。 | put_throttle |
-debug:item -debug |
コンポーネント "item" の拡張デバッグデータをログファイルに出力します。item にはデバッグの対象を指定します。item を指定しない場合、すべてのコンポーネントが対象になります。 | debug_log |
-verbose -v |
デバッグに役立つ、より詳細なメッセージをコンソールに出力するようにします。 | verbose_output |
-cosmeticchanges -cc |
config.py あるいは user-config.py での cosmetic_changes 設定を逆にし、無効にします。 その他の設定や制限はそのまま使用されます。 | cosmetic_changes |
-simulate |
サーバーへの書き込みを無効にします。 これは、コードのテストやデバッグに有用です (このオプションを使用時、変更される内容は表示されますが、実際に変更されることはありません)。 | simulate |
-<設定変数>:n |
任意の設定変数と数値をオプションとして使用し、それをコマンドラインで変更できるようにします。 |
Warning
The parameter -test disables the import and the bot prints the names of the pages that would be imported.
Since the import of pages is a quite exceptional process and potentially dangerous it should be made carefully and tested in advance.
The -test parameter can help to find out which pages would be moved and what would be the target of the import.
However it does not print the titles of the transcluded pages (e.g. templates) if -includealltemplates is set. This option is quite dangerous. If the title of an existing page on home wiki clashes with the title of one of the linked pages it would be overritten. The histories would be merged. (If the imported version is newer.)
Even if -overwrite is not set the linked page can be overwritten.
The correspondingnamespace is used only if the namespaces on both wikis do not correspond one with another.
correspondingnamespace and rootpage are mutually exclusive.
target and rootpage are mutually exclusive. (This combination does not seem to be feasible.)
If the target page already exists, the target page will be overwritten if -overwrite is set or skipped otherwise.
The module gives access to all parameters of the API (and special page).
However for most scenarios the following parameters should be avoided:
- overwrite (by default set as False)
- target (by default set as False)
- includealltemplates (by default set as False)
Transwikiimportbot.py is also compatible to the transferbot module (Manual.
Rights
transwikiimport.py requires an appropriate flag be set on the account.
Even the Specialpage:Import can be accesed by administrators, tranwiki importers or importers only.
Interwikisource
The list of wikis that can be used as a source is defined in the variable $wgImportSources
It can be viewed on the Specialpage:Import.