On utilise la fonction de gnration crite ailleurs
darcs-hash:20060424162252-72cb0-a801c080c1cfa0b1f5a594a0c11d278d154d5565.gz
This commit is contained in:
parent
e867e4f99b
commit
bcc4ec2568
1 changed files with 9 additions and 43 deletions
|
@ -28,6 +28,11 @@ from time import *
|
|||
import locale
|
||||
locale.setlocale(locale.LC_TIME, 'fr_FR')
|
||||
import lock
|
||||
sys.path.append('/usr/scripts/surveillance/fiche_deconnexion')
|
||||
from generate import generate_ps
|
||||
|
||||
# ldap
|
||||
ldap = crans_ldap()
|
||||
|
||||
# Quelques fonctions
|
||||
####################
|
||||
|
@ -42,44 +47,6 @@ def machine_online(machine):
|
|||
# Arping pour les fixes
|
||||
return not commands.getstatusoutput('/usr/sbin/arping -c 3 %s' % machine.mac())[0]
|
||||
|
||||
def generate_ps(sanction, proprio):
|
||||
"""En fonction de la sanction à appliquer au propriétaire,
|
||||
on génère la feuille de déconnexion et on retourne son nom et
|
||||
emplacement."""
|
||||
# Dossier de génération du ps
|
||||
dossier = '/usr/scripts/surveillance/fiche_deconnexion'
|
||||
|
||||
# Base pour le nom du fichier
|
||||
fichier = strftime('%Y-%m-%d-%H-%M') + '-%s-%s' % (sanction, proprio.Nom().lower().replace(' ', '-'))
|
||||
|
||||
# Création du fichier tex
|
||||
format_date = '%A %d %B %Y'
|
||||
template = file('%s/deconnexion_%s.tex' % (dossier, sanction)).read()
|
||||
template = template.replace('~prenom~', proprio.prenom().encode('iso8859-15'))
|
||||
template = template.replace('~nom~', proprio.nom().encode('iso8859-15'))
|
||||
template = template.replace('~chambre~', proprio.chbre().encode('iso8859-15'))
|
||||
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)))
|
||||
# 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'])))
|
||||
|
||||
file('%s/%s.tex' % (dossier, fichier), 'w').write(template)
|
||||
|
||||
# Compilation du fichier latex
|
||||
commands.getstatusoutput('PATH="/bin:/usr/bin" cd %(dossier)s && latex %(base)s.tex && dvips %(base)s.dvi && rm -f %(base)s.dvi %(base)s.aux %(base)s.log %(base)s.tex'%{'dossier': dossier, 'base': fichier})
|
||||
|
||||
return '%s/%s.ps' % (dossier, fichier)
|
||||
|
||||
# Variables utiles
|
||||
##################
|
||||
|
||||
|
@ -105,9 +72,6 @@ for i in range(5):
|
|||
print "Impossible de se connecter au SMTP"
|
||||
sys.exit(1)
|
||||
|
||||
# ldap
|
||||
ldap = crans_ldap()
|
||||
|
||||
################################################################################
|
||||
# Vérification de l'upload #
|
||||
################################################################################
|
||||
|
@ -247,7 +211,7 @@ for elupload, eltype, elid in uploadeurs:
|
|||
if nb_decos >= 3:
|
||||
|
||||
# Génération du fichier postscript
|
||||
fichier_ps = generate_ps('upload', proprio)
|
||||
fichier_ps = generate_ps('upload', proprio, ldap)
|
||||
|
||||
# Envoi du mail à disconnect
|
||||
corps = upload.message_disconnect_multi % {'from': upload.expediteur, 'to': upload.expediteur, 'nbdeco': nb_decos, 'proprio': proprio.Nom(), 'ps': fichier_ps}
|
||||
|
@ -453,6 +417,8 @@ for ip, id_p2p, nombre in fraudeurs:
|
|||
#s'il est averti
|
||||
if nombre <= p2p.limite[protocole] or [ip, protocole] in avertisp2p:
|
||||
continue
|
||||
#if id_p2p == 1:
|
||||
#continue
|
||||
|
||||
# Récupération des ref de la machine
|
||||
machine = ldap.search('ipHostNumber=%s' % ip, 'w' )['machine'][0]
|
||||
|
@ -492,7 +458,7 @@ for ip, id_p2p, nombre in fraudeurs:
|
|||
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)
|
||||
fichier_ps = generate_ps('p2p', proprio, ldap)
|
||||
# Envoi du mail à disconnect
|
||||
corps = p2p.message_disconnect_multi % { 'from': p2p.expediteur,
|
||||
'to': p2p.expediteur,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue