server/scripts/register/warn.py

61 lines
2.2 KiB
Python
Raw Normal View History

2002-02-05 00:44:14 +01:00
#!/usr/bin/env python
import MySQLdb
import sys
import smtplib
From='accounts@vinyambar.de'
dbname=sys.argv[1]
2002-03-17 18:19:10 +01:00
dryrun=0
if len(sys.argv)>2:
dryrun=1
2002-02-05 00:44:14 +01:00
price=1.25
2002-03-31 19:12:17 +02:00
warnahead=4
cancelafter=1
2002-02-05 00:44:14 +01:00
db=MySQLdb.connect(db=dbname)
cursor=db.cursor()
2002-03-24 15:29:35 +01:00
users = cursor.execute("select users.email, users.id, count(subscriptions.game) from users, subscriptions, games where users.id=subscriptions.user and subscriptions.game=games.id and users.id!=0 and games.status='RUNNING' GROUP BY users.id")
2002-02-05 00:44:14 +01:00
server=smtplib.SMTP('localhost')
while users > 0:
users=users-1
email, uid, games = cursor.fetchone()
2002-03-31 19:12:17 +02:00
if games==0:
continue
2002-02-05 00:44:14 +01:00
c2 = db.cursor()
t = c2.execute("select sum(balance) from transactions where user="+str(int(uid)))
if t==0:
balance=0.0
else:
balance = c2.fetchone()[0]
2002-03-31 19:12:17 +02:00
Msg=None
if balance <= games*warnahead*price:
Msg = ("From: Vinyambar Buchhaltung <"+From+">\nTo: "+email+"\n")
if balance <= -games*cancelafter*price:
Msg=Msg+"Subject: Vinyambar Abmeldung Kunde "+str(int(uid))+".\n\n"
Msg = Msg+("Nachdem Dein Konto bei uns im Minus ist, haben wir deine\n"+
"Anmeldung bei Vinyambar gek<65>ndigt, und die Partei(en) der Parteib<69>rse\n"+
"zugef<EFBFBD>hrt.\n")
print "CANCEL: "+email+", uid="+str(int(uid))+", balance="+str(balance)+", games="+str(int(games))
2002-03-17 18:19:10 +01:00
if dryrun==0:
2002-04-03 00:33:07 +02:00
c2.execute("UPDATE subscriptions set status='CANCELLED' where user="+str(int(uid)))
2002-03-31 19:12:17 +02:00
else:
print "WARNING: "+email+", uid="+str(int(uid))+", balance="+str(balance)+", games="+str(int(games))
Msg = Msg+"Subject: WARNUNG - Vinyambar Kontostand Kunde "+str(int(uid))+"\n\n"
Msg = Msg+("Dein Vinyambar Kontostand reicht nicht mehr aus, um die kommenden "+str(warnahead)+"\n"+
"Wochen zu bezahlen. Bitte mache baldm<64>glichst eine neue <20>berweisung\n"
"auf das Vinyambar-Konto.\n\n"+
"Kundennummer: "+str(uid)+"\n"+
"Kontostand: "+str(balance)+" EUR\n"+
"\n"+
"Unser Konto: Katja Zedel\n"+
"Kontonummer 1251 886 106\n"+
"BLZ 500 502 01 (Frankfurter Sparkasse)\n")
if (Msg!=None) and dryrun==0:
try:
server.sendmail(From, email, Msg)
2002-02-05 00:44:14 +01:00
except:
print "Could not send confirmation to "+email
print "Exception is:", sys.exc_type, ":", sys.exc_value