0%

calibre 关于统计信息的代码

在官网上有对calibre统计信息的说明。每次启动calibre,就会向服务器发送一次统计数据,其中包含OS,版本及一个在安装时就生成的UUID。

UUID的生成代码在src/calibre/utils 下的exim.py和src/calibre/srv下的opds.py中,其中opds.py应该是calibre-server的代码。同时src/calibre/utils/config_base.py 中也有和UUID相关的代码:

1
2
3
4
5
# 550-553行
prefs = ConfigProxy(create_global_prefs())
if prefs['installation_uuid'] is None:
import uuid
prefs['installation_uuid'] = unicode_type(uuid.uuid4())

而每次启动calibre时向服务器发送统计信息的代码在src/calibre/gui2/update.py中:

1
2
3
4
5
6
7
42-47行
headers={
'CALIBRE-VERSION':__version__,
'CALIBRE-OS': ('win' if iswindows else 'osx' if ismacos else 'oth'),
'CALIBRE-INSTALL-UUID': prefs['installation_uuid'],
'CALIBRE-ICON-THEME': icon_theme_name,
}

事实上没有这个headers也能正常获取版本号_(:з)∠)_

最后在获取新闻(feeds)时也会发送UUID(src/calibre/web/feeds/recipes):

1
2
recipe_source = bz2.decompress(get_https_resource_securely(
'https://code.calibre-ebook.com/recipe-compressed/'+urn, headers={'CALIBRE-INSTALL-UUID':prefs['installation_uuid']}))

尚不清楚删除这个headers会不会影响feeds的获取

感谢你看到这里❤