From LUGUM
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()