This e-mail was sent by Maarten to the pywikipedia-svn mailing list.

---------- Forwarded message ----------
From: Maarten Dammers <[email protected]>
To: [email protected]
Date: Mon, 03 May 2010 23:15:47 +0200
Subject: Re: [Pywikipedia-svn] SVN: [8136] trunk/pywikipedia/wikipedia.py

This change is incorrect. Categories() should return Page objects, not
Unicode objects. Could you please fix this?

Maarten

Op 28-4-2010 22:29, [email protected] schreef:

> Revision: 8136
> Author:   shizhao
> Date:     2010-04-28 20:29:31 +0000 (Wed, 28 Apr 2010)
>
> Log Message:
> -----------
> categories() new add API query.
>
> Modified Paths:
> --------------
>     trunk/pywikipedia/wikipedia.py
>
> Modified: trunk/pywikipedia/wikipedia.py
> ===================================================================
> --- trunk/pywikipedia/wikipedia.py      2010-04-28 14:33:06 UTC (rev 8135)
> +++ trunk/pywikipedia/wikipedia.py      2010-04-28 20:29:31 UTC (rev 8136)
> @@ -2173,12 +2173,50 @@
>          category links in the page text.
>
>          """
> -        try:
> -            category_links_to_return =
> getCategoryLinks(self.get(get_redirect=get_redirect), self.site())
> -        except NoPage:
> -            category_links_to_return = []
> -        return category_links_to_return
> +#  New add API query.
>
> +#   api.php?action=query&prop=categories&titles=Albert%20Einstein
> +
> +#
> +        if not self.site().has_api():
> +            try:
> +                category_links_to_return =
> getCategoryLinks(self.get(get_redirect=get_redirect), self.site())
> +            except NoPage:
> +                category_links_to_return = []
> +            return category_links_to_return
> +
> +        params = {
> +            'action': 'query',
> +            'prop'  : 'categories',
> +            'titles' : self.title(),
> +        }
> +        if not self.site().isAllowed('apihighlimits') and
> config.special_page_limit>  500:
> +            params['cllimit'] = 500
> +
> +
> +        allDone = False
> +        cats=[]
> +        while not allDone:
> +            output(u'Getting categories in %s via API...' % self.aslink())
> +
> +            datas = query.GetData(params, self.site())
> +            data=datas['query']['pages'].values()[0]
> +            if "categories" in data:
> +                for c in data['categories']:
> +                    cats.append(c['title'])
> +#            if len(data) == 2:
> +#                data = data[0] + data[1]
> +#            else:
> +#                data = data[0]
> +
> +            if 'query-continue' in datas:
> +                if 'categories' in datas['query-continue']:
> +                    params['clcontinue'] =
> datas['query-continue']['categories']['clcontinue']
> +
> +            else:
> +                allDone = True
> +        return cats
> +
>      def __cmp__(self, other):
>          """Test for equality and inequality of Page objects"""
>          if not isinstance(other, Page):
>
>
>
> _______________________________________________
> Pywikipedia-svn mailing list
> [email protected]
> https://lists.wikimedia.org/mailman/listinfo/pywikipedia-svn
>
>





---------- Forwarded message ----------
From: [email protected]
To:
Date:
Subject: confirm 5757ba7a08bb8766eda2b6838461d7dd08516048
If you reply to this message, keeping the Subject: header intact,
Mailman will discard the held message.  Do this if the message is
spam.  If you reply to this message and include an Approved: header
with the list password in it, the message will be approved for posting
to the list.  The Approved: header can also appear in the first line
of the body of the reply.
_______________________________________________
Pywikipedia-l mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/pywikipedia-l

Reply via email to