58 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Ruby
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Ruby
		
	
	
		
			Executable file
		
	
	
	
	
#!/usr/bin/env ruby
 | 
						|
require 'mediawikibot'
 | 
						|
 | 
						|
if ARGV.size() != 2
 | 
						|
  $stderr.print($0 + " <wiki-user> <wiki-password>\n")
 | 
						|
  exit(1)
 | 
						|
end
 | 
						|
 | 
						|
b = MediaWikiBot::WikiBot.new("http://www.entropia.de/wiki/")
 | 
						|
b.login(ARGV[0], ARGV[1])
 | 
						|
 | 
						|
termine = []
 | 
						|
 | 
						|
#----------------------------------------------------------------------------
 | 
						|
 | 
						|
template = "Vorlage:Radio Chaotica-Sendung"
 | 
						|
b.get_what_uses_template(template).each do |page|
 | 
						|
  if erste_sendung = b.parse_template(page, template)["erste_sendung"]
 | 
						|
    termin = {}
 | 
						|
    termin["datum"]        = erste_sendung.gsub(/\s*um\s*\d+:\d+$/,"")
 | 
						|
    termin["uhrzeit"]      = "16:00"
 | 
						|
    termin["beschreibung"] = "[[" + page + "]]"
 | 
						|
    termin["ort"]          = "[http://www.querfunk.de Querfunk]"
 | 
						|
    termine.push(termin)
 | 
						|
  else
 | 
						|
    $stderr.print(page, ": erste_sendung nicht gesetzt")
 | 
						|
  end
 | 
						|
end
 | 
						|
 | 
						|
#----------------------------------------------------------------------------
 | 
						|
 | 
						|
template = "Vorlage:Termin"
 | 
						|
b.get_what_uses_template(template).each do |page|
 | 
						|
 termin = b.parse_template(page, template)
 | 
						|
 termine.push(termin)
 | 
						|
end
 | 
						|
 | 
						|
#----------------------------------------------------------------------------
 | 
						|
 | 
						|
 | 
						|
termine = termine.sort do |x,y| 
 | 
						|
  def datum2isodate(datum)
 | 
						|
    return datum[6..9] + "-" + datum[3..4] + "-" + datum[0..1]
 | 
						|
  end
 | 
						|
  datum2isodate(x["datum"]) <=> datum2isodate(y["datum"])
 | 
						|
end
 | 
						|
 | 
						|
body  = '{| border=1 cellspacing="0" cellpadding="5" style="border-collapse:collapse;"'
 | 
						|
body += "\n"
 | 
						|
termine.each do |termin|
 | 
						|
  body += "| " + termin["datum"] + "\n" 
 | 
						|
  body += "| " + termin["beschreibung"] + "\n"
 | 
						|
  body += "|-\n"
 | 
						|
end
 | 
						|
body += "|}"
 | 
						|
 | 
						|
#puts body
 | 
						|
b.edit("Benutzer:Neingeist/Termine", body, "Test")
 |