36 lines
		
	
	
	
		
			925 B
		
	
	
	
		
			Ruby
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
	
		
			925 B
		
	
	
	
		
			Ruby
		
	
	
		
			Executable file
		
	
	
	
	
#!/usr/bin/env ruby 
 | 
						|
 | 
						|
require 'http-access2'
 | 
						|
require 'mediawikibot'
 | 
						|
require 'vpim/icalendar'
 | 
						|
include Vpim
 | 
						|
 | 
						|
if ARGV.size() != 2
 | 
						|
  $stderr.print($0 + " <wiki-user> <wiki-password>\n")
 | 
						|
  exit(1)
 | 
						|
end
 | 
						|
 | 
						|
$ical_url = "webcal://upcoming.org/calendar/metro/1551"
 | 
						|
$web_url = "http://upcoming.org/metro/de/bawue/ka/"
 | 
						|
 | 
						|
def get_events()
 | 
						|
  @client = HTTPAccess2::Client.new() 
 | 
						|
  ical = @client.get_content($ical_url.gsub(/^webcal:/, "http:"))
 | 
						|
  events = []
 | 
						|
  Icalendar.decode(ical).each do |publish|
 | 
						|
    publish.events.each do |event|
 | 
						|
      events.push(event)
 | 
						|
    end
 | 
						|
  end
 | 
						|
  return events
 | 
						|
end
 | 
						|
 | 
						|
body = "Folgende Termine stammen von #{$web_url} ([#{$ical_url} iCal]):\n\n"
 | 
						|
get_events().each do |event|
 | 
						|
  body += "* #{event.dtstart.mday}.#{event.dtstart.month}. #{event.summary}\n"
 | 
						|
end
 | 
						|
 | 
						|
b = MediaWikiBot::WikiBot.new("http://ka.stadtwiki.net/")
 | 
						|
b.login(ARGV[0], ARGV[1])
 | 
						|
 | 
						|
b.edit("Benutzer:Neingeist/Termine_aus_upcoming.org", body, "Import")
 |