如何从PPA找出软件包下载计数?


15

我想知道自从首次发布以来,PPA中给定软件包的下载量已经达到了多少。

我记得关于在Web UI上获取这些指标存在一个错误,但是据我所知,它从未实现。

但是我认为,如果我是该PPA的所有者,则可以通过Launchpad API获得下载次数。有指针吗?

Answers:


17

查看以下脚本:

#!/usr/bin/python2

# Usage python ppastats.py PPATEAM (ex: webupd8team) PPA (ex: gthumb) DIST (Ubuntu version eg maverick) ARCH (ubuntu arch eg i386 or amd64)
# Example - highest downloaded file: python ppastats.py webupd8team y-ppa-manager maverick amd64 | tr '\t' ',' | cut -d ',' -f3 | sort -gr

import sys
from launchpadlib.launchpad import Launchpad

PPAOWNER = sys.argv[1]
PPA = sys.argv[2]
desired_dist_and_arch = 'https://api.launchpad.net/devel/ubuntu/' + sys.argv[3] + '/' + sys.argv[4]

cachedir = "~/.launchpadlib/cache/"
lp_ = Launchpad.login_anonymously('ppastats', 'production', cachedir)
owner = lp_.people[PPAOWNER]
archive = owner.getPPAByName(name=PPA)

for individualarchive in archive.getPublishedBinaries(status='Published', distro_arch_series=desired_dist_and_arch):
    x = individualarchive.getDownloadCount()
    if x > 0:
        print individualarchive.binary_package_name + "\t" + individualarchive.binary_package_version + "\t" + str(individualarchive.getDownloadCount())
    elif x < 1:
        print '0'

要使用它:

python ppastats.py webupd8team themes natty i386

2
sudo pip install launchpadlib && sudo pip install simplejson
OverCoder

我对此进行了扩展:gist.github.com/nathan-osman/b9158d058cc45916dcd20a591b66d0b4现在,您不再需要指定二进制文件,就可以得到格式良好的表。
内森·奥斯曼

这个计数的单位是什么?总?每月?到基础函数文档的链接可能很棒!谢谢!
Matifou

1

您可以使用ppastats(http://wpitchoune.net/blog/ppastats/)生成一个HTML报告,其中包含有关PPA下载计数的统计数据和图形。

这是一个示例:http : //wpitchoune.net/ppastats/ppa/otto-kesselgulasch/gimp/

如果使用的是Ubuntu,则可以使用PPA ppa:jfi / ppastats安装它:

sudo apt-add-repository ppa:jfi/ppastats
sudo apt-get update
sudo apt-get install ppastats

然后生成HTML报告:

ppastats [PPA_OWNER] [PPA_NAME] -o [OUTPUT_DIR]

1
还没有生动的软件包:/
塞斯(Seth)

ppastats至少可以在生动的版本1.3.3(wpitchoune.net/ppastats/files/ppastats-1.3.3.tar.gz)上正常编译。ubuntu打包也可以,它可以使用git-buildpackage从以下git仓库中构建git.wpitchoune.net/psensor-pkg-ubuntu.git。我可能会在某个时候公开上传。
JeanFI

我刚刚安装了最后一个可用的二进制软件包,效果很好。您意识到您可以让Launchpad为您重新构建软件包以获取较新的版本吗?
塞思

没有yakkety包:(
塞思

到今天为止,xenial i386的ppa数量是1。知道安装安装软件包的b4数量不能顺利通过是有声望的。...只是说说而已
Rondo

1

通过该jfi/ppastats软件包,我设法弄清楚了API的工作方式,并制作了一个用户脚本(Greasemonkey / Tampermonkey),该脚本将整洁地在软件包旁边列出下载计数。确保进入“查看所有内部版本”视图,您的软件包详细信息中添加了两个链接。欢迎改进补丁!


?这是如何运作的?这个比接受的答案简单吗?
卡兹·沃尔夫

这是一个跨平台脚本,您可以在浏览器中使用Greasemonkey扩展(Firefox)或Tampermonkey扩展(Chrome)运行。我会说这比较简单。
stefansundin

下载次数在哪里?我看到“查看下载计数”,但是当我单击时,无论如何我都不会在页面上看到它们。–
塞思2014年

奇怪。我在Firefox和Chrome(Greasemonkey和Tampermonkey)上都测试了最新版本。尝试进入我的PPA(这是我的目标):launchpad.net/~stefansundin/+archive/ubuntu/truecrypt / ...在这种情况下,归档文件在ubuntu版本之间复制可能会有些问题您可能会看到一个永不消失的微调器。我将尝试在更高版本中解决此问题。
stefansundin 2014年

是的,您的PPA正常运行,但是我的绝对没有任何显示。完全有可能没有人下载它,但是ppastats似乎与之矛盾:paste.ubuntu.com/8752766(对不起,我没有提早答复,但是您没有@包括我,所以直到现在我才看到它)
赛斯2014年

0

还有另一个可用的python脚本:

https://bugs.launchpad.net/launchpad/+bug/139855/comments/66

DL: https //bugs.launchpad.net/launchpad/+bug/139855/+attachment/3217345/+files/ppastats

用法:ppastat.py [-h] [--all] [--arch ARCH]用户[ppa [ppa ...]]


欢迎来到AskUbuntu!尽管这可能会回答问题,但没有真正的解释,这可能会更好。
没时间

是否需要任何特殊的依赖关系?在Trusty上,它失败并显示IndexError: list index out of range错误。
landroni 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.