http://www.mediawiki.org/wiki/Special:Code/pywikipedia/11372

Revision: 11372
Author:   multichill
Date:     2013-04-16 18:22:45 +0000 (Tue, 16 Apr 2013)
Log Message:
-----------
Split up and more python way of doing it.

Modified Paths:
--------------
    branches/rewrite/scripts/claimit.py

Modified: branches/rewrite/scripts/claimit.py
===================================================================
--- branches/rewrite/scripts/claimit.py 2013-04-16 16:37:10 UTC (rev 11371)
+++ branches/rewrite/scripts/claimit.py 2013-04-16 18:22:45 UTC (rev 11372)
@@ -18,38 +18,46 @@
 repo = pywikibot.Site().data_repository()
 
 
+def addClaims(page, claims):
+    '''
+    The function will add the claims to the wikibase page
+    '''
+    item = pywikibot.ItemPage.fromPage(page)
+    pywikibot.output('Processing %s' % page)
+    if not item.exists():
+        pywikibot.output('%s doesn\'t have a wikidata item :(' % page)
+        #TODO FIXME: We should provide an option to create the page
+        return False
+
+    for claim in claims:
+        pywikibot.output('Adding %s --> %s' % (claim.getID(), 
claim.getTarget().getID()))
+        item.addClaim(claim)
+        #TODO FIXME: We should add a source for each claim that is added
+        #TODO FIXME: We need to check that we aren't adding a duplicate
+
+
 def main():
     gen = pagegenerators.GeneratorFactory()
-    claims = list()
+    commandline_claims = list()
     for arg in pywikibot.handleArgs():
         if gen.handleArg(arg):
             continue
-        claims.append(arg)
-    if len(claims) % 2 != 0:
+        commandline_claims.append(arg)
+    if len(commandline_claims) % 2:
         raise ValueError  # or something.
-    real_claims = list()
-    c = 0
-    while c != len(claims):
-        claim = pywikibot.Claim(repo, claims[c])
-        claim.setTarget(pywikibot.ItemPage(repo, claims[c+1]))
-        real_claims.append(claim)
-        c += 2
+    claims = list()
 
+    for i in xrange (0, len(commandline_claims), 2):
+        claim = pywikibot.Claim(repo, commandline_claims[i])
+        claim.setTarget(pywikibot.ItemPage(repo, commandline_claims[i+1]))
+        claims.append(claim)
+
+
     generator = gen.getCombinedGenerator()
 
-    for page in generator:
-        item = pywikibot.ItemPage.fromPage(page)
-        pywikibot.output('Processing %s' % page)
-        if not item.exists():
-            pywikibot.output('%s doesn\'t have a wikidata item :(' % page)
-            #TODO FIXME: We should provide an option to create the page
-            continue
+    if generator:
+        for page in generator:
+            addClaims(page, claims)
 
-        for claim in real_claims:
-            pywikibot.output('Adding %s --> %s' % (claim.getID(), 
claim.getTarget().getID()))
-            item.addClaim(claim)
-            #TODO FIXME: We should add a source for each claim that is added
-            #TODO FIXME: We need to check that we aren't adding a duplicate
-
 if __name__ == "__main__":
-    main()
\ No newline at end of file
+    main()


_______________________________________________
Pywikipedia-svn mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/pywikipedia-svn

Reply via email to