求助一个在PC上记录、统计阅读时间的方案

情况

我现在的数据阅读主要都是在PC上使用calibre的自带阅读器进行的,我一般是三四本书同时开展,每天各自给几个番茄钟的时间,现在想对每天、每本书各自的阅读时间作一个统计。

需求

目前知道的和我目标比较接近的可能是阅读记录这个APP,但一个是对此付费愿望不高,此外每次再多去打开手机容易分散精力,而且希望这个数据最好是纯粹本地,因为也并没有多端去看这个数据的需求。

不知道大家如果有类似的这样需求的话是怎么去解决的,有没有什么阻力小一些的方案,希望看看大家的经验。

如果你能做到打开calibre就看,看完就关闭calibre的话,也许能通过监控calibre进程的存续时间来进行统计。

说白了,统计的不是你看书的时间,而是calibre的驻留时间。

是的,我也想过用监控calibre来代替这个记录过程,不过打开并不实际阅读,管理书籍的时间还是不少的,所以感觉误差会不小。

1 Like

来回复一下我现在找到的感觉很符合我预期的方案,现在是用“番茄人生”这个软件,之前一直有用,今天才发现原来番茄钟的使用是有记录的,那就很方便了,每本书设置一个任务使用番茄钟,定期导出记录统计就可以了。

  1. calibre是有个自定栏位功能的

image

可以新增一项阅读时间

  1. 然后因为每本书被打开时,标题栏是会显示书名的,很容易就可以通过ahk等软件,监听活跃窗口的标题名,记录下每本书的阅读时间

image

  1. calibre的书籍信息是存放在一个metadata.db数据库文件里的,格式是sqlite format 3。

可以通过sqlite软件,把每次记录到的阅读时间累加到数据库相应项目上去。

比如,我新增的阅读时间这一栏,

image

这样一来,相当于给calibre加个阅读时间的插件。
理论上会比较优雅和实用,还能推广给大家用。

查了下,calibre支持插件,但我没能找到符合楼主要求的插件……那么自己动手丰衣足食?

试试Manictime?免费版就能做到这个功能了。
这是我的对浏览器的


没记错calibre应该也是可以的。
付费的话,多点功能。

不付费也能满足你的需求了。
想买专业版的话,如果觉得我的推荐合理的话,可以从我的推广链接买,209元支持5台设备。

当然说实话也挺贵的,没需要就算了。

ActivityWatch/activitywatch: The best free and open-source automated time tracker. Cross-platform, extensible, privacy-focused. (github.com)
这个开源项目应该也行,我之前也用过,还是免费的,也可以试一下。

1 Like

其实不用 calibre 的话,把 epub 上传到微信读书也是一种不错的选择。


利用插件可以看到阅读时间,和把笔记保存到 notion。

https://strlen.com/procrastitracker/

这个软件可以做到。

image

比如这里可以看到,我看了20秒钟B书,40秒钟的A书。

===========

以下是官网介绍的机器翻译

关于

ProcrastriTracker是一个开源时间跟踪工具,可以自动跟踪您使用的应用程序和文档,并允许您非常详细地查看使用情况的统计信息。它被写成小且非侵入性。它适用于:

  • 提高您的工作效率:查看真正花费您最多时间的长期统计数据,可以帮助将优先级转移到最佳工作状态。
  • 跟踪和计费时间:当处理多个项目/多个客户时,几乎自动!
  • ***乐趣!***看到如此详细的统计数据非常有趣,尤其是在更长的时间内,即使您不打算对它做任何事情。

特征

  • 任何时间跟踪应用程序的最详细统计信息:ProcrastriTracker不仅跟踪每个应用程序的文档和网站,它还以完全分层的方式收集信息,这意味着您可以按项目查看文档(例如在Visual Studio中)。这是完全自动发生的,任何以分层方式处理数据并在其标题栏中显示由“ - ”,“ ”,“”,“>”或“\”分隔的项目的应用程序或网站都将按层次结构表示。
  • 过滤:统计信息视图允许您快速向下钻取到数据子集,折叠/展开树,将显示的条目限制为特定的日期范围,标签或使用的最小秒数(以减少混乱)
  • 标记:允许您对项目进行分组,以更好地跟踪不同的用途和不同的项目。标签为即时视图的条形图着色。标记按层次结构工作,因此除非显式标记项目,否则会将项目计为与其父项一样标记。
  • 精确空闲时间:考虑半空闲(默认为 10 秒不活动)和完全空闲(默认为 3 分钟不活动)的时间,以便更准确地了解在项目上真正花费了多少时间。
  • 为提高效率而编写:Procrastitracker 使用自定义数据库,该数据库使用非常少的内存,可以快速更新,并且具有高度压缩的磁盘表示形式。它还使用直接 win32 来减少 DLL 占用空间。它是如此之小,你不会知道它在那里:)
  • HTML导出:使用当前过滤器将数据导出到非常可读的HTML布局,以便于与其他人共享。
  • 备份:自动保存(默认每 10 分钟一次)以及每次保存和每次运行的备份可确保在系统崩溃时不会丢失数据,并允许您在不太可能发生的数据库损坏事件中轻松返回到以前的数据库。
  • 自动剔除:剔除数据库中使用过几秒钟的旧项目,并将其统计信息添加到父项目中。这样可以保持计时准确,但可以减少混乱和数据库大小。
  • 输入活动统计信息:对于每个项目,计算键盘和鼠标点击的数量。
  • 兼容性:ProcrastiTracker的每个版本仍然从最早的版本(回到2007年)加载数据库,并将继续这样做。这可以保证您可以运行它多年,并收集一些令人印象深刻的统计信息,同时能够获得新功能。数据以相对通用的方式存储,因此即使数据没有,表示形式也可以发展。
  • 可配置:每个计时设置都可以进行调整,以适应您的工作方式。

用法


安装后,从开始菜单运行ProcrastiTracker。安装程序还会在“启动”文件夹中放置一个链接,因此ProcrastiTracker将在重新启动时自动运行。

ProcrastiTracker 在系统托盘中运行,默认情况下,每 5 秒检查一次您正在使用的应用程序(以及文档/站点/标题),并将其输入到其数据库中。如果您超过 3 分钟没有使用鼠标/键盘,它将停止检查(以确保在您离开计算机时统计信息准确无误)。它每10分钟保存一次内部数据库,因此数据收集是完全自动的。


您可以随时使用托盘图标中的弹出式菜单拉出统计信息窗口,并以多种方式查看您的使用情况:

主树视图按使用次数最多的顺序显示所有项目以及总时间,包括子项目。顶层是应用程序名称(从其.exe),下面是基于当时处于活动状态的窗口标题的分层树(其有效性取决于应用程序)。Web浏览器(支持:Chrome,firefox,IE和Opera)在层次结构中的第二级还有活动页面的域名,因此您可以按站点对统计信息进行分组。

树视图的背景是条形图,其中的颜色对应于应用于项目的不同标签(如果对子项目使用了多个不同的标签,则该条形图将被相应地细分)。

左侧是过滤选项,您可以使用滑块快速设置所有节点的树的扩展范围(当然,您也可以为每个节点手动执行此操作)。使用秒筛选器不显示(但仍计数)给定秒数以下的任何项目,这使您可以在较大的数据库中获得更好的概览,而不会造成混乱。使用日期范围弹出窗口仅查看指定时间段内的数据(默认为查看整个数据库)。

下面是可以应用于树节点的“标记”列表,这使您可以对活动进行分组并获得更好的概述。您可以使用按钮将当前选定的标记应用于当前选定的树节点。请注意,这如何使标记成为其下方所有节点的默认标记,但您仍然可以以不同的方式对子树项目进行分类(例如,您可以默认将“firefox”标记为“surfing”,但其下面的某些站点可以标记为“工作”)。未标记标记的特殊之处在于,它使节点采用其父节点使用的任何标记。您可以像在Windows资源管理器中文件一样重命名标签:通过双击已选择的标签(或单击“重命名标签”按钮)。选中“筛选标记”框,仅查看当前标记(而不是所有标记)的统计信息。这对于查看在特定类别中花费的时间非常有用。

HTML导出(在弹出菜单中)使用当前的秒数过滤设置(标签,日期和关键字过滤器,但不是剔除/扩展过滤器),因此请务必先设置这些设置。同样,数据库导出允许您导出部分或全部数据库(基于相同的过滤设置),然后可以将其合并到其他位置。

可以通过从弹出窗口中打开它们来设置高级设置:

在大多数情况下,应该没有必要改变这些。所有这些设置都是针对每个数据库的。默认值与屏幕截图相同。

采样频率 允许您设置将新条目添加到数据库的频率。更频繁地可以提供稍微更准确的统计数据,但并不明显。不那么频繁可以减少ProcrastiTracker的CPU使用率,但这已经可以忽略不计了。

空闲时间 指定在最后一次输入后,ProcrastiTracker 停止收集数据所需的时间。您设置的此值越高,统计信息中包含的不真正落后于计算机的时间就越多。然而,将其设置得更低可能也不是一个好主意,如果你是那种在工作时倾向于盯着屏幕更长时间的人。为了获得最准确的统计数据,必须根据您的工作习惯寻求平衡。
半空闲时间 这指定了样本何时计为半空闲,即大于半空闲限制,但小于完全空闲。此统计数据显示为半空闲时间百分比,并允许您查看使用应用程序的积极程度(例如,电影查看器可能比视频游戏有更多的半空闲时间),或者您在哪些文档上更“高效”(半空闲时间越少意味着工作流程越连续)。
自动保存间隔 将内部数据库保存到磁盘的频率。较长的间隔意味着在系统崩溃时丢失的样本越多,但会减少磁盘活动。然而,ProcrastiTracker的数据库文件很小(可以很容易地保持在100k以下),因此产生的磁盘活动不应该干扰任何其他应用程序。
加载时剔除 这允许您通过将数据库中仅累积了几秒钟的项目合并到其父级中来剔除(修剪)这些项目。这具有减少混乱的有益效果(特别是对于那些使用其标题栏进行进度更新的应用),减少内存和磁盘使用(较小的数据库)。随着数据库的增长,慢慢地增加这个数字可能是一个好主意,即使用它几个月。由于剔除发生在加载时,因此您必须重新启动ProcrastiTracker才能使其生效。它在Load上发生的一个优点是,它使项目有机会在独立发生时积累更多的秒数,因此不会立即被剔除。
离开时显示对话框小于 一种考虑远离计算机的时间的方法。默认情况下,它处于关闭状态 (0)。要打开它,请设置分钟数,该分钟数小于计算机使用之间的休息时间(例如,60,这意味着休息时间超过此时间不再被视为工作日的一部分)。当您离开的时间超过空闲设置的时间(并且小于最大休息时间设置)时,返回时将弹出一个窗口,询问您花了什么时间。抱歉,现在这些是不可配置的,尽管有各种各样的它们和2个自定义的。您还可以选择使用底部按钮不跟踪此时间。以这种方式跟踪的时间将显示在主视图中的“离开”标题下。如果忽略该对话框,则不会跟踪时间。


计数“离开:其他”时离开小于 这允许您将空闲时间(不超过上面的“空闲时间”输入)计为一个特殊的“离开”类别,类似于上面的离开对话框设置。如果您经常在计算机之外执行仍要计为工作时间的事情,这将非常有用。例如,如果你把它设置为30,你是说,只有当我离开超过30分钟时,假设我离开了一天,否则会自动将其计为“离开:其他”。

键盘快捷键:按 T 标记当前所选项目与当前选定的标记(“将标记应用到节点”按钮的快捷方式)。CTRL+H 在树视图中隐藏当前选定的项(隐藏项仍会累积时间等,只是未显示)。CTRL+U 取消隐藏所选节点下的所有隐藏节点。隐藏项也不会以 HTML 格式导出。合并功能(实验性,操作无法撤消,使用风险自负!):您可以使用弹出菜单中的“合并到数据库中”选项将整个数据库合并到当前数据库中(如果您一次在多台计算机上使用procrastitracker,则很有用),还可以通过选择要合并的节点来合并各个树节点, 然后选择要合并到的节点,然后按 Ctrl+M。在节点上按 Ctrl+P 将导致所有将其作为子字符串的同级节点合并到该节点中。在所有情况下,这些节点可能具有的子树也将正确合并。如果您不确定,请先使用PT,以便您有新的备份。Ctrl+C 打开手动编辑模式,向所选节点添加分钟数以进行更正。

数据库管理:安装程序提供了所有数据库文件存储位置的快捷方式。这允许您在紧急情况下还原旧数据库(只需重命名具有要“db.PT 的日期的数据库),在其他介质上备份数据库,将数据库移动到新计算机,删除旧备份以节省空间等。

2 Likes

之前有试过Manictime,之后还是放弃了,再次尝试了一波还是觉得太冗余了,容易产生无用的需求 :smiling_face_with_tear:。还是选择继续手动用番茄钟记录来作为分析对象。

我十分赞同你的观点,那玩意儿设置太复杂了,我就单纯当个屏幕自动截图的软件用了……