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
Plaintext
37 lines
907 B
Plaintext
19 years ago
|
#!/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
|
||
|
|