代码位置 paper_manager
Github仓库的说明文档是最新版本的。
这个论文管理器仍然存在许多漏洞。目前,通过按照一些例行程序操作,它可以正常工作。我将在有时间的时候改进代码,提供详细说明,并添加新功能。(这可能并不经常,我一向秉持着能用就行的原则 😓)
一个建立在 ANGRYsearch 基础上的论文管理器。
动机:
- 高效管理论文。 我过去会将论文分类到不同的文件夹中,并通过 FSearch 搜索它们。然而,随着论文的增多,我无法有效地处理它们,尤其是对于不熟悉的论文。顺便说一句,市场上有许多流行的论文管理器,例如 Zotero。
- 自定义。 尽管我喜欢 FSearch,但我发现它是用 C 写的。由于我的研究兴趣是人工智能,对我来说 Python 更加用户友好。这就是为什么我选择了 ANGRYsearch。
特点
这个论文管理器的概述
列包括名称、级别、会场、年份、标签、反思、大小和修改日期。
- 级别: 您可以根据论文的熟练程度进行调整。
- 反思: 您可以添加一些关于论文摘要的反思,以便提醒自己。
因为反思有时候需要写得比较长,这里可以通过提示词完整显示(下面这张图片是先录屏然后再截图的,如果有更好地截提示词图的方法,欢迎分享 😓)
![](https://img-blog.csdnimg.cn/direct/35fe582ea51e421bb8514f29e4478f9b.png)
如何使用?
主文件是 angrysearch.py。所有的修改都是在这个文件上进行的。
实际上,这个论文管理器实际上是一个文件搜索软件。因此,为了使其工作,需要满足一些要求。
-
路径: 我们需要根据自己的设置修改一些路径。(有时,行号可能会有所不同,我们可以搜索变量名)
第53行: database_dir
第298行: root_dirs
第552行 (可选): 您可以修改列宽度 -
文件名: 我将所有的论文都重新命名为它们的标题(去掉一些字符,例如 :,_)。我在论文文件名上添加了一些限制(参见函数 check_paper_name())
第282行: 函数 check_paper_name() -
数据库 (metadata.db): 然后在 ~/.cache/angrysearch/ 目录下新建一个 SQLite3 数据库文件
sqlite3 ~/.cache/angrysearch/metadata.db
。CREATE TABLE metadata ( name TEXT PRIMARY KEY, level TEXT, venue TEXT, year TEXT, tags TEXT, reflections TEXT);
-
使用 python angrysearch.py 运行 Python 文件。
对 ANGRYsearch 的修改
核心功能来自 ANGRYsearch。
主要修改包括:
-
我添加了一个名为 metadata.db 的数据库,用于保存论文的元数据,位置在
~/.cache/angrysearch/
目录下(与 angry_database.db 相同位置)。表格 metadata 的结构如下:
name, level, venue, year, tags, reflections
原始的虚拟表变成了
directory, path, level, venue, year, tags, reflections, size, date
directory 仅是一个布尔值,表示文件名是否为文件夹。实际上,我已经移除了所有文件夹,所以在这个软件中它是无用的。
-
我添加了一个 Qw.QComboBox()(具有 Path、Venue 和 Tags 项目)用于按不同列进行搜索。
参考
https://www.cnblogs.com/cloudhan/articles/17020139.html
https://github.com/janbodnar/PyQt6-Tutorial-Examples
https://github.com/DoTheEvo/ANGRYsearch
https://github.com/PyQt5/PyQt?tab=readme-ov-file
https://github.com/maicss/PyQt-Chinese-tutorial