Skip to content

together00/paper_manager

This branch is 7 commits ahead of, 1 commit behind DoTheEvo/ANGRYsearch:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

118fdb7 · Jun 11, 2024
Aug 7, 2017
May 8, 2018
Feb 15, 2015
May 8, 2018
Jun 11, 2024
Jan 10, 2024
May 8, 2018
May 8, 2018
Jun 11, 2024
Sep 6, 2015
Apr 17, 2018
May 1, 2018
Jan 10, 2024
Sep 6, 2015
Aug 7, 2017
Jun 13, 2015
Dec 18, 2021
May 8, 2018

Repository files navigation

Paper Manager

There are still numerous bugs in this paper manager. Now, it can work well by following some routines. I will improve the code, provide detailed descriptions and add new functions when I have time.

A paper manager built on ANGRYsearch.

Motivations:

  • Manage papers efficiently. I used to categorize papers in different folders and search them by FSearch. However, as the papers increases, I cannot deal with them efficiently, especially for the unfamiliar papers. By the way, there are many popular paper managers in the market, e.g., zotero.
  • Customize. Even though I like FSearch, I find that it is written in C. Since my research interests are AI, Python is more user-friendly for me. That is why I choose ANGRYsearch.

My Style

  • In the Column "level", we use - to denote the paper that I think it is not "good" enough.

Features

The overview of this paper manager

The columns are name, level, venue, year, tags, reflections, size, and date modified.

  • Level: You can adjust it according to your proficiency level of a paper.
  • Reflections: You can add some reflections of a paper to remind your of the digest of this paper.

How to use?

The main file is angrysearch.py. All the modifications are made on it.

In fact, this paper manager is a file searching software indeed. So some requirements should be satisfied to make it work.

  • Path: We need modify some paths based on our own settings. (Sometimes, the line number may be different, we can search the variable name)

    Line 53: database_dir

    Line 298: root_dirs

    Line 552 (optional): you can modify the column width

  • File name: I rename all the papers with their title (without some characters, e.g., :, _). I have add some restrictions on the filename of the paper (see the function check_paper_name())

    Line 282: the function check_paper_name()

  • Database (metadata.db): Then new a sqlite3 dabase file in ~/.cache/angrysearch/.

    sqlite3 `~/.cache/angrysearch/metadata.db`
    CREATE TABLE metadata (
        name TEXT PRIMARY KEY,
        level TEXT,
        venue TEXT,
        year TEXT,
        tags TEXT,
       	reflections TEXT);
    
  • Run the python file with python angrysearch.py.

Modifications on ANGRYsearch

The core functionality is from ANGRYsearch.

The main modifications are:

  • I add one database called metadata.db to save the metadata of the papers in the ~/.cache/angrysearch/ (the same location as angry_database.db).

    The structure of table metadata.

    name, level, venue, year, tags, reflections
    
  • The original virtual table turns to

    directory, path, level, venue, year, tags, reflections, size, date
    

    The directory is just a bool to show the whether the filename is a folder. In fact, I have removed all the folders, so it is useless in this software.

  • I add one Qw.QComboBox() (with Path, Venue and Tags items) for searching by different columns.

Bugs

  • 2024-01-18: The ``<'' can not be displayed well.

References

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

About

Paper Manager based on ANGRYsearch.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 99.9%
  • Shell 0.1%