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

filnik at svn.wikimedia.org filnik at svn.wikimedia.org
Sun Oct 5 15:14:10 UTC 2008


Revision: 5934
Author:   filnik
Date:     2008-10-05 15:14:10 +0000 (Sun, 05 Oct 2008)

Log Message:
-----------
Some rewrite, a bugfix in -start, nothing special

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

Modified: trunk/pywikipedia/checkimages.py
===================================================================
--- trunk/pywikipedia/checkimages.py	2008-10-05 14:08:30 UTC (rev 5933)
+++ trunk/pywikipedia/checkimages.py	2008-10-05 15:14:10 UTC (rev 5934)
@@ -506,6 +506,7 @@
         self.duplicatesReport = duplicatesReport
         image_n = self.site.image_namespace()
         self.image_namespace = "%s:" % image_n # Example: "User_talk:"
+        self.list_licenses = self.load_licenses()
     def setParameters(self, image):
         """ Function to set parameters, now only image but maybe it can be used for others in "future" """
         self.image = image
@@ -940,8 +941,36 @@
             gen = pagegenerators.CategorizedPageGenerator(cat)
             pages = [page for page in gen]
             list_licenses.extend(pages)
+        print list_licenses
         return list_licenses
 
+    def smartDetection(self, image_text):
+        seems_ok = False
+        license_found = None
+        regex_find_licenses = re.compile(r'\{\{(?:[Tt]emplate:|)(.*?)(?:[|\n].*?|)\}\}', re.DOTALL)
+        licenses_found = regex_find_licenses.findall(image_text)
+        if licenses_found != []:
+            for license_selected in licenses_found:
+                #print template.exists()
+                template = wikipedia.Page(self.site, 'Template:%s' % license_selected)
+                try:
+                    if template.isRedirectPage():
+                        template = template.getRedirectTarget()
+                except wikipedia.BadTitle:
+                    seems_ok = False # Template with wrong name
+                    return (seems_ok, license_found)
+                else:
+                    if template in self.list_licenses: # the list_licenses are loaded in the __init__ (not to load them multimple times)
+                        seems_ok = True
+                license_found = license_selected
+        if not seems_ok:
+            rep_text_license_fake = "\n*[[:Image:%s]] seems to have a ''fake license'', license detected: {{tl|%s}}." % (self.image, license_found)
+            regexFakeLicense = r"\* ?\[\[:Image:%s\]\] seems to have a ''fake license'', license detected: \{\{tl\|%s\}\}\.$" % (self.image, license_found)
+            printWithTimeZone(u"%s seems to have a fake license: %s, reporting..." % (self.image, license_found))
+            self.report_image(self.image, rep_text = rep_text_license_fake,
+                                   addings = False, regex = regexFakeLicense)
+        return (seems_ok, license_found)
+
     def load(self, raw):
         """ Load a list of object from a string using regex. """
         list_loaded = list()
@@ -1019,7 +1048,7 @@
                 firstPageTitle = str(wikipedia.input(u'From witch page do you want to start?'))
             elif len(arg) > 6:
                 firstPageTitle = str(arg[7:])
-            generator = wikipedia.getSite().allpages(start='Image:%s' % firstPageTitle)
+            generator = wikipedia.getSite().allpages(start=firstPageTitle ,namespace=6)
             repeat = False
         elif arg.startswith('-page'):
             if len(arg) == 5:
@@ -1149,9 +1178,6 @@
             wikipedia.output(u'Problems with loading the settigs, run without them.')
             tupla_written = None
             some_problem = False
-        # Load the list of licenses allowed for our project
-        if smartdetection:
-            list_licenses = mainClass.load_licenses()
         # Ensure that if the list given is empty it will be converted to "None"
         # (but it should be already done in the takesettings() function)
         if tupla_written == []: tupla_written = None
@@ -1359,28 +1385,7 @@
                     seems_ok = False
                     license_found = None
                     if smartdetection:
-                        regex_find_licenses = re.compile(r'\{\{(?:[Tt]emplate:|)(.*?)(?:[|\n].*?|)\}\}', re.DOTALL)
-                        licenses_found = regex_find_licenses.findall(g)
-                        if licenses_found != []:
-                            for license_selected in licenses_found:
-                                #print template.exists()
-                                template = wikipedia.Page(site, 'Template:%s' % license_selected)
-                                try:
-                                    if template.isRedirectPage():
-                                        template = template.getRedirectTarget()
-                                except wikipedia.BadTitle:
-                                    seems_ok = False # Template with wrong name
-                                else:
-                                    if template in list_licenses:
-                                        seems_ok = True
-                                        break
-                                license_found = license_selected
-                        if not seems_ok:
-                            rep_text_license_fake = "\n*[[:Image:%s]] seems to have a ''fake license'', license detected: {{tl|%s}}." % (imageName, license_found)
-                            regexFakeLicense = r"\* ?\[\[:Image:%s\]\] seems to have a ''fake license'', license detected: \{\{tl\|%s\}\}\.$" % (imageName, license_found)
-                            printWithTimeZone(u"%s seems to have a fake license: %s, reporting..." % (imageName, license_found))
-                            mainClass.report_image(imageName, rep_text = rep_text_license_fake,
-                                                   addings = False, regex = regexFakeLicense)
+                        (seems_ok, license_found) = mainClass.smartDetection(g)
                     else:
                         seems_ok = True
                     if seems_ok:





More information about the Pywikipedia-l mailing list