Pour viter toute confusion future, on stocke les dates de blacklist en
nombre de secondes coules depuis Epoch. darcs-hash:20060326040722-68412-25d9d48ded7ffc0279da4fbbeb74bdf610a33b2f.gz
This commit is contained in:
parent
9623054b9d
commit
230e01cc1b
3 changed files with 50 additions and 46 deletions
|
@ -61,10 +61,14 @@ def generate_ps(sanction, proprio):
|
|||
template = template.replace('~mail~', proprio.email().encode('iso8859-15'))
|
||||
template = template.replace('~debut~', strftime(format_date, localtime()))
|
||||
template = template.replace('~fin~', strftime(format_date, localtime(time()+14*86400)))
|
||||
historique = [ bl.encode('iso-8859-15').split(',') for bl in proprio.blacklist() if bl.split(',')[2] == 'autodisc_upload' ] # filtrage des autodisc
|
||||
historique = [ (strftime('%A %d %B %Y', strptime(bl[0], '%d/%m/%Y %H:%M')), bl[-1].split(' ')[-2]) for bl in historique ] # transfomation en tupple (date, upload)
|
||||
historique = [ '%s & %s & Mo'%(bl[0], bl[1]) for bl in historique ] # tranformation en ligne
|
||||
historique = '\\\\\n'.join(historique) # assemblage des lignes
|
||||
# filtrage des autodisc
|
||||
historique = [ bl.encode('iso-8859-15').split('$') for bl in proprio.blacklist() if bl.split('$')[2] == 'autodisc_upload' ]
|
||||
# transfomation en tuple (date, upload)
|
||||
historique = [ (strftime('%A %d %B %Y', localtime(int(bl[0]))), bl[-1].split(' ')[-2]) for bl in historique ]
|
||||
# tranformation en ligne
|
||||
historique = [ '%s & %s & Mo'%(bl[0], bl[1]) for bl in historique ]
|
||||
# assemblage des lignes
|
||||
historique = r'\\\n'.join(historique)
|
||||
template = template.replace('~historique~', historique)
|
||||
template = template.replace('~limitehard~', str(upload.hard))
|
||||
template = template.replace('~nbadher~', str(len(ldap.search('paiement=ok')['adherent'])))
|
||||
|
@ -219,9 +223,9 @@ for elupload, eltype, elid in uploadeurs:
|
|||
|
||||
# On sanctionne
|
||||
###############
|
||||
debut = localtime(time())
|
||||
fin = localtime(time()+60*60*24)
|
||||
proprio.blacklist(["%.2d/%.2d/%.4d %.2d:%.2d" % (debut[2], debut[1], debut[0], debut[3], debut[4]), "%.2d/%.2d/%.4d %.2d:%.2d" % (fin[2], fin[1], fin[0], fin[3], fin[4]), 'autodisc_upload', "Déconn auto. %s Mo" % elupload])
|
||||
debut = int(time())
|
||||
fin = debut + 24*3600
|
||||
proprio.blacklist([debut, fin, 'autodisc_upload', "Déconn auto. %s Mo" % elupload])
|
||||
proprio.save()
|
||||
|
||||
# On envoie un mail à l'adhérent
|
||||
|
@ -239,7 +243,7 @@ for elupload, eltype, elid in uploadeurs:
|
|||
|
||||
# Vérification du nombre de déconnexions
|
||||
#########################################
|
||||
nb_decos = len([ x for x in proprio.blacklist() if mktime(strptime(x.split(',')[0], '%d/%m/%Y %H:%M')) > mktime(localtime())-30*24*60*60 and x.split(',')[2] == 'autodisc_upload' ])
|
||||
nb_decos = len([ x for x in proprio.blacklist() if int(x.split('$')[0]) > time()-30*24*3600 and x.split('$')[2] == 'autodisc_upload' ])
|
||||
if nb_decos >= 3:
|
||||
|
||||
# Génération du fichier postscript
|
||||
|
@ -329,7 +333,7 @@ for ip, nombre in infectes:
|
|||
index = [blacklist.index(x) for x in blacklist if 'virus' in x ]
|
||||
if index:
|
||||
# L'adhérent est déjà blacklisté
|
||||
proprio.blacklist(( index[0] , ['now', '-', 'virus', hostname] ))
|
||||
proprio.blacklist((index[0], ['now', '-', 'virus', hostname]))
|
||||
proprio.save()
|
||||
else:
|
||||
# L'adhérent n'est pas encore blacklisté
|
||||
|
@ -367,10 +371,10 @@ for ip, nombre in infectes:
|
|||
curseur.execute(requete)
|
||||
|
||||
# On récupère les index des lignes de bl où il y a marqué virus
|
||||
index = [blacklist.index(x) for x in blacklist if 'virus' in x ]
|
||||
index = [ blacklist.index(x) for x in blacklist if 'virus' in x ]
|
||||
if index:
|
||||
# L'adhérent est déjà blacklisté
|
||||
proprio.blacklist(( index[0] , ['now', '-', 'virus', hostname] ))
|
||||
proprio.blacklist((index[0], ['now', '-', 'virus', hostname]))
|
||||
proprio.save()
|
||||
else:
|
||||
# L'adhérent n'est pas encore blacklisté
|
||||
|
@ -410,8 +414,8 @@ for IP in infectes:
|
|||
# En prenant en compte le fait que d'autres lignes de blackliste
|
||||
# ont pu s'ajouter.
|
||||
for ligne in bl:
|
||||
if ',-,virus,%s'%hostname in ligne:
|
||||
liste = ligne.split(',')
|
||||
if '$-$virus$%s' % hostname in ligne:
|
||||
liste = ligne.split('$')
|
||||
argument = [liste[0], 'now', liste[2], liste[3]]
|
||||
index = bl.index(ligne)
|
||||
proprio.blacklist((index, argument))
|
||||
|
@ -480,7 +484,7 @@ for ip, id_p2p, nombre in fraudeurs:
|
|||
|
||||
# Vérification du nombre de déconnexions
|
||||
#########################################
|
||||
nb_decos = len([ x for x in proprio.blacklist() if mktime(strptime(x.split(',')[0], '%d/%m/%Y %H:%M')) > mktime(localtime())-365*24*60*60 and x.split(',')[2] == 'autodisc_p2p' ])
|
||||
nb_decos = len([ x for x in proprio.blacklist() if int(x.split('$')[0]) > time()-365*24*3600 and x.split('$')[2] == 'autodisc_p2p' ])
|
||||
if nb_decos >= 3:
|
||||
|
||||
fichier_ps = generate_ps('p2p', proprio)
|
||||
|
@ -494,6 +498,6 @@ for ip, id_p2p, nombre in fraudeurs:
|
|||
mail.sendmail(p2p.expediteur, p2p.expediteur, corps)
|
||||
|
||||
# L'adhérent n'est pas encore blacklisté
|
||||
fin = localtime(time()+60*60*24)
|
||||
proprio.blacklist(['now', "%.2d/%.2d/%.4d %.2d:%.2d" % (fin[2], fin[1], fin[0], fin[3], fin[4]), 'autodisc_p2p', hostname])
|
||||
fin = int(time()) + 24*3600
|
||||
proprio.blacklist(['now', fin, 'autodisc_p2p', hostname])
|
||||
proprio.save()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue