diff --git a/mwclient/compatibility.py b/mwclient/compatibility.py index 4bd7625d93f6ce5a03f94b966c96a7a7ea324eb9..ded741ae54291146d3c149fe7ab571e457b3a4a5 100644 --- a/mwclient/compatibility.py +++ b/mwclient/compatibility.py @@ -22,4 +22,11 @@ def iiprop(post_112): if post_112: return 'timestamp|user|comment|url|size|sha1|metadata' else: - return 'timestamp|user|comment|url|size|sha1' \ No newline at end of file + return 'timestamp|user|comment|url|size|sha1' + +def cmtitle(page, new_format, prefix = ''): + if new_format: + return prefix + 'title', page.name + else: + return prefix + 'category', page.strip_namespace(page.name) + \ No newline at end of file diff --git a/mwclient/listing.py b/mwclient/listing.py index 32480e8b671d90a1f84d9675cbf30dbae234194d..f3a9b2ad2fc6a66113b79bb0e1a5cd73f07cef1a 100644 --- a/mwclient/listing.py +++ b/mwclient/listing.py @@ -119,7 +119,9 @@ class GeneratorList(List): class Category(page.Page, GeneratorList): def __init__(self, site, name, info = None, namespace = None): page.Page.__init__(self, site, name, info) - kwargs = {'gcmcategory': self.strip_namespace(self.name)} + kwargs = {} + kwargs.update((compatibility.cmtitle(self, self.site.require( + 1, 12, raise_error = False), prefix = 'gcm'), )) if namespace: kwargs['gcmnamespace'] = namespace GeneratorList.__init__(self, site, 'categorymembers', 'cm', **kwargs) def __repr__(self): @@ -128,7 +130,8 @@ class Category(page.Page, GeneratorList): dir = 'asc', start = None, end = None, generator = True): prefix = self.get_prefix('cm', generator) kwargs = dict(self.generate_kwargs(prefix, prop = prop, namespace = namespace, - sort = sort, dir = dir, start = start, end = end)) + sort = sort, dir = dir, start = start, end = end, *(compatibility.cmtitle( + self, self.site.require(1, 12, raise_error = False)), ))) return self.get_list(generator)(self.site, 'categorymembers', 'cm', **kwargs) class PageList(GeneratorList):