This website requires JavaScript.
c14349848e
Update submodules
rewrite
Alexander
2026-07-25 12:44:41 +02:00
2a4098769a
Update metadata on download finish
Alexander
2026-07-25 12:07:27 +02:00
36225bbf40
Update tora
Alexander
2026-07-19 17:40:10 +02:00
d66a4035e0
Download torrent when monitor album
Alexander
2026-07-19 17:36:38 +02:00
72b07e1186
Update submodule
Alexander
2026-07-17 17:57:16 +02:00
9b43485f11
Start work on Monitor Album
Alexander
2026-07-17 17:55:57 +02:00
44776ca09c
Add metadata provider
Alexander
2026-07-12 16:52:33 +02:00
18f2fa9475
Add search for torrents
Alexander
2026-07-12 10:36:14 +02:00
38bee269db
Tora connection + health + config
Alexander
2026-07-06 15:21:34 +02:00
af7d69980f
Start from scratch
Alexander
2026-07-01 21:16:40 +02:00
d52ce9508e
Some more
master
Alexander
2026-07-01 20:07:49 +02:00
b448e076bc
Leftovers
Alexander
2026-07-01 20:07:31 +02:00
b5b175a8e9
Publish download events from PollDownloadWorker to event stream
Alexander
2026-05-20 14:57:25 +02:00
b5849d6ad1
Wire shared EventBus from main into PollDownloadWorker and server
Alexander
2026-05-20 14:57:02 +02:00
908c37f73f
Add NixOS module for full agregators stack with VM test
Alexander
2026-05-20 12:39:04 +02:00
10a5fd5707
Package with nix, some fixes
Alexander
2026-05-20 09:46:43 +02:00
76e426c5d3
feat: integrate musicfs for post-download metadata enrichment
Alexander
2026-05-17 23:32:44 +02:00
eac8196dcc
Add beetfs submodule with reverse-engineered documentation
Alexander
2026-05-12 11:52:55 +02:00
451fd97c95
Return NotFound error when no torrents or quality matches found instead of silent empty response
Alexander
2026-05-11 20:46:40 +02:00
0fd51a1e03
Retry indexer search with stripped parenthetical suffixes when initial query returns no results
Alexander
2026-05-11 20:36:52 +02:00
9aff4b0a29
Return all downloads per album grouped by quality, filter out failed/cancelled from listings
Alexander
2026-05-11 20:15:33 +02:00
ff6bc444d0
Prefer torrents with real seeders: resolve connected seeder count from swarm during magnet resolution
Alexander
2026-05-11 20:02:02 +02:00
3e8b8153b6
Bruno requests
Alexander
2026-05-11 19:52:55 +02:00
69752bd6a2
Update flow diagrams for event bus architecture, cancel cleanup, and SubscribeEvents
Alexander
2026-05-11 15:54:32 +02:00
93821ab214
Add streaming, subscribe, cancel cleanup, and recovery component tests
Alexander
2026-05-11 15:54:25 +02:00
be859e87c0
Add DeleteTorrent to torrent client interface for cancel cleanup
Alexander
2026-05-11 15:54:17 +02:00
e5bdf2c4ce
Add SubscribeEvents RPC, AlbumEvent message, deprecate unary MonitorAlbum
Alexander
2026-05-11 15:54:09 +02:00
5a5660bf21
Refactor MonitorAlbumStream: EventPublisher interface, background workflows, DB-before-qBit save order
Alexander
2026-05-11 15:54:01 +02:00
52e81faedd
Add workflow registry for background goroutine lifecycle management
Alexander
2026-05-11 15:53:52 +02:00
7582279077
Add in-process event bus with ring buffer for workflow event broadcasting
Alexander
2026-05-11 15:53:43 +02:00
f52e9abb0a
Add WorkflowRun and AlbumEvent repositories with download cancel support
Alexander
2026-05-11 15:53:35 +02:00
7d11b729a5
Add DB migration for workflow_runs, album_events tables and cancelled download state
Alexander
2026-05-11 15:53:27 +02:00
eab92dd40b
Add SearchArtists and GetArtistAlbums proxy RPCs to music-agregator service
Alexander
2026-05-11 10:30:18 +02:00
ad03caa3f4
Add streaming flow diagrams, update existing flows with streaming references
Alexander
2026-05-11 10:26:45 +02:00
24f355c5ae
Add MonitorAlbumStream bidirectional streaming RPC with automatic and manual interaction modes
Alexander
2026-05-11 10:26:37 +02:00
f5e2f764b5
Optimize GetArtists: parallel artist processing, batch album upserts, batch download lookups, retry on metadata calls
Alexander
2026-05-10 00:06:58 +02:00
6320f37240
Deduplicate GetAlbum response: merge release info into AlbumDetail, track release into TrackDetail
Alexander
2026-05-09 23:23:34 +02:00
2740585261
Add album/track releases with audio analysis, AnalyzeAlbumRelease RPC, Docker path auto-resolution, release parsing decision tree
Alexander
2026-05-09 23:16:59 +02:00
1e8506f146
Deduce bit depth, sample rate, and bitrate from file sizes; add comprehensive parser tests
Alexander
2026-05-09 22:09:17 +02:00
7fa859e815
Remove rutracker parser, replace with GenericParser for all indexer results
Alexander
2026-05-09 21:50:55 +02:00
ef75b9bfba
Share single torrent client across all services, eliminate triple qBittorrent login on startup
Alexander
2026-05-09 21:42:53 +02:00
758a4b909a
Leftovers
Alexander
2026-05-09 21:31:24 +02:00
31ec3f9826
Add MonitorAlbum component tests: 21 cases covering all flow diagrams (bufconn + testcontainers + hand-rolled mocks)
Alexander
2026-05-09 21:31:09 +02:00
6f31698006
Fix monitor state: never downgrade on upsert, explicitly set monitored on MonitorAlbum
Alexander
2026-05-09 20:26:38 +02:00
3ce6e23421
Fix duplicate download insert: handle NULL columns in download scan, check by torrent ID, enrich MonitorAlbum response, recover orphaned downloads on startup
Alexander
2026-05-09 20:13:43 +02:00
cca404bcc0
Enrich MonitorAlbum response, prevent duplicate downloads, recover orphaned jobs on startup
Alexander
2026-05-09 20:01:53 +02:00
5257ed0f1b
Fix album persistence by passing artist DB ID directly to PersistAlbum
Alexander
2026-05-09 11:18:52 +02:00
8c60fe5e35
Add GetAlbum RPC with track details and persist metadata on discovery
Alexander
2026-05-09 10:47:06 +02:00
e61e58be72
Expand GetArtists with album details, download info, and generic MonitorState enum
Alexander
2026-05-08 23:00:42 +02:00
e49cc25372
Add GetArtists RPC with artist monitor state (monitored/unmonitored/excluded)
Alexander
2026-05-08 22:27:56 +02:00
60c94935b2
Persist metadata to DB, poll download worker, metadata service layer
Alexander
2026-05-08 11:00:04 +02:00
66264e1314
Add database schema, ERD, and repository layer
Alexander
2026-05-08 10:03:28 +02:00
84a6fe8ec7
Refactor MonitorAlbum into focused methods
Alexander
2026-05-07 23:28:35 +02:00
8ad2734964
Implement MonitorAlbum: search, parse, filter by quality, add best to qbittorrent
Alexander
2026-05-07 23:21:21 +02:00
79f3f145de
Add indexer cache with River queue for scheduled refresh
Alexander
2026-05-07 21:41:17 +02:00
2041c154cf
Add the proxing to metadata-agregator
Alexander
2026-05-07 12:00:37 +02:00
97a57c10fd
Added add endpoint
Alexander
2026-05-07 10:27:20 +02:00
6071bc7980
Implement the list endpoint for qbittorrent
Alexander
2026-05-06 22:53:55 +02:00
36416081c1
Create torrent proto stub
Alexander
2026-05-06 22:26:40 +02:00
3249bdc35c
Add gRPC observability: logging, metrics, recovery interceptors
Alexander
2026-05-06 21:58:24 +02:00
67f46f740b
Remove HTTP/REST server, keep gRPC only
Alexander
2026-05-06 21:45:48 +02:00
5fa46b2890
Add attr to differentiate trackers for future
Alexander
2026-05-06 21:42:05 +02:00
b8fcbacb07
Update rutracker categories
Alexander
2026-05-06 21:27:03 +02:00
2400c6345a
Refactor return type of the search
Alexander
2026-05-05 14:41:45 +02:00
b41ea7d023
More parser tests + fixes
Alexander
2026-05-04 23:17:38 +02:00
bfef1b6c79
Implement Jackett search entpoint
Alexander
2026-05-04 22:48:14 +02:00
8ffa92276e
Add Jacket indexer with capabilities implemented
Alexander
2026-05-04 18:40:31 +02:00
32eb8c931e
Create indexer proto
Alexander
2026-05-04 16:45:22 +02:00
f8040ec088
Default values for config
Alexander
2026-05-04 16:27:04 +02:00
268ee57913
Grpc hello service implementation
Alexander
2026-05-04 14:56:05 +02:00
6baa895c6c
Configure routing
Alexander
2026-05-03 16:10:24 +02:00
58aa4ef23b
Added config, added logging
Alexander
2026-05-03 15:49:35 +02:00
46c2f6541f
More removing old code
Alexander
2026-05-03 13:46:21 +02:00
8067cd93c5
Start from the beginning
Alexander
2026-04-29 17:31:07 +02:00
945aab82c2
WIP
Alexander
2026-04-29 17:29:58 +02:00
3ecc6aee62
feat: add download tracking endpoints (sections 4.1, 4.2, 4.3, 4.4)
Alexander
2026-04-29 13:44:01 +02:00
c307c68d88
feat: add album management endpoints (sections 2.1, 2.2, 2.3)
Alexander
2026-04-29 13:34:20 +02:00
ff49403fd5
feat: add edit artist endpoint (section 1.4)
Alexander
2026-04-29 13:22:14 +02:00
b08a0b1646
feat: add refresh and delete artist endpoints (sections 1.2, 1.3)
Alexander
2026-04-29 13:08:53 +02:00
25deaf4621
test: add e2e tests for Add Artist flow (section 1.1)
Alexander
2026-04-29 11:25:30 +02:00
41fb033d30
refactor: rewrite project from Rust to Go
Alexander
2026-04-29 10:45:05 +02:00
f24543f401
feat: add PostgreSQL persistence and unified sync endpoint
Alexander
2026-04-29 10:06:01 +02:00
3aaeade4d3
feat: add artist sync flow and stub torrent client
Alexander
2026-04-28 21:40:11 +02:00
925c7c3703
feat: add CLI args, health endpoint, and fix torznab search
Alexander
2026-04-28 19:16:22 +02:00
5afcbd68ad
feat: add metadata-agregator gRPC client integration
Alexander
2026-04-28 18:58:31 +02:00
1aaaab4640
feat: add indexer and torrent REST controllers with service layer
Alexander
2026-04-28 18:53:50 +02:00
f77806ba46
feat: add torrent client interface with qbittorrent support
Alexander
2026-04-28 18:05:36 +02:00
ff9ca7ecce
feat: add rest api for music tracks
Alexander
2026-04-28 18:05:32 +02:00
7c55e5cddd
chore: initialize rust project with axum
Alexander
2026-04-28 18:05:27 +02:00
98dcc63c9b
chore: add nix flake configuration
Alexander
2026-04-28 18:05:23 +02:00