From d7caa59a30cdae8dbe2f6e93af689e48bfd0db6c Mon Sep 17 00:00:00 2001 From: Olivier Huber Date: Wed, 4 Mar 2009 10:50:16 +0100 Subject: [PATCH] [tv/vignettes/vignettes.py] On utilise des Exception darcs-hash:20090304095016-8fbb1-026c014c25ca20407b5dbbadb44435a3a3d52622.gz --- tv/vignettes/vignettes.py | 87 +++++++++++++++++++++------------------ 1 file changed, 47 insertions(+), 40 deletions(-) diff --git a/tv/vignettes/vignettes.py b/tv/vignettes/vignettes.py index 2199e4a8..6925fb6c 100755 --- a/tv/vignettes/vignettes.py +++ b/tv/vignettes/vignettes.py @@ -77,17 +77,29 @@ def vignettes() : nom = line.split(':')[0] ip = line.split(':')[-1] print '%s %s' %(str(ip),str(nom)) - fqdn = socket.gethostbyaddr(ip)[0] + try : + fqdn = socket.gethostbyaddr(ip)[0] + except gai.error, err : + print 'On n\'arrive pas ŕ résoudre ce nom %s %s' % (ip,err[1]) + continue + except : + print 'Erreur inconnue' + continue + else : #on évite les radios, peu de debit et pas de vignettes - if nom[0:3]=='rad' : + 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('%s /logos_radios' % img_dir): - if file.startswith(nom_court): + try : 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)) + except : + #il n'y a pas de logo :-( + chaines_probleamatiques.append('Chaine : %s
IP : %s:1234

\n' %(nom,ip)) + continue + else : if col == 2 : col = 1 html.write('\n') @@ -99,36 +111,30 @@ def vignettes() : else : col_petites += 1 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 :-( - chaines_probleamatiques.append('Chaine : %s
IP : %s:1234

\n' %(nom,ip)) - print "\t Fait" - continue - print 'on s\'occupe de %s %s' % (ip,nom) - print '\trecuperation du flux' + 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 > %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' - os.system('/usr/scripts/tv/dumpudp %s 1234 2 > %s/%s.ts ' % (ip,tmp_dir,ip)) + 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] : - shutil.copy('%s/fail.jpg' % (img_dir) , '%s/%s.jpg' % (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' + 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('%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('%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 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') @@ -141,15 +147,15 @@ def vignettes() : col_petites += 1 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 - 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)) + else : + chaines_probleamatiques.append('Chaine : %s
IP : %s:1234

\n' %(nom,ip)) + print "--------------- Problematique %s ..." % 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)) : + if os.path.exists('%s/%s.ts' % (tmp_dir,ip)) : os.remove('%s/%s.ts' % (tmp_dir,ip)) html.write(table_piedpage) @@ -158,8 +164,9 @@ def vignettes() : html.write('

Liste des chaines diffusées mais dont le flux est érroné ou uniquement audio (les flux videos ne seront probablement non lisibles avec VLC mais lisibles avec xine)


') html_petites.write('

Liste des chaines diffusées mais dont le flux est érroné ou uniquement audio (les flux videos ne seront probablement non lisibles avec VLC mais lisibles avec xine)


') for line in chaines_probleamatiques : - html.write(line) - html_petites.write(line) + html.write(line) + html_petites.write(line) + #on ecrit la vraie fin html.write(trame_piedpage) html.close()