[Pywikipedia-l] SVN: [5938] trunk/pywikipedia/checkimages.py

filnik at svn.wikimedia.org filnik at svn.wikimedia.org
Tue Oct 7 14:45:46 UTC 2008


Revision: 5938
Author:   filnik
Date:     2008-10-07 14:45:46 +0000 (Tue, 07 Oct 2008)

Log Message:
-----------
Bugfix, script didn't handle when the hash (in the checkImageOnCommons function) is none. Now it does

Modified Paths:
--------------
    trunk/pywikipedia/checkimages.py

Modified: trunk/pywikipedia/checkimages.py
===================================================================
--- trunk/pywikipedia/checkimages.py	2008-10-07 14:45:39 UTC (rev 5937)
+++ trunk/pywikipedia/checkimages.py	2008-10-07 14:45:46 UTC (rev 5938)
@@ -764,32 +764,36 @@
         regexOnCommons = r"\n\*\[\[:Image:%s\]\] is also on '''Commons''': \[\[commons:Image:.*?\]\]$" % self.image
         imagePage = wikipedia.ImagePage(self.site, 'Image:%s' % self.image)
         hash_found = imagePage.getHash()
-        commons_image_with_this_hash = commons_site.getImagesFromAnHash(hash_found)
-        if commons_image_with_this_hash != []:
-            wikipedia.output(u'%s is on commons!' % self.image)
-            imagePage = wikipedia.ImagePage(self.site, 'Image:%s' % self.image)
-            on_commons_text = imagePage.getImagePageHtml()
-            if "<div class='sharedUploadNotice'>" in on_commons_text:
-                wikipedia.output(u"But, the image doesn't exist on your project! Skip...")
-                # Problems? Yes! We have to skip the check part for that image!
-                # Because it's on commons but someone has added something on your project.
-                return False
-            elif 'stemma' in self.image.lower() and self.site.lang == 'it':
-                wikipedia.output(u'%s has "stemma" inside, means that it\'s ok.' % self.image)
-                return True # Problems? No, it's only not on commons but the image needs a check
+        if hash_found == None:
+            return False # Problems? Yes! Image deleted, no hash found. Skip the image.
+        else:
+            commons_image_with_this_hash = commons_site.getImagesFromAnHash(hash_found)
+            if commons_image_with_this_hash != []:
+                wikipedia.output(u'%s is on commons!' % self.image)
+                imagePage = wikipedia.ImagePage(self.site, 'Image:%s' % self.image)
+                on_commons_text = imagePage.getImagePageHtml()
+                if "<div class='sharedUploadNotice'>" in on_commons_text:
+                    wikipedia.output(u"But, the image doesn't exist on your project! Skip...")
+                    # Problems? Yes! We have to skip the check part for that image!
+                    # Because it's on commons but someone has added something on your project.
+                    return False
+                elif 'stemma' in self.image.lower() and self.site.lang == 'it':
+                    wikipedia.output(u'%s has "stemma" inside, means that it\'s ok.' % self.image)
+                    return True # Problems? No, it's only not on commons but the image needs a check
+                else:
+                    repme = "\n*[[:Image:%s]] is also on '''Commons''': [[commons:Image:%s]]" % (self.image, commons_image_with_this_hash[0])
+                    self.report_image(self.image, self.rep_page, self.com, repme, addings = False, regex = regexOnCommons)
+                    # Problems? No, return True
+                    return True
             else:
-                repme = "\n*[[:Image:%s]] is also on '''Commons''': [[commons:Image:%s]]" % (self.image, commons_image_with_this_hash[0])
-                self.report_image(self.image, self.rep_page, self.com, repme, addings = False, regex = regexOnCommons)
                 # Problems? No, return True
                 return True
-        else:
-            # Problems? No, return True
-            return True
 
     def checkImageDuplicated(self):
         """ Function to check the duplicated images. """
         # {{Dupe|Image:Blanche_Montel.jpg}}
         # Skip the stub images
+        # FIXME: Fix this part, this can be really improved
         if 'stub' in self.image.lower() and self.project == 'wikipedia' and self.site.lang == 'it':
             return True # Skip the stub, ok
         dupText = wikipedia.translate(self.site, duplicatesText)
@@ -803,7 +807,7 @@
         hash_found = imagePage.getHash()
         duplicates = self.site.getImagesFromAnHash(hash_found)
         if duplicates == None:
-            return False # Error, we need to skip the page.
+            return False # Error, image deleted, no hash found. Skip the image.
         if len(duplicates) > 1:
             if len(duplicates) == 2:
                 wikipedia.output(u'%s has a duplicate! Reporting it...' % self.image)





More information about the Pywikipedia-l mailing list