From bcc4ec25686a7eab47b6310f48a53e649dc13eaf Mon Sep 17 00:00:00 2001 From: salles Date: Mon, 24 Apr 2006 18:22:52 +0200 Subject: [PATCH] On utilise la fonction de gnration crite ailleurs darcs-hash:20060424162252-72cb0-a801c080c1cfa0b1f5a594a0c11d278d154d5565.gz --- surveillance/deconnexion.py | 52 +++++++------------------------------ 1 file changed, 9 insertions(+), 43 deletions(-) diff --git a/surveillance/deconnexion.py b/surveillance/deconnexion.py index 459e6ce7..31846163 100755 --- a/surveillance/deconnexion.py +++ b/surveillance/deconnexion.py @@ -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,