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')
require 'mediawiki/dotfile'
2005-11-06 22:51:58 +00:00
require 'date'
2006-10-13 18:08:25 +00:00
require 'neinomat.lib.rb'
2005-11-06 22:51:58 +00:00
2006-10-13 18:08:25 +00:00
@wiki = MediaWiki.dotfile(nil,'entropia')
2006-04-17 22:32:04 +00:00
2006-10-13 18:08:25 +00:00
#----------------------------------------------------------------------------
2005-11-06 22:51:58 +00:00
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|
2006-07-11 15:48:44 +00:00
if termin["datum"] !~ /^[0-9]{2}\.[0-9]{2}\.[0-9]{4}.*$/
puts "#{termin["datum"]} looks funny, fall back to today."
termin["date"] = Date.today()
else
termin["date"] = Date.parse(datum2isodate(termin["datum"]))
end
2005-11-06 22:51:58 +00:00
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")