Open Gabisonfire opened 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.
Sure thing. Will get it done for tomorrow
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
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
Mermaid is even better, thank you!
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.