#! /usr/bin/env python
# -*- coding: iso-8859-15 -*-

# Script de suppression des pdfs trop vieux et des descriptions perverties.
# Codé par Francois
# Licence : GNU General Public Licence, version 2

import os,sys,time
sys.path.append('/usr/script/impression')
import class_impression

#espérance de vie d'un pdf en seconde
duree_vie_pdf=3600

#répertoire racine des dossier d'impression
data_dir='/var/spool/impression/'


def suppr_vieux_pdf(arg,dir_name,list_file):
	#print dir_name+':\n'
        list_desc=filter(lambda x : (x.endswith('.desc')),list_file)
        if list_desc<>[]:
	    #Ouverture des descriptions et suppression du pdf si nécessaire 
	    for nom_fichier_desc in list_desc:
                fic_impr=class_impression.fichier_impression()
                fic_impr.nom_fichier_desc=os.path.join(dir_name,nom_fichier_desc)
                fic_impr.read_desc()
		if fic_impr.nom_fichier_pdf=='':
			print '\t'+fic_impr.nom_fichier_pdf+' supprimé et\n'
			print '\t'+fic_impr.nom_fichier_desc+' supprimé car nom_fichier_pdf inconnue\n'
			os.remove(fic_impr.nom_fichier_desc)
		elif fic_impr.modif_epoch==None:
			print '\t'+fic_impr.nom_fichier_pdf+' supprimé et\n'
			print '\t'+fic_impr.nom_fichier_desc+' supprimé car modif_epoch inconnue\n'
			os.remove(fic_impr.nom_fichier_pdf)
			os.remove(fic_impr.nom_fichier_desc)
		elif (time.time()-fic_impr.modif_epoch)>duree_vie_pdf and os.access(fic_impr.nom_fichier_pdf,os.F_OK):
			os.remove(fic_impr.nom_fichier_pdf)
			#print '\t'+fic_impr.nom_fichier_pdf+" supprimé\n"
			fic_impr.imprime=-4
			fic_impr.sauve_desc()

def main():
	#print 'Suppression des descriptions perverties'
	#print 'Suppression des fichiers pdf vieux de plus de '+str(duree_vie_pdf)+'s'
	os.path.walk(data_dir,suppr_vieux_pdf,None)
        
main()
