Commande pour vérification des sources pour les ressources
authorPA Parent <paparent@paparent.me>
Sun, 11 Nov 2012 17:06:46 +0000 (12:06 -0500)
committerPA Parent <paparent@paparent.me>
Sun, 11 Nov 2012 17:06:46 +0000 (12:06 -0500)
auf_savoirs_en_partage/savoirs/lib/harvesters/lodel/html.py
auf_savoirs_en_partage/savoirs/lib/harvesters/lodel/html09.py
auf_savoirs_en_partage/savoirs/lib/harvesters/oai/generic.py
auf_savoirs_en_partage/savoirs/management/commands/sep_check_harvest.py [new file with mode: 0644]

index 889ce90..58f6901 100644 (file)
@@ -124,3 +124,8 @@ def harvest(options):
         if meta:
             nodes.append(meta)
     return nodes
+
+
+def check(options):
+    """Vérifie si une source est valide."""
+    return True
index a03e64b..b5e6334 100644 (file)
@@ -84,3 +84,8 @@ def harvest(options):
                 pending_urls.add(url)
 
     return nodes.values()
+
+
+def check(options):
+    """Vérifie si une source est valide."""
+    return True
index 3c49f78..acb6bb3 100644 (file)
@@ -48,7 +48,7 @@ def find_location (url_str):
         handle = connect(url)
         handle.request ("GET", path + "?verb=Identify")
         r = handle.getresponse ()
-        if r.status == 200:
+        if r.status == 200 and r.read() is not '':
             url = urlparse(urljoin(url.geturl(), test))
             break
 
@@ -58,7 +58,7 @@ def load_xml (url):
     ud = urllib.urlopen (url)
     original = ud.read()
     ud.close ()
-    
+
     encoding = chardet.detect(original)['encoding']
     content = original.decode(encoding)
 
@@ -172,3 +172,9 @@ def harvest (options):
                 nodes.append (meta)
     print "total récupérés %s" % len(nodes)       
     return nodes
+
+
+def check(options):
+    """Vérifie si une source est valide."""
+    url = find_location (options['url'])
+    return options['url'] != url.geturl()
diff --git a/auf_savoirs_en_partage/savoirs/management/commands/sep_check_harvest.py b/auf_savoirs_en_partage/savoirs/management/commands/sep_check_harvest.py
new file mode 100644 (file)
index 0000000..f28f548
--- /dev/null
@@ -0,0 +1,34 @@
+# -*- coding: utf-8 -*-
+
+import sys, traceback
+
+from django.core.management.base import BaseCommand
+
+from auf_savoirs_en_partage.backend_config import RESOURCES
+
+
+class Command(BaseCommand):
+
+    def handle(self, *args, **kwargs):
+
+        for name in RESOURCES.keys ():
+            print 'Check %s:' % (name.encode('utf-8'),),
+            options = RESOURCES[name]
+            options['server'] = name
+
+            module = 'auf_savoirs_en_partage.savoirs.lib.harvesters.%s.%s' \
+                     % (options['type'], options['acces'])
+            __import__ (module)
+            harvester = sys.modules[module]
+            try:
+                result = harvester.check (options)
+            except:
+                print >> sys.stderr, "Exception:"
+                print >> sys.stderr, '-'*60
+                traceback.print_exc(file=sys.stderr)
+                print >> sys.stderr, '-'*60
+
+            if result:
+                print 'OK'
+            else:
+                print 'Not OK'