Go to file
Jose134 7c20130b02
All checks were successful
gitea/file-organizer/pipeline/head This commit looks good
Install czkawka via download in dockerfile + fix uvicorn dependency
2025-02-02 02:56:05 +01:00
.vscode Docker & tests 2025-01-31 19:20:53 +01:00
config Docker & tests 2025-01-31 19:20:53 +01:00
docs Add README, initial FastAPI setup, and missing configuration files 2024-12-08 01:57:25 +01:00
src Install czkawka via download in dockerfile + fix uvicorn dependency 2025-02-02 02:56:05 +01:00
tests Docker & tests 2025-01-31 19:20:53 +01:00
.dockerignore Docker & tests 2025-01-31 19:20:53 +01:00
.gitignore Install czkawka via download in dockerfile + fix uvicorn dependency 2025-02-02 02:56:05 +01:00
Dockerfile Install czkawka via download in dockerfile + fix uvicorn dependency 2025-02-02 02:56:05 +01:00
entrypoint.sh Install czkawka via download in dockerfile + fix uvicorn dependency 2025-02-02 02:56:05 +01:00
Jenkinsfile Docker & tests 2025-01-31 19:20:53 +01:00
LICENSE Initial commit 2024-11-23 16:54:32 +01:00
README.md Docker & tests 2025-01-31 19:20:53 +01:00
requirements.txt Install czkawka via download in dockerfile + fix uvicorn dependency 2025-02-02 02:56:05 +01:00

file-organizer

This is a custom made software to perform maintenance on downloaded files for DarkBird's anime website.

System Overview

System Overview

The application consist of a simple API with a single endpoint which starts a job and returns its ID. Then the job is orchestrated on a different thread following these steps:

  1. Filtering:
    Fetch from the qbittorrent API the files that are currently being downloaded in order to filter them out of the process.
  2. Deduplication:
    Invoke a Czkawka process to identify duplicate files, keep the appropiate version for each episode.
  3. Moving:
    Using regex, identify the directory where each file should be located, and the new name it should have.
  4. Log storage:
    Store all the logs for the current job in order to be able to debug and keep trazability of the process.

Development

git clone https://github.com/Jose134/file-organizer.git
cd file-organizer
pip install -r requirements.txt[dev]

Roadmap:

  • Be able to move and rename files based on a regex
  • Read qbittorrent credentials from .env file
  • Implement API endpoint using FastAPI
  • Run organization job on a separate thread
  • Deduplicate files using Czkawka
  • Add unit tests
  • Add logging
  • Make it run in docker
  • Create another endpoint to retrieve the logs of a job