Pocket阅读工具https://app.getpocket.com/
pocket-stats的Python项目详细描述
口袋统计
分析袖珍阅读列表(https://app.getpocket.com/)的工具。在
- Pocket Stats 在
先决条件
- 一个Pocket帐户。在
- 口袋consumer key。在
- 口袋访问令牌。您可以使用fxneumann's OneClickPocket tool来自动执行此操作。在
- Python 3.6+。在
安装
Pip
pip install pocket-stats
Git克隆
^{pr2}$使用
设置必要的环境变量:
exportPOCKET_STATS_CONSUMER_KEY='<your_pocket_consumer_key>'exportPOCKET_STATS_ACCESS_TOKEN='<your_pocket_access_token>'
数据查询
从Pocket server获取数据并将其缓存
命令行:
# read only python -m pocket_stats fetch-data --offset 0 --limit 2# to write ALL the items to cache python -m pocket_stats fetch-data --overwrite_cache
或者在python代码中:
frompocket_stats.dataimportfetch_data# fetch the first 100 items, won't overwrite cachedata=fetch_data(offset=0,limit=100,overwrite_cache=False)# fetch ALL items, will overwrite cachedata=fetch_data(overwrite_cache=True)
缓存文件的默认位置是~/pocket-tools.cache
,您可以使用POCKET_STATS_CACHE_FILE
环境变量对其进行更改。在
加载缓存数据
frompocket_stats.dataimportload_cachedata=load_cache()
提取有用信息
frompocket_stats.dataimport<your_function_names>
- 在所有标题中计算单词数:
>>>count_words_in_title(data)Counter({'-':5,'|':5,'python':3,'problem':2,'strace':1,'wow':1,'much':1,'syscall':1,'martin':1,'heinz':1,'personal':1,'website':1,'&':1,'blog':1,'call':1,'programmer,':1})
- 每篇文章字数:
>>>get_word_counts(data)[2207,0,5449,4721,3245,805,1849,4087,0,538,5054,21,866,266,1146,213,823,3551,787,0]
- 每篇文章阅读时间:
>>>get_reading_time(data)[9.80888888888889,24.217777777777776,20.982222222222223,14.422222222222222,3.577777777777778,8.217777777777778,18.164444444444445,2.391111111111111,22.462222222222223,0.09333333333333334,3.848888888888889,1.1822222222222223,5.093333333333334,0.9466666666666667,3.6577777777777776,15.782222222222222,3.497777777777778]
- 每天新增物品数:
>>>get_added_time_series(data)Allarticles2020-07-0452020-07-0382020-07-0222020-07-015
- 每天新归档的文章数:
>>>get_archived_time_series(data)Archivedarticles2020-07-042
- 每个域的文章数:
>>>get_domain_counts(data)Counter({'kalzumeus.com':3,'bogleheads.org':2,'github.io':2,'brendangregg.com':1,'martinheinz.dev':1,'awealthofcommonsense.com':1,'jlcollinsnh.com':1,'callan.com':1,'engineerseekingfire.com':1,'arxiv.org':1,'popularmechanics.com':1,'dolpages.com':1,'economist.com':1,'romantomjak.com':1,'digitalocean.com':1,'deepnote.com':1})
- 每种语言的算术数:
>>>get_language_counts(data)Counter({'en':17,'unknown':3})
- 最喜欢的文章数及其百分比:
>>>get_favorite_count(data){'count':2,'percent':0.1}
可视化
通过运行以下命令启动应用程序(Web服务器):
python -m pocket_stats webapp # You will see something like this:# Dash is running on http://127.0.0.1:8050/
其他参数:
python -m pocket_stats webapp --help # Usage: __main__.py webapp [OPTIONS]# Options:# --debug Debug mode# --port INTEGER Port of the web server. Default = 8050.# --help Show this message and exit.
在web浏览器中输入http://127.0.0.1:8050/。网站包含多个组件:
字云
文章计数时间序列
字数分布
堆积直方图
读取速度和读取时间
堆积直方图
顶级域名
堆积条形图。
语言和收藏夹
试验
make check
部署
您可以将app.py
部署为Web服务器。在
示例:https://dash.plotly.com/deployment。在
贡献
请阅读CONTRIBUTING.md了解我们的行为准则以及向我们提交拉取请求的过程。在
作者
- Bao Nguyen。在
- contributors谁参加了这个项目。在
许可证
MIT许可证-有关详细信息,请参阅LICENSE.md文件。在
致谢
- Pocket Python客户端:https://github.com/rakanalh/pocket-api
- fxneumann的OneClickPocket工具:http://reader.fxneumann.de/plugins/oneclickpocket/auth.php
- 项目
标签: