diff --git a/tv/vignettes/vignettes.py b/tv/vignettes/vignettes.py index 507320a1..07af2b76 100755 --- a/tv/vignettes/vignettes.py +++ b/tv/vignettes/vignettes.py @@ -1,12 +1,16 @@ #! /usr/bin/env python # -*- coding: iso-8859-15 -*- -import os,sys +import os,sys,socket,shutil sys.path.append('/usr/scripts/gestion') import lock import time from time import localtime,sleep +tmp_dir = '/tmp' +www_dir = '/var/www/' +img_dir = '%s/images' % www_dir + t = localtime() trame_entete=""" @@ -38,48 +42,50 @@ trame_piedpage=""" """ -def ajoute_image(nom,ip,html,html_petites): +def ajoute_image(nom,fqdn,ip,html,html_petites): html.write('') - html.write('Chaine : %s / IP : %s
' % (ip, nom, ip)) + html.write('Chaine : %s / IP : %s
' % (fqdn, nom, ip)) html.write('Chaine : %s
IP : %s:1234' % (nom, ip)) html.write('\n') html_petites.write('') - html_petites.write('Chaine : %s / IP : %s
' % (ip, nom, ip)) + html_petites.write('Chaine : %s / IP : %s
' % (fqdn, nom, ip)) html_petites.write('Chaine : %s
IP : %s:1234' % (nom, ip)) html_petites.write('\n') - - def vignettes() : - html = open('/tmp/vignettes.html','w') + html = open('%s/vignettes.html' % tmp_dir,'w') html.write(trame_entete) - html_petites = open('/tmp/vignettes_petites.html','w') + html_petites = open('%s/vignettes_petites.html' % tmp_dir,'w') html_petites.write(trame_entete) col = 0 col_petites = 0 #a factoriser chaines_probleamatiques=[] - os.system('/usr/local/bin/recup_sap') - os.system('sort /tmp/chaines_recup_sap.txt> /tmp/chaines_recup_sap_triees.txt') - data = open('/tmp/chaines_recup_sap_triees.txt','r').readlines() + os.system('/usr/scripts/tv/recup_sap') + #On est obligé de mettre en dur le path + #car il n'est pas configurable dans recup_sap + chaines_sap = open('/tmp/chaines_recup_sap.txt','r').readlines() + chaines_sap_sort = open('%s/chaines_recup_sap_triees.txt' % tmp_dir, 'w' ) + chaines_sap.sort() -# return - - for line in data : + for line in chaines_sap : + chaines_sap_sort.write(line) line = line.strip() - nom=line.split(':')[0] - ip=line.split(':')[-1] + nom = line.split(':')[0] + ip = line.split(':')[-1] + print '%s %s' %(str(ip),str(nom)) + fqdn = socket.gethostbyaddr(ip)[0] #on évite les radios, peu de debit et pas de vignettes if nom[0:3]=='rad' : #C'est une radio on cherche un logo ok=0 #désolé vince j'ai essayé les exceptions mois c pas si simple nom_court=(' '.join(nom.split(' ')[2:])).lower() print "On s'occupe de la radio %s" % nom_court - for file in os.listdir('/var/www/images/logos_radios'): + for file in os.listdir('%s /logos_radios' % img_dir): if file.startswith(nom_court): - os.system('cp /var/www/images/logos_radios/\"%s\" /var/www/images/%s.jpg' % (file,ip)) - os.system('cp /var/www/images/logos_radios/\"%s\" /var/www/images/%s_petites.jpg' % (file,ip)) + shutil.copy(' %s/logos_radios/%s' % (img_dir,file),'%s/%s.jpg' % (img_dir,fqdn)) + shutil.copy(' %s/logos_radios/%s' % (img_dir,file),'%s/%s_petites.jpg' % (img_dir,fqdn)) if col == 2 : col = 1 html.write('\n') @@ -90,7 +96,7 @@ def vignettes() : html_petites.write('\n') else : col_petites += 1 - ajoute_image(nom,ip,html,html_petites) + ajoute_image(nom,fqdn,ip,html,html_petites) ok=1 #désolé vince j'ai essayé les exceptions mois c pas si simple if not ok: #il n'y a pas de logo :-( @@ -100,25 +106,27 @@ def vignettes() : print 'on s\'occupe de %s %s' % (ip,nom) print '\trecuperation du flux' #ip port duree - os.system('/usr/scripts/tv/dumpudp %s 1234 2 > /tmp/%s.ts 2>/dev/null &' % (ip,ip)) - print '\tconversion en mpeg1' - os.system('rm /tmp/%s.mpg 2>/dev/null 1> /dev/null' % (ip)) #eviter le message demandant l'ecrasement - os.system('ffmpeg -deinterlace -an -i /tmp/%s.ts /tmp/%s.mpg 2>/dev/null 1> /dev/null' % (ip,ip)) - if not os.path.exists('/tmp/%s.mpg' % (ip)) or not os.stat('/tmp/%s.mpg' % (ip))[6] : + os.system('/usr/scripts/tv/dumpudp %s 1234 2 > %s/%s.ts 2>/dev/null' % (ip,tmp_dir,ip)) + os.system('ffmpeg -deinterlace -an -i %s/%s.ts -s 400x300 -r 1 -t 00:00:01 -f image2 %s/%s.jpg 1>/dev/null 2>/dev/null' % (tmp_dir,ip,img_dir,fqdn)) + if not os.path.exists('%s/%s.jpg' % (img_dir,fqdn)) or not os.stat('%s/%s.jpg' % (img_dir,fqdn))[6] : print '\tOn retente' - if os.path.exists('/tmp/%s.mpg' % (ip)) and os.stat('/tmp/%s.mpg' % (ip))[6] : - print 'FICIHER VIDE' - os.system('/usr/scripts/tv/dumpudp %s 1234 2 > /tmp/%s.ts ' % (ip,ip)) - print '\t\tconversion en mpeg1' - os.system('ffmpeg -y -deinterlace -an -i /tmp/%s.ts /tmp/%s.mpg 2>/dev/null 1> /dev/null' % (ip,ip)) - print '\tconversion en ppm de la frame 11' - os.system('rm /tmp/image_%s*ppm 2>/dev/null 2> /dev/null 1> /dev/null' % (ip)) #eviter le message demandant l'ecrasement - os.system('transcode -q 0 -i /tmp/%s.mpg -x mpeg2,null -y ppm,null -c 10-11 -o /tmp/image_%s 2>/dev/null 1>/dev/null' % (ip,ip)) - print '\tconversion en jpg\n' - os.system('convert -geometry \'400x300 !\' /tmp/image_%s*ppm /var/www/images/%s.jpg 2>/dev/null 1>/dev/null' % (ip,ip)) - os.system('convert -geometry \'200x150 !\' /tmp/image_%s*ppm /var/www/images/%s_petites.jpg 2>/dev/null 1>/dev/null' % (ip,ip)) + os.system('/usr/scripts/tv/dumpudp %s 1234 2 > %s/%s.ts ' % (ip,tmp_dir,ip)) + os.system('ffmpeg -deinterlace -an -i %s/%s.ts -s 400x300 -r 1 -t 00:00:01 -f image2 %s/%s.jpg 1>/dev/null 2>/dev/null' % (tmp_dir,ip,img_dir,fqdn)) + if not os.path.exists('%s/%s.jpg' % (img_dir,fqdn)) or not os.stat('%s/%s.jpg' % (img_dir,fqdn))[6] : + shutil.copy('%s/fail.jpg' % (img_dir) , '%s/%s.jpg' % (img_dir,fqdn)) + + if os.path.exists('%s/%s_petites.jpg' % (img_dir,fqdn)) : + os.remove('%s/%s_petites.jpg' % (img_dir,fqdn)) + os.system('convert -geometry \'200x150 !\' %s/%s.jpg %s/%s_petites.jpg 2>/dev/null 1>/dev/null' % (img_dir,fqdn,img_dir,fqdn)) + #On met des symlink pour garder une compatibilité avec les programmes utilisant les adresses ip + if os.path.exists('%s/%s.jpg' % (img_dir,ip)) : + os.remove('%s/%s.jpg' % (img_dir,ip)) + if os.path.exists('%s/%s_petites.jpg' % (img_dir,ip)) : + os.remove('%s/%s_petites.jpg' % (img_dir,ip)) + os.symlink('%s/%s.jpg' % (img_dir,fqdn),'%s/%s.jpg' % (img_dir,ip)) + os.symlink('%s/%s_petites.jpg' % (img_dir,fqdn),'%s/%s_petites.jpg' % (img_dir,ip)) - if os.path.exists('/tmp/%s.mpg' % (ip)) and os.stat('/tmp/%s.mpg' % (ip))[6] : #on teste sur le mpg car il est enleve a chaque fois + if os.path.exists('%s/%s.ts' % (tmp_dir,ip)) and os.stat('%s/%s.ts' % (tmp_dir,ip))[6] : #on teste sur le ts car il est enleve a chaque fois if col == 2 : col = 1 html.write('\n') @@ -129,16 +137,18 @@ def vignettes() : html_petites.write('\n') else : col_petites += 1 - ajoute_image(nom,ip,html,html_petites) + ajoute_image(nom,fqdn,ip,html,html_petites) print "--------------- Ok %s" % ip else : chaines_probleamatiques.append('Chaine : %s
IP : %s:1234

\n' %(nom,ip)) print "--------------- Problematique %s ..." % ip - os.system('rm /var/www/images/%s.jpg' % (ip)) - os.system('rm /var/www/images/%s_petites.jpg' % (ip)) - - os.system('rm /tmp/%s.ts /tmp/%s.mpg /tmp/image_%s*ppm' % (ip,ip,ip)) - + if os.path.exists('%s/%s.jpg' % (img_dir,fqdn)) : + os.remove('%s/%s.jpg' % (img_dir,fqdn)) + if os.path.exists('%s/%s_petites.jpg' % (img_dir,fqdn)) : + os.remove('%s/%s_petites.jpg' % (img_dir,fqdn)) + + if os.path.exists('%s/%s.ts' % (tmp_dir,ip)) : + os.remove('%s/%s.ts' % (tmp_dir,ip)) html.write(table_piedpage) html_petites.write(table_piedpage) @@ -153,8 +163,9 @@ def vignettes() : html.close() html_petites.write(trame_piedpage) html_petites.close() - os.system('mv -f /tmp/vignettes.html /var/www/vignettes.html') - os.system('mv -f /tmp/vignettes_petites.html /var/www/vignettes_petites.html') + shutil.move('%s/vignettes.html' % (tmp_dir),'%s/vignettes.html' % (www_dir)) + shutil.move('%s/vignettes_petites.html' % (tmp_dir),'%s/vignettes_petites.html' % (www_dir)) + chaines_sap_sort.close() if __name__ == '__main__' :