web-dev-qa-db-ja.com

MediaWikiで自分以外のスパマーが作成したすべてのWikiページを削除するにはどうすればよいですか?

MediaWikiサイトを実装しましたが、残念なことに、誰かが何千ものユーザーを介して何千ものページを作成しました。

これらのユーザーが作成した、私のページを除くすべてのページを削除するには、どのクエリを実行できますか?

MediaWikiページはMediaWikiデータベース内のwiki_pageおよびwiki_textにありますが、それらのページを作成したユーザーに関するフィールドはありません。

最大のテーブル:

  • wiki_text:682MB
  • wiki_externallinks:162.5 MB
  • wiki_recentchange:95 MB
  • wiki_page:43 MB

    ここ 、私の問題に対する可能な答えを見つけましたが、最初のステップでブロックされています:

「あなたが作成した記事をエクスポートする(おそらくWikiSysopユーザーまたは同様のものとしてログインしている)」

テーブルにページを作成したユーザーに関するフィールドがない場合、自分で作成した記事をエクスポートするにはどうすればよいですか?

3
Pitone

Pythonを知っている(または学ぶことを恐れない)場合は、 pywikibot でこれにアプローチする必要があります。

wiki.allpages()をループして、ページを削除するかどうかを決定するロジックを追加できます。良い基準:

  • ページに特定の単語が含まれていますか?例えば。薬物またはポルノに関連する。
  • このページには他のページへのウィキリンクがありますか?
  • ページに他のページからのリンクがありますか?

(興味がある場合は、ここにPython行をいくつか追加できます。お知らせください。)

2
guaka