Gebtag.py

From LUGUM

Jump to: navigation, search

Dieser Code ist die 1:1 übersetzung des Perl Codes

#!/usr/bin/python
# -*- coding: iso-8859-1 -*-

import sys
import MySQLdb
import time
from optparse import OptionParser

db = MySQLdb.connect( host="localhost", db="gebtag",user="gebtag", passwd="gebtag")
c=db.cursor()

def geburtstagler(list):
    jahr = time.strftime('%Y')
    monat = time.strftime('%m')
    tag = time.strftime('%d')
    c.execute("SELECT name, gebtag FROM gebtag")
    tup=c.fetchall()
    vorschau = {    '0' : 'heute',
                    '1' : 'morgen',
                    '2' : 'uebermorgen',
                    '3' : 'in 3 Tagen',
                    '4' : 'in 4 Tagen',
                    '5' : 'in 5 Tagen',
                    '6' : 'in 6 Tagen',
                    '7' : 'in einer Woche'
               }
    for name, datum in tup:
        if list == True:
            alter = int(jahr) - datum.year
            print "%s \t hat am %s.%s.%s geburtstag und wird/wurde dieses Jahr %s Jahre alt" % ( name, datum.day, datum.month, datum.year, alter)
        else:
            for i, o in vorschau.items():
                 testtag = datum.year, monat, int(tag) + int(i[0]), 0, 0, 0, 0, 0, 0
                 gebtag_datum = datum.year, datum.month, datum.day, 0, 0, 0, 0, 0, 0
                 if testtag == gebtag_datum:
                     alter2 = int(jahr) - datum.year
                     print "%s wird %s %s Jahre alt" % (name, o ,alter2)

def add(name,datum):
    if (name, datum) is None:
        print "Datum oder Name fehlen"
        sys.exit()
    else:
        c.execute("insert into gebtag values ('0' ,%s , %s)", (name, datum))


def delete_u(delete):
     c.execute ("delete from gebtag where name=%s limit 1", (delete))


def update(update, datum):
    if (update, datum) is None:
        print "Datum oder Name fehlen"
        sys.exit()
    else:
       print c.execute("update gebtag set gebtag=%s where name=%s ", (datum, update))



parser = OptionParser()
parser.add_option('-l', '--list', dest= 'liste', action= 'store_true', )
parser.add_option('-d', '--datum', dest='datum', type= 'string', action= 'store', )
parser.add_option('--del', dest= 'delete_u', type= 'string', action= 'store', )
parser.add_option('-u', '--update',  dest= 'update', type= 'string', action= 'store', )
parser.add_option('-a',  dest= 'name', type= 'string', action= 'store', )

(options, args) = parser.parse_args()

if options.liste:
    geburtstagler(options.liste)
elif options.datum: 
    if options.update:
        update(options.update, options.datum)
    elif options.name:
        add(options.name, options.datum)
elif options.delete_u:
    delete_u(options.delete_u)

db.close


So würde es Luigi schreiben :-) (Soweit wir gekommen sind)


#!/usr/bin/python

from sqlobject import *
import sys, datetime

class Person(SQLObject):
	name= StringCol()
	gebtag= DateCol()

sqlhub.processConnection = connectionForURI('mysql://gebtag:gebtag@localhost/gebtag')
try:
	Person.createTable()
except:
	pass

def list(self, opt, value, parser, ):
	people= Person.select(CONTAINSSTRING(Person.q.name, ''))
	for guy in people:
		print '%s | %s'% (guy.name, guy.gebtag, )

def add(self, opt, value, parser, ):
	newguy= Person(name= sys.argv[2], gebtag= sys.argv[3])

def delete(self, opt, value, parser):
	try: 
		Person.delete(Person.select(Person.q.name==sys.argv[2])[0].id)
	except:
		print 'Entry not found'

if len(sys.argv)== 1:
	people= Person._connection.queryAll("""select * from `person` where DATE_FORMAT(gebtag, '%d%m') = DATE_FORMAT(CURRENT_DATE()  , '%d%m')""")
	for guy in people:
		print '%s | %s'% (guy[1], guy[2], )

from optparse import OptionParser

parser= OptionParser()
parser.add_option('-l', '--list', action= 'callback', callback= list, )
parser.add_option('-a', '--add', action= 'callback', callback= add, )
parser.add_option('-d', '--delete', action= 'callback', callback= delete, )

(options, args)= parser.parse_args()

Persönliche Werkzeuge