On utilise la fonction de gnration crite ailleurs

darcs-hash:20060424162252-72cb0-a801c080c1cfa0b1f5a594a0c11d278d154d5565.gz
This commit is contained in:
salles 2006-04-24 18:22:52 +02:00
parent e867e4f99b
commit bcc4ec2568

View file

@ -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,