image-index-py/README.md
2023-01-17 18:10:24 +01:00

2.1 KiB

image-index

This project is a script which can index and sort files on your pc. You can give every file a title, category, source, tags and content for easier finding later on. All information is stored inside of an SQLite-database. Two separate tables are used to give aliases to the categories and tags, so that a user can easily change the names without modifying all affected entries. You can also encrypt all files with AES-CBC.

This project was written and tested on an Arch Linux-based distribution and python 3.10.

Functions

  • add - Add a file and entry to the index
  • copy - copies a file from the index to a custom location
  • check - check if all files saved in the index exist and aren't faulty
  • delete - delete a file and remove the entry
  • import - lets you add every file to the index in a chosen directory
  • meta - a command to change aliases of categories and tags
  • open - open one or more files from the index in the default application (only Linux and Windows)
  • replace - replaces a file in the index with another file while keeping the entry
  • show - search through the index and show the matches
  • update - change a value of an entry in the index or move a file to another category

Dependencies

  • hashlib
  • pycryptodomex
  • sqlite3

Downloading

There isn't an install script currently.

git clone https://gitlab.com/rodin_schule/image-index-py.git
cd ./image-index-py

Configuration

The top of the file holds some very important variables that need to be looked at by the user:

  • ROOT_DIR: The absolute path of where you want to save your files (the directories for the categories will be created there)
  • INDEX_FILE: The absolute path of the database file.
  • LINUX_APP_STARTER: The linux command which can open a file in the default application. Most distributions use xdg-open.
  • ENCRYPT: This setting tells the script whether to encrypt the added files by default or not.
    • If set to True, the ids of the categories will be fully random (fe627ea4-3fd60 instead of category-3fd60) for pretty much zero-knowledge storage on a remote server without access to the database.