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

Revision: 11310
Author:   legoktm
Date:     2013-03-31 17:04:00 +0000 (Sun, 31 Mar 2013)
Log Message:
-----------
Proper support for reading/creating claims for commonsMedia

Modified Paths:
--------------
    branches/rewrite/pywikibot/page.py
    branches/rewrite/pywikibot/site.py

Modified: branches/rewrite/pywikibot/page.py
===================================================================
--- branches/rewrite/pywikibot/page.py  2013-03-31 16:44:16 UTC (rev 11309)
+++ branches/rewrite/pywikibot/page.py  2013-03-31 17:04:00 UTC (rev 11310)
@@ -2562,7 +2562,11 @@
             if claim.getType() == 'wikibase-item':
                 claim.target = ItemPage(site, 'Q' +
                                               
str(data['mainsnak']['datavalue']['value']['numeric-id']))
+            elif claim.getType() == 'commonsMedia':
+                claim.target = ImagePage(site.image_repository(), 'File:' +
+                                                                  
data['mainsnak']['datavalue']['value'])
             else:
+                #This covers string type
                 claim.target = data['mainsnak']['datavalue']['value']
         if 'references' in data:
             for source in data['references']:

Modified: branches/rewrite/pywikibot/site.py
===================================================================
--- branches/rewrite/pywikibot/site.py  2013-03-31 16:44:16 UTC (rev 11309)
+++ branches/rewrite/pywikibot/site.py  2013-03-31 17:04:00 UTC (rev 11310)
@@ -3377,6 +3377,8 @@
                                               'numeric-id': 
claim.getTarget().getID(numeric=True)})
             elif claim.getType() == 'string':
                 params['value'] = '"' + claim.getTarget() + '"'
+            elif claim.getType() == 'commonsMedia':
+                params['value'] = '"' + 
claim.getTarget().title(withNamespace=False) + '"'
             else:
                 raise NotImplementedError('%s datatype is not supported yet.' 
% claim.getType())
         params['token'] = self.token(item, 'edit')
@@ -3412,6 +3414,8 @@
                                               'numeric-id': 
claim.getTarget().getID(numeric=True)})
             elif claim.getType() == 'string':
                 params['value'] = '"' + claim.getTarget() + '"'
+            elif claim.getType() == 'commonsMedia':
+                params['value'] = '"' + 
claim.getTarget().title(withNamespace=False) + '"'
             else:
                 raise NotImplementedError('%s datatype is not supported yet.' 
% claim.getType())
 


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

Reply via email to