#!/bin/env python
# vim:fileencoding=utf-8:ft=python
#
# kommende Geburtstage anzeigen
#
#

import os, datetime
import gtk

def initialize():

	# Datei mit den Geburtstagen
	geb_datei = os.path.join(pluginDirectory, "geburtstage.txt")
	# Tage bis zum Geburtstag
	tbg = 4


	####################################################
	## Datei öffnen und einlesen

	datei = open(geb_datei, "r")
	dates = datei.readlines()


	####################################################
	## Daten analysieren

	gebnfa = []
	for zeile in dates:
		satz = zeile.rsplit(",", 2)
		datum = satz[1].split(".", 3)
		
		datelist = [ int(foo) for foo in datum ]
		date = apply(datetime.date, list(reversed(datelist)))
		
		if(date.replace(year=datetime.date.today().year) < datetime.date.today()):
			tage = (date.replace(year=(datetime.date.today().year + 1)) - datetime.date.today()).days
		else:
			tage = (date.replace(year=datetime.date.today().year) - datetime.date.today()).days
		name = satz[0]
		alter = int(((datetime.date.today() - date).days + tage) / 365)
		
		if(tage <= tbg):
			gebnfa.append({"name":name,"alter":alter,"tage":tage})

	gebnfa = sorted(gebnfa, key=lambda foo: foo["tage"])


	#####################################################
	## Daten ausgeben, die in naher Zukunft Geburtstag haben

	string =  "Kommende Geburtstage:"
	if(len(gebnfa) == 0):
		string = string + "\nkeiner"
	
	for geb in gebnfa:
		if(geb["tage"]==0):
			string = "%s\n%s heute, %s Jahre" % (string, geb["name"], geb["alter"])
		elif(geb["tage"]==1):
			string = "%s\n%s in %d Tag, %s Jahre" % (string, geb["name"], geb["tage"], geb["alter"])
		else:
			string = "%s\n%s in %d Tage, %s Jahre" % (string, geb["name"], geb["tage"], geb["alter"])
	label = gtk.Label(string)
	widget.add(label)
	window.show_all()
