2005-09-30 13:30:54 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								#!/usr/bin/env ruby
							 
						 
					
						
							
								
									
										
										
										
											2006-04-17 22:32:04 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								$:.unshift('vendor/ruby-mediawiki/lib')
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								$:.unshift('vendor/htree')
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								require 'mediawiki/dotfile'
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								@wiki = MediaWiki.dotfile(nil,'entropia')
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2005-11-06 22:51:58 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								require 'date'
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								#----------------------------------------------------------------------------
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2006-04-17 22:32:04 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								def parse_template(title, template)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  template_re = Regexp.new("\\\{\\\{" + template + "(.*?)\\\}\\\}")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  fields = {}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  fields_string = @wiki.article(title).text.scan(template_re)[0][0]
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  inlink = 0
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  field = ""
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  fields_string += "|" unless fields_string.match(/\|$/)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  fields_string.split(//).each do |c|
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    if c == "|" && inlink == 0
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      (key, value) = field.split(/=/)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      fields[key] = value
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      field = ""
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    else
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      inlink += 1 if c == "["
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      inlink -= 1 if c == "]"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      field += c
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    end
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  fields
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								end
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2005-11-06 22:51:58 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								def datum2isodate(datum)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  return datum[6..9] + "-" + datum[3..4] + "-" + datum[0..1]
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								end
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								def table_termine (t)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  body = '{| border=1 cellspacing="0" cellpadding="5" style="border-collapse:collapse;"'
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  body += "\n"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  body += "| Datum \n| Uhrzeit \n| Ort \n| Beschreibung \n|-\n"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  t.each do |termin|
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    body += "| " + termin["datum"].to_s + "\n" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    body += "| " + termin["uhrzeit"].to_s + "\n" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    body += "| " + termin["ort"].to_s + "\n" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    body += "| " + termin["beschreibung"].to_s + "\n"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    body += "|-\n"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  end
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  body += "|}"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  return body
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								end
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2005-09-30 13:30:54 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								#----------------------------------------------------------------------------
							 
						 
					
						
							
								
									
										
										
										
											2005-11-06 22:51:58 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								termine = []
							 
						 
					
						
							
								
									
										
										
										
											2005-09-30 13:30:54 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								template = "Vorlage:Radio Chaotica-Sendung"
							 
						 
					
						
							
								
									
										
										
										
											2006-04-17 22:32:04 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								@wiki.article(template).what_links_here.each do |page|
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  if erste_sendung = parse_template(page, template)["erste_sendung"]
							 
						 
					
						
							
								
									
										
										
										
											2005-09-30 13:30:54 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    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"
							 
						 
					
						
							
								
									
										
										
										
											2006-04-17 22:32:04 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								@wiki.article(template).what_links_here.each do |page|
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  termin = parse_template(page, template)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  termine.push(termin)
							 
						 
					
						
							
								
									
										
										
										
											2005-09-30 13:30:54 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								end
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								#----------------------------------------------------------------------------
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2005-11-06 22:51:58 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# Get a real date
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								termine.each do |termin|
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  termin["date"] = Date.parse(datum2isodate(termin["datum"]))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								end
							 
						 
					
						
							
								
									
										
										
										
											2005-09-30 13:30:54 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								termine = termine.sort do |x,y| 
							 
						 
					
						
							
								
									
										
										
										
											2005-11-06 22:51:58 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  x["date"] <=> y["date"]
							 
						 
					
						
							
								
									
										
										
										
											2005-09-30 13:30:54 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								end
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2005-11-06 22:51:58 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								vergangene_termine = termine.clone.delete_if { |t| t["date"] >= Date.today() }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								kommende_termine   = termine.clone.delete_if { |t| t["date"] <  Date.today() }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								body  = "== Vergangene Termine ==\n"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								body += table_termine(vergangene_termine)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								body += "\n== Kommende Termine ==\n"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								body += table_termine(kommende_termine)
							 
						 
					
						
							
								
									
										
										
										
											2005-09-30 13:30:54 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2006-04-17 22:32:04 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								a = @wiki.article("Benutzer:Neingeist/Termine")
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								a.text = body
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								a.submit("wiki ex machina")