knightcrawler-stremio / knightcrawler

A selfhosted Stremio addon
Apache License 2.0
272 stars 40 forks source link

High level graph (ie draw.io) #65

Open Gabisonfire opened 9 months ago

Gabisonfire commented 9 months ago

Is your feature request related to a problem? Please describe. Would be a great idea to provide a graph of how a typical request is processed and where each component sits, it would help users and potentially devs that would like to contribute.

Gabisonfire commented 9 months ago

I'm assigning this to you @iPromKnight since you wrote most of the logic, let me know if I can assist in any ways.

iPromKnight commented 9 months ago

Sure thing. Will get it done for tomorrow

iPromKnight commented 8 months ago
flowchart
  subgraph Producer Service
    A[Quartz Job: Scan XML feeds for new torrents]
    B[Process new torrents setting processed to false]
    C[Quartz Job: Process untagged torrents]
    D[Send untagged torrents to RabbitMQ queue]
    E[Mark torrents as processed=true in the database]
  end

  subgraph RabbitMQ
    RQ[Message Queue RabbitMQ]
  end

  subgraph Postgres
    PD[(Postgres Database)]
  end

  subgraph MongoDb
    MDB[(Mongo as a Cache)]
  end

  subgraph Consumer Service
    F[Pull messages from RabbitMQ queue]
    G[Build magnet URL and extract metadata]
    H[Identify torrents with IMDb ID or KitsuId]
    I[Tag video files and subtitles]
    J[Add metadata to the database]
  end

  subgraph Addon
    K[Process incoming IMDb ID and KitsUID requests]
    L[Check if Cached or Get from Postgres Cache and Return]
    M[Return torrents to Stremio]
  end

  A --> B --> PD
  C <--> PD
  C --> D --> RQ
  D --> E --> PD
  F --> RQ --> G --> H --> I --> J --> PD
  H --Store in mongoDb for multiple episodes and future lookups-----> MDB
  MDB --Check Cache to see if ids exist there first--- H
  K --> L <--> MDB
  L --> PD --> MDB
  L --> M
iPromKnight commented 8 months ago

Added as mermaid - but you can import mermaid to draw.io using Arrange -> Insert -> Advanced -> Mermaid Just hit the copy icon, it'll add the flowchart to the clipboard

Gabisonfire commented 8 months ago

Mermaid is even better, thank you!