releasing version 1.3.1 squeeze
authorProgfou <jean-christophe.andre@auf.org>
Fri, 28 Oct 2011 19:46:36 +0000 (02:46 +0700)
committerProgfou <jean-christophe.andre@auf.org>
Fri, 28 Oct 2011 19:46:36 +0000 (02:46 +0700)
 * correction de bogues et amélioration de la gestion des erreurs

auf-refer-photos
aufrefer.py
debian/changelog
setup.py

index 645100b..c847cf5 100755 (executable)
@@ -32,24 +32,27 @@ def update(adels=None, verbose=True, force=False):
         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__':
index 712a6a8..6d5ff71 100644 (file)
@@ -41,7 +41,7 @@ TIME_FORMAT = '%a, %d %b %Y %H:%M:%S GMT'
 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
@@ -58,6 +58,8 @@ def retrieve(url, filename, force=False, mimetype=None):
         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" \
@@ -69,7 +71,7 @@ def retrieve(url, filename, force=False, mimetype=None):
     # 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()
@@ -82,7 +84,7 @@ def retrieve(url, filename, force=False, mimetype=None):
         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:
@@ -90,7 +92,7 @@ def retrieve(url, filename, force=False, mimetype=None):
         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)
index 50e58f8..854515e 100644 (file)
@@ -1,3 +1,9 @@
+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
index d068ff2..d104924 100755 (executable)
--- a/setup.py
+++ b/setup.py
@@ -4,7 +4,7 @@
 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',