Por que não consigo obter todos os comentários para este aplicativo no Ubuntu Software Center usando a API JSON?

4

Eu tenho uma pergunta depois de ler isto: Existe algum API da web para o Centro de software disponível?

Estou tentando entender os pontos de extremidade JSON do Ubuntu Software Center.

Este JSON lista todos os aplicativos disponíveis no Centro de Software: link

Legal ... Agora eu preciso obter todas as revisões para um app!

Por isso, escolho um aplicativo e obtenho seu packages_name do arquivo JSON:

{
        "status": "Published", 
        "package_name": "splashtop-streamer", 
        "video_embedded_html_urls": [
            "http://myapps.developer.ubuntu.com/dev/apps/1804/video/264a5fb11b60410a3a7d03bebdd1fcccd0cf5a72/"
        ],....

Aqui, o package_name é splashtop-streamer .

Para receber todas as resenhas do aplicativo vlc , basta fazer isso: link

Mas, para o splashtop-streamer app, não consigo: link

Isso só retorna isso:

[]

Se você olhar para splashtop-streamer on-line, você verá que realmente tem comentários. Então, por que a API está retornando uma lista vazia?

    
por Voidcode 05.01.2013 / 12:52

1 resposta

2

Não é óbvio, mas o filtro de API está usando origem para especificar se o aplicativo é dos arquivos do Ubuntu ou de um PPA. Então, para um aplicativo comercial, a filtragem por 'ubuntu' fornece resultados zero. O que você quer é:

http://reviews.ubuntu.com/reviews/api/1.0/reviews/filter/any/any/any/any/splashtop-streamer/
http://reviews.ubuntu.com/reviews/api/1.0/reviews/filter/any/any/any/any/splashtop-streamer/page/2/

etc.

Note que também há um pequeno invólucro que pode manter seu código mais limpo se você quiser:

$ bzr branch lp:~rnr-developers/rnr-server/rnrclient
$ cd rnrclient && virtualenv venv && venv/bin/python setup.py install && venv/bin/python
>>> from rnrclient import RatingsAndReviewsAPI
>>> api = RatingsAndReviewsAPI("http://reviews.ubuntu.com/reviews/api/1.0")
>>> api.server_status()
u'ok'
>>> streamer_reviews = api.get_reviews(packagename='splashtop-streamer')
>>> len(streamer_reviews)
10
>>> streamer_reviews = api.get_reviews(packagename='splashtop-streamer', page=2)
...
    
por Michael Nelson 19.06.2013 / 10:15