利用者:Tatsujin28/ShortPages
表示
Wikipedia:短いページを作るためのシェルスクリプトです。ダンプデータをインポートした後に、以下のスクリプトを順次実行します。実行の際には、すべてのスクリプトの文字コードを mysql のロケール設定と合わせないと、うまく動かないかもしれません。
shortpagesquery.sh
[編集]#!/bin/sh # shortpagesquery.sh # これは[[Wikipedia:短いページ]]を作成するためのシェルスクリプトです。 # MySQLの wikipedia データベースにインポートしたダンプデータから、ページサイズ別の # 記事データファイルを作成します。このスクリプトとは別に、"under256bytes.sql"と # "over256bytes.sql"の SQL スクリプトが必要です。 # python login.py # 開始処理 echo '=============================================================================' echo '['${0##*/}'] START:' `date +"%Y/%m/%d %T"` echo '=============================================================================' sleep 10 if [ -z ${1} ]; then echo '引数1: ダンプデータ日付がありません。' exit 1 fi dumpymd=${1}'dumpより作成' rm *.out # テンポラリファイルの削除 rm under*.txt # 記事データファイルの削除 echo '256バイトまでの記事を作成中...' # pagefromfile.pyでアップロードできる記事データファイルを作成 mysql --database=wikipedia < under256bytes.sql > b.out cat b.out | sed -e 's/__HEADER/{{-start-}}\n'\'\'\''Wikipedia:短いページ\/256'\'\'\''\n'${dumpymd}'\n\n256バイト未満で[[:Category:曖昧さ回避]]に属さず、リダイレクトでなく、記事名が「\/履歴」で終わらないページ\n/g' > under256bytes.txt echo '{{-stop-}}' >> under256bytes.txt queryShortPages() { min_value=$1 max_value=$2 echo ${min_value} - ${max_value}'バイトまでの記事を作成中...' # pagefromfile.pyでアップロードできる記事データファイルを作成 { cat over256bytes.sql | sed -e 's/__SET_PARAM/SET @min_value='${min_value}',@max_value='${max_value}';/g' > a.out mysql --database=wikipedia < a.out > b.out cat b.out | sed -e 's/__HEADER/{{-start-}}\n'\'\'\''Wikipedia:短いページ\/'${max_value}\'\'\''\n'${dumpymd}'\n\n'${min_value}'バイト以上'${max_value}'バイト未満で[[:Category:曖昧さ回避]]に属さず、リダイレクトでなく、記事名が「\/履歴」で終わらないページ\n/g' > under${max_value}bytes.txt } echo '{{-stop-}}' >> under${max_value}bytes.txt } # 256バイト以上384バイト未満の記事データファイルを順次作成していく queryShortPages 256 384 queryShortPages 384 448 queryShortPages 448 512 queryShortPages 512 544 queryShortPages 544 576 queryShortPages 576 608 queryShortPages 608 640 queryShortPages 640 672 queryShortPages 672 704 queryShortPages 704 736 queryShortPages 736 768 queryShortPages 768 800 queryShortPages 800 832 queryShortPages 832 864 queryShortPages 864 896 queryShortPages 896 928 queryShortPages 928 960 queryShortPages 960 992 queryShortPages 992 1024 queryShortPages 1024 1056 queryShortPages 1056 1088 queryShortPages 1088 1120 queryShortPages 1120 1152 queryShortPages 1152 1184 queryShortPages 1184 1216 queryShortPages 1216 1248 echo '=============================================================================' echo '['${0##*/}'] END:' `date +"%Y/%m/%d %T"` echo '=============================================================================' exit;
under256bytes.sql
[編集]SET @min_value=28,@max_value=256; SELECT CONCAT('* [[',page.page_title,']]') AS "__HEADER" FROM page,revision,text WHERE ( page.page_namespace=0 AND page.page_is_redirect=0 AND page.page_len > @min_value AND page.page_len < @max_value AND page.page_latest = revision.rev_id AND revision.rev_id = text.old_id AND page.page_title NOT LIKE "%/履歴" AND text.old_text NOT LIKE "%imai%" AND text.old_text NOT LIKE "%akujo%" AND text.old_text NOT LIKE "%曖昧さ回避%" AND text.old_text NOT LIKE "%保護性急%" ) OR ( page.page_namespace=0 AND page.page_is_redirect=0 AND page.page_len < @min_value AND page.page_latest = revision.rev_id AND revision.rev_id = text.old_id AND page.page_title NOT LIKE "%/履歴" AND text.old_text NOT LIKE "%imai%" AND text.old_text NOT LIKE "%akujo%" AND text.old_text NOT LIKE "%eletedpage%" AND text.old_text NOT LIKE "%isambig%" AND text.old_text NOT LIKE "%dab%" AND text.old_text NOT LIKE "%Dab%" AND text.old_text NOT LIKE "%曖昧さ回避%" AND text.old_text NOT LIKE "%保護性急%" ) ORDER BY page.page_title;
over256bytes.sql
[編集]__SET_PARAM SELECT CONCAT('* [[',page.page_title,']]') AS "__HEADER" FROM page,revision,text WHERE page.page_namespace=0 AND page.page_is_redirect=0 AND page.page_len >= @min_value AND page.page_len < @max_value AND page.page_latest = revision.rev_id AND page.page_title NOT LIKE "%/履歴" AND revision.rev_id = text.old_id AND text.old_text NOT LIKE "%imai%" AND text.old_text NOT LIKE "%akujo%" AND text.old_text NOT LIKE "%isambig%" AND text.old_text NOT LIKE "%dab%" AND text.old_text NOT LIKE "%Dab%" AND text.old_text NOT LIKE "%曖昧さ回避%" ORDER BY page.page_title;
shortpagesupload.sh
[編集]pywikipediabotのディレクトリで動かすシェルスクリプトです。
#!/bin/sh # shortpagesupload.sh # これは[[Wikipedia:短いページ]]を作成するためのシェルスクリプトです。 # shortpagesquery.shで作成した記事データファイルを、ウィキペディア日本語版に # 上書き投稿します。 # python login.py # 開始処理 echo '=============================================================================' echo '['${0##*/}'] START:' `date +"%Y/%m/%d %T"` echo '=============================================================================' sleep 10 if [ -z ${1} ]; then echo '引数1: ダンプデータ日付がありません。' exit 1 fi summary=${1}'dumpから作成。' uploadShortPages() { max_value=$1 python pagefromfile.py -file:/home/tatsujin/jawp_shortpages/under${max_value}bytes.txt -summary:${summary} -force -notitle } uploadShortPages 256 uploadShortPages 384 uploadShortPages 448 uploadShortPages 512 uploadShortPages 544 uploadShortPages 576 uploadShortPages 608 uploadShortPages 640 uploadShortPages 672 uploadShortPages 704 uploadShortPages 736 uploadShortPages 768 uploadShortPages 800 uploadShortPages 832 uploadShortPages 864 uploadShortPages 896 uploadShortPages 928 uploadShortPages 960 uploadShortPages 992 uploadShortPages 1024 uploadShortPages 1056 uploadShortPages 1088 uploadShortPages 1120 uploadShortPages 1152 uploadShortPages 1184 uploadShortPages 1216 uploadShortPages 1248 echo '=============================================================================' echo '['${0##*/}'] END:' `date +"%Y/%m/%d %T"` echo '=============================================================================' exit;