employes = filter(lambda e: e['courriel'] in adels, employes)
for e in employes:
adel = e['courriel']
+ if not adel:
+ continue
url = PHOTO_URL % e['id']
filename = PHOTO_FILENAME % adel
try:
r = aufrefer.retrieve(url, filename, mimetype='image/jpeg',
- force=force)
- if verbose and r:
- print "Photo récupérée pour %s." % adel
- except URLError:
+ force=force, ignore404=True)
if verbose:
- print "Photo non disponible pour %s." % adel
- except HTTPError:
+ if r:
+ print "Photo récupérée pour %s." % adel
+ elif r is not None:
+ print "Photo non disponible pour %s." % adel
+ except RuntimeError:
if verbose:
print "Problème avec la photo pour %s." % adel
except KeyboardInterrupt:
print "Abandon."
return
- adels.remove(adel)
- if verbose:
+ if adels and adel in adels:
+ adels.remove(adel)
+ if adels and verbose:
print "Adéls ignorées :", ', '.join(adels)
if __name__ == '__main__':
def path(referentiel):
return join(DIR_BASE, referentiel)
-def retrieve(url, filename, force=False, mimetype=None):
+def retrieve(url, filename, force=False, mimetype=None, ignore404=False):
headers = {}
headers['Accept-Encoding'] = 'gzip,x-gzip'
# ajout d'un champ pour forcer le cache au besoin
u = urlopen(req)
except HTTPError, e:
if e.code == 304:
+ return None
+ if ignore404 and e.code == 404:
return False
raise RuntimeError, \
"L'URL suivante renvoie un code d'erreur %s :\n %s" \
# vérification du type MIME
if mimetype and i.type != mimetype:
u.close()
- raise RuntimeError, \
+ raise ValueError, \
"Le type de données n'est pas '%s' mais '%s'.\n" \
"URL concernée : %s" % (mimetype, i.type, url)
data = u.read()
try:
loads(data, encoding='utf-8')
except ValueError:
- raise RuntimeError, "Les données ne sont pas au format JSON.\n" \
+ raise ValueError, "Les données ne sont pas au format JSON.\n" \
"URL concernée : %s" % url
# si on est arrivé jusqu'ici c'est que tout va bien... on enregistre !
try:
f = file(filename, 'wb')
umask(old_umask)
except IOError, e:
- raise RuntimeError, \
+ raise IOError, \
"L'écriture du fichier '%s' a été refusée :\n %s" \
% (filename, e)
f.write(data)
+auf-refer (1.3.1) unstable; urgency=low
+
+ * correction de bogues et amélioration de la gestion des erreurs
+
+ -- Progfou <jean-christophe.andre@auf.org> Sat, 29 Oct 2011 02:43:09 +0700
+
auf-refer (1.3) unstable; urgency=low
* aufrefer.py : séparation des fonctions de chargement et mise à jour
from distutils.core import setup
setup(name='auf-refer',
- version='1.3',
+ version='1.3.1',
author='Progfou',
author_email='jean-christophe.andre@auf.org',
url='http://git.auf.org/?p=auf-refer.git',