#!/usr/bin/env ruby require 'mediawikibot' if ARGV.size() != 2 $stderr.print($0 + " \n") exit(1) end #------------------------------------------------------------------------------ # Rock! b = MediaWikiBot::WikiBot.new("http://entropia.de/wiki/") b.login(ARGV[0], ARGV[1]) b.get_allpages().delete_if { |title| title !~ /GPN/ }.each do |title| if !b.is_redirect?(title) puts "Processing #{title}" if !b.is_in_category?(title, "Kategorie:GPN") puts "* [[#{title}]] fehlt in [[Kategorie:GPN]]" end if b.get_categories(title).delete_if {|c| c !~ /Kategorie:GPN\d/} .size == 0 # Try to fix it if title =~ /^(GPN\d)/ cat = "[[Kategorie:#{$1}]]" body = b.get_raw(title) + "\n#{cat}\n" b.edit(title, body, cat) else puts "* [[#{title}]] keiner GPN zugeordnet" end end sleep(1) end end