59 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
		
		
			
		
	
	
			59 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| 
								 | 
							
								#!/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)
							 | 
						||
| 
								 | 
							
								    isodate = 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")
							 |