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

38 lines
2.1 KiB
Markdown

# 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.
```sh
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.