You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
907 B
Ruby
37 lines
907 B
Ruby
#!/usr/bin/env ruby
|
|
require 'mediawikibot'
|
|
|
|
if ARGV.size() != 2
|
|
$stderr.print($0 + " <wiki-user> <wiki-password>\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
|
|
|