about summary refs log tree commit diff
path: root/users/Profpatsch/whatcd-resolver/src
AgeCommit message (Collapse)AuthorFilesLines
2024-05-13 r/8131 feat(users/Profpatsch/whatcd-resolver): allow listing only downloadProfpatsch2-6/+9
When showing the best torrents table, we want to be able to filter for “only downloaded”. Change-Id: Ibfe9212f3d422d305f858fbef023ee985c1183d6 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11650 Autosubmit: Profpatsch <mail@profpatsch.de> Reviewed-by: Profpatsch <mail@profpatsch.de> Tested-by: BuildkiteCI
2024-05-13 r/8130 refactor(users/Profpatsch/whatcd-resolver): artistPage hander fnProfpatsch1-1/+8
Change-Id: Ia0f5d358e9be99d39117ba13fce528f418daf416 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11649 Autosubmit: Profpatsch <mail@profpatsch.de> Reviewed-by: Profpatsch <mail@profpatsch.de> Tested-by: BuildkiteCI
2024-05-13 r/8129 feat(users/Profpatsch/whatcd-resolver): trivial artist pageProfpatsch1-1/+16
Change-Id: I2c0dd1a3f300b46fec8b38c310dc08ea2f5f2492 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11648 Autosubmit: Profpatsch <mail@profpatsch.de> Reviewed-by: Profpatsch <mail@profpatsch.de> Tested-by: BuildkiteCI
2024-05-13 r/8128 fix(users/Profpatsch/whatcd-resolver): only prepend log pathProfpatsch1-2/+2
Otherwise we break routing. Change-Id: I7555a75fcd589a003c81d86e8e8242fcd0da3594 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11647 Tested-by: BuildkiteCI Autosubmit: Profpatsch <mail@profpatsch.de> Reviewed-by: Profpatsch <mail@profpatsch.de>
2024-05-13 r/8127 refactor(users/Profpatsch/whatcd-resolver): inline hhProfpatsch1-17/+15
Change-Id: I70ea1d7cb17e7ac7bf63be86b79d2f0b79586912 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11646 Autosubmit: Profpatsch <mail@profpatsch.de> Reviewed-by: Profpatsch <mail@profpatsch.de> Tested-by: BuildkiteCI
2024-05-13 r/8126 refactor(users/Profpatsch/whatcd-resolver): inline hProfpatsch1-3/+2
Change-Id: If14bc2d72b28a3022067f42b63596a745ad891d9 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11645 Autosubmit: Profpatsch <mail@profpatsch.de> Reviewed-by: Profpatsch <mail@profpatsch.de> Tested-by: BuildkiteCI
2024-05-13 r/8125 refactor(users/Profpatsch/whatcd-resolver): fix respond warningProfpatsch1-3/+3
Change-Id: Ie833b611d1ad413b03465caa38e4ee2c1deb9a37 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11644 Autosubmit: Profpatsch <mail@profpatsch.de> Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de>
2024-05-13 r/8124 refactor(users/Profpatsch/whatcd-resolver): remove all debugProfpatsch1-4/+1
Change-Id: I6b3d26df05d2370ea86ecbacfe21508ebfe89fa6 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11643 Autosubmit: Profpatsch <mail@profpatsch.de> Reviewed-by: Profpatsch <mail@profpatsch.de> Tested-by: BuildkiteCI
2024-05-13 r/8123 fix(users/Profpatsch/whatcd-resolver): comment out jsonldProfpatsch1-8/+6
Change-Id: I301b4175fe3741f688daab91537e7a859b353686 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11642 Reviewed-by: Profpatsch <mail@profpatsch.de> Autosubmit: Profpatsch <mail@profpatsch.de> Tested-by: BuildkiteCI
2024-05-13 r/8122 refactor(users/Profpatsch/whatcd-resolver): handler response structProfpatsch1-12/+18
Change-Id: I3224ccc5ccaea9eb26c60a65f048ca64024a7b9b Reviewed-on: https://cl.tvl.fyi/c/depot/+/11641 Tested-by: BuildkiteCI Autosubmit: Profpatsch <mail@profpatsch.de> Reviewed-by: Profpatsch <mail@profpatsch.de>
2024-05-13 r/8120 fix(users/Profpatsch/whatcd-resolver): always use good html rendererProfpatsch1-6/+1
The pretty renderer would add extra newlines, making the html different. Change-Id: I28496cbec61d4c9c63f657a499a1990f891949ee Reviewed-on: https://cl.tvl.fyi/c/depot/+/11639 Reviewed-by: Profpatsch <mail@profpatsch.de> Tested-by: BuildkiteCI Autosubmit: Profpatsch <mail@profpatsch.de>
2024-05-13 r/8119 fix(users/Profpatsch/whatcd-resolver): prepend / for route loggingProfpatsch1-2/+2
Change-Id: I46e77540cb47ae42dc44ec950a3ad97cb408974c Reviewed-on: https://cl.tvl.fyi/c/depot/+/11638 Autosubmit: Profpatsch <mail@profpatsch.de> Reviewed-by: Profpatsch <mail@profpatsch.de> Tested-by: BuildkiteCI
2024-03-24 r/7769 feat(users/Profpatsch/whatcd-resolver): factor out handlersProfpatsch1-120/+168
First stab at factoring out handlers into a generalized handler function. This is still kind of confusing, but can be simplified later. Change-Id: I42da047de83f6d489337d57059f85f793313443a Reviewed-on: https://cl.tvl.fyi/c/depot/+/11245 Autosubmit: Profpatsch <mail@profpatsch.de> Reviewed-by: Profpatsch <mail@profpatsch.de> Tested-by: BuildkiteCI
2024-03-23 r/7766 feat(users/Profpatsch/whatcd-resolver): trace http requestsProfpatsch6-31/+187
Move the http calls into their own module, so we can trace the request and provide a simple copy-to-replay command. We have to work around a bug in the otel library, which would limit our attribute value length to 128 bytes because it uses the wrong option value. ~~~ `ifExists` is finally made more useful for dealing with optional attributes in e.g. lists. Change-Id: Iafab523e9ec4b00136db43f31fdc12aeefb7f77c Reviewed-on: https://cl.tvl.fyi/c/depot/+/11241 Tested-by: BuildkiteCI Autosubmit: Profpatsch <mail@profpatsch.de> Reviewed-by: Profpatsch <mail@profpatsch.de>
2024-03-23 r/7762 chore(users/Profpatsch/whatcd-resolver): JsonLd moduleProfpatsch2-116/+138
Change-Id: Ia2bd60b8449592ef1f79ac4877554958eb0b0407 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11239 Reviewed-by: Profpatsch <mail@profpatsch.de> Autosubmit: Profpatsch <mail@profpatsch.de> Tested-by: BuildkiteCI
2024-03-23 r/7761 chore(users/Profpatsch/whatcd-resolver): Transmission & RedactedProfpatsch3-731/+853
Move the functionality into two coarse modules. There’s still the question about whether functions that change the database tables should be in their own storage module, but let’s see if it gets too confusing. Change-Id: Ied1d47b353dd4597ffea35f111f440aad22e981d Reviewed-on: https://cl.tvl.fyi/c/depot/+/11238 Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de> Autosubmit: Profpatsch <mail@profpatsch.de>
2024-03-17 r/7716 feat(users/Profpatsch/whatcd-resolver): render anon json+ld objsProfpatsch1-42/+66
Some json+ld objects cannot be expanded any further, they are missing the `@id` tag. Now we also render them as objects. Change-Id: I1c8f26f3c34e69420c349e66a3ce5a36dc55a1ea Reviewed-on: https://cl.tvl.fyi/c/depot/+/11173 Reviewed-by: Profpatsch <mail@profpatsch.de> Autosubmit: Profpatsch <mail@profpatsch.de> Tested-by: BuildkiteCI
2024-03-17 r/7715 feat(users/Profpatsch/whatcd-resolver): add autorefreshProfpatsch2-7/+65
Adds a little polling mechanism that compares against an ID that is generated anew every time the server is restarted. Works well together with shortcuttable. Change-Id: Icc6745b599e43881c14349794feaf5794cfe6777 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11172 Autosubmit: Profpatsch <mail@profpatsch.de> Reviewed-by: Profpatsch <mail@profpatsch.de> Tested-by: BuildkiteCI
2024-03-16 r/7712 feat(users/Profpatsch/my-prelude): update librariesProfpatsch2-24/+27
The latest and greatest! Change-Id: I34c0e9f41b3b3cc727d9ea89c7ce6a43271b3170 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11169 Autosubmit: Profpatsch <mail@profpatsch.de> Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de>
2024-03-16 r/7709 feat(users/Profpatsch/whatcd-resolver): log json+ld fetchingProfpatsch2-69/+90
This traces the target of a json+ld fetch. We also simplify the telemetry stuff by using a pseudo-class `MonadOtel` everywhere. I wonder if we can get rid of passing the span to `assertM`, because it’s kind of an antipattern to be honest. Change-Id: I1448d643c909a29684fa1ae54037177ba2c20639 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11166 Tested-by: BuildkiteCI Autosubmit: Profpatsch <mail@profpatsch.de> Reviewed-by: Profpatsch <mail@profpatsch.de>
2024-03-16 r/7708 refactor(users/Profpatsch/whatcd-resolver): move AppT & Html outProfpatsch3-171/+201
These functions are just general setup and html helpers, the main file is getting a bit long otherwise. Change-Id: I194e9f7f4caa4ce204d510c885dcf5af63d0e76e Reviewed-on: https://cl.tvl.fyi/c/depot/+/11165 Autosubmit: Profpatsch <mail@profpatsch.de> Reviewed-by: Profpatsch <mail@profpatsch.de> Tested-by: BuildkiteCI
2024-03-16 r/7706 chore(third_party/haskell): pa-label: 0.1.0.1 -> 0.1.1.0Profpatsch1-29/+0
chore(users/Profpatsch/whatcd-resolver): use more from Label New label version contains these helpers. Change-Id: I3ef2ae9b92f2c798842ae001588b2c6d9f3ab971 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11162 Tested-by: BuildkiteCI Autosubmit: Profpatsch <mail@profpatsch.de> Reviewed-by: Profpatsch <mail@profpatsch.de>
2024-03-03 r/7639 chore(users/Profpatsch/whatcd-resolver): slight changesProfpatsch1-61/+51
Change-Id: I57b0fcf9bd3953951dd0cffbee1fbfab5abbeb47 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11089 Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de> Autosubmit: Profpatsch <mail@profpatsch.de>
2023-10-15 r/6820 feat(users/Profpatsch/whatcd-resolver): also link json ld fieldsProfpatsch1-8/+8
We can cross-reference all of these to schema.org, it should work for most of the fields. Change-Id: I38d8dbc7e964764886ddd156c4148bcf3ee376f3 Reviewed-on: https://cl.tvl.fyi/c/depot/+/9744 Autosubmit: Profpatsch <mail@profpatsch.de> Reviewed-by: Profpatsch <mail@profpatsch.de> Tested-by: BuildkiteCI
2023-10-15 r/6819 feat(users/Profpatsch/whatcd-resolver): start checking musicbrainzProfpatsch1-22/+220
Ideally we can figure out how to search for single songs by grepping through musicbrainz. For this we kinda need the jsonld results, so this is a first step which visualizes the structure and makes it easy-ish to lazily traverse it. Change-Id: Ieca21674dee8e8c2dacbab4f2f15ccbe067da647 Reviewed-on: https://cl.tvl.fyi/c/depot/+/9743 Reviewed-by: Profpatsch <mail@profpatsch.de> Autosubmit: Profpatsch <mail@profpatsch.de> Tested-by: BuildkiteCI
2023-10-15 r/6816 chore(third_party/haskell): update pa packagesProfpatsch1-4/+3
Change-Id: I8abcb479b0f5c0bd6ed1abc3c9618c2362ff835a Reviewed-on: https://cl.tvl.fyi/c/depot/+/9740 Autosubmit: Profpatsch <mail@profpatsch.de> Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de>
2023-10-14 r/6809 feat(users/Profpatsch/whatcd-resolver): more otel tracesProfpatsch1-110/+263
Change-Id: I5094b64f202eeedb57510a25850bba2edd9ec36f Reviewed-on: https://cl.tvl.fyi/c/depot/+/9725 Reviewed-by: Profpatsch <mail@profpatsch.de> Autosubmit: Profpatsch <mail@profpatsch.de> Tested-by: BuildkiteCI
2023-10-09 r/6747 chore(3p/sources): bump channels & overlays (2023-10-08)Vincent Ambo1-0/+1
Change-Id: I9eeaffad53aba278cd9082c5b4c3e7b1c5f6cc22 Reviewed-on: https://cl.tvl.fyi/c/depot/+/9585 Tested-by: BuildkiteCI Reviewed-by: tazjin <tazjin@tvl.su> Reviewed-by: Profpatsch <mail@profpatsch.de> Autosubmit: tazjin <tazjin@tvl.su>
2023-09-29 r/6674 feat(users/Profpatsch/MonadPostgres): trace db queriesProfpatsch1-14/+1
Experiment of how to instrument a lib I’m using to trace instead of log. Now that we added MonadTracer to Transaction, we can drop the unlifted `inSpanT`. Change-Id: Iea891a58cfb33a0837978611456c33aefcccf0d7 Reviewed-on: https://cl.tvl.fyi/c/depot/+/9491 Autosubmit: Profpatsch <mail@profpatsch.de> Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de>
2023-09-29 r/6673 feat(users/Profpatsch/whatcd-resolver): add basic otel tracingProfpatsch1-5/+52
For it to work, you need otel (e.g. jaeger) to run on port 4317. Change-Id: I36f0493b9be26af256769ae5af8916029036a76e Reviewed-on: https://cl.tvl.fyi/c/depot/+/9488 Tested-by: BuildkiteCI Autosubmit: Profpatsch <mail@profpatsch.de> Reviewed-by: Profpatsch <mail@profpatsch.de>
2023-09-29 r/6671 refactor(users/Profpatsch/whatcd-resolver): more efficient insertsProfpatsch1-39/+101
Instead of inserting torrents and every tour group seperately, insert the tour groups and then the torrents in one go (unzipped). I finally found a good use for list comprehensions, flattening nested lists. Change-Id: I7dfc765ad058dff3afb3b03887141b334a4b1988 Reviewed-on: https://cl.tvl.fyi/c/depot/+/9486 Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de> Autosubmit: Profpatsch <mail@profpatsch.de>
2023-09-29 r/6670 refactor(users/Profpatsch/whatcd-resolver): naive combined insertProfpatsch1-41/+52
Still n+1, but now we got the IO where we want it to make the database inserts efficient. Change-Id: I2ee36ea41bf186cbeb5581b0df802bb3611769fe Reviewed-on: https://cl.tvl.fyi/c/depot/+/9485 Reviewed-by: Profpatsch <mail@profpatsch.de> Autosubmit: Profpatsch <mail@profpatsch.de> Tested-by: BuildkiteCI
2023-09-29 r/6669 refactor(users/Profpatsch/whatcd-resolver): move inserts outProfpatsch1-52/+54
Now we can move the I/O into a where block. Change-Id: Ib5334948f3d11ca120ce0b7a46c67f8500fdab3a Reviewed-on: https://cl.tvl.fyi/c/depot/+/9484 Reviewed-by: Profpatsch <mail@profpatsch.de> Tested-by: BuildkiteCI Autosubmit: Profpatsch <mail@profpatsch.de>
2023-09-29 r/6668 refactor(users/Profpatsch/whatcd-resolver): prepare to split IOProfpatsch1-53/+74
Returning an I/O action was a good first approximation, but leads to a n+1 query problem, making the whole shebang pretty slow after doing a search. Thus we need to split data & I/O, so we can be more clever in the next commit. Change-Id: Ieb2f8d5445f1258047da9b121b977c0b8d2dd7f8 Reviewed-on: https://cl.tvl.fyi/c/depot/+/9483 Reviewed-by: Profpatsch <mail@profpatsch.de> Autosubmit: Profpatsch <mail@profpatsch.de> Tested-by: BuildkiteCI
2023-09-17 r/6604 refactor(users/Profpatsch/whatcd-resolver): rename main functionProfpatsch1-12/+12
Change-Id: I8ce8ef1cc8a35358d20610be7c8bdadefd3aa30f Reviewed-on: https://cl.tvl.fyi/c/depot/+/9354 Autosubmit: Profpatsch <mail@profpatsch.de> Reviewed-by: Profpatsch <mail@profpatsch.de> Tested-by: BuildkiteCI
2023-09-15 r/6593 feat(users/Profpatsch/whatcd-resolver): misc improvementsProfpatsch1-18/+30
* run on port 9092 (transmission runs on 9091) * run postgres on port 5431 instead of 5432 (to not interfere) * only search for albums for now * correctly handle missing torrent file in SELECT Change-Id: I20125f7731c9b80a9e8ea05b726adfb1244a24bc Reviewed-on: https://cl.tvl.fyi/c/depot/+/9335 Reviewed-by: Profpatsch <mail@profpatsch.de> Autosubmit: Profpatsch <mail@profpatsch.de> Tested-by: BuildkiteCI
2023-09-15 r/6592 feat(users/Profpatsch/whatcd-resolver): query all pages in searchProfpatsch1-54/+78
If more than one page is returned by the search, query all of them. Also add an ON CONFLICT clause in case the torrent group already exists, to update it. This function is getting a bit unwieldy (plus it suffers from an n+1 problem), but ok. Change-Id: Ib505a2be8286d658ae44a3fe124a4fb42d0fc0c6 Reviewed-on: https://cl.tvl.fyi/c/depot/+/9334 Autosubmit: Profpatsch <mail@profpatsch.de> Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de>
2023-08-08 r/6471 chore(users/Profpatsch): Update postgres module n stuffProfpatsch1-113/+12
Improvements from “upstream”, fresh served. Change-Id: I60e02835730f6a65739eaa729f3e3eed1a0693e6 Reviewed-on: https://cl.tvl.fyi/c/depot/+/9025 Autosubmit: Profpatsch <mail@profpatsch.de> Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de>
2023-08-07 r/6467 feat(users/Profpatsch/whatcd-resolver): Prefer remastersProfpatsch1-2/+10
Usually remasters just … sound better. Thus let’s give them a boost in the selection score. In case they are horrible they should have significantly less people seeding them and less snatches than their originals anyway (maybe the multiplier should be 1.5 or 2 instead?) Change-Id: I6817091f42b7bcb75eaf57a6aa635b5ba468f99e Reviewed-on: https://cl.tvl.fyi/c/depot/+/9014 Reviewed-by: Profpatsch <mail@profpatsch.de> Tested-by: BuildkiteCI Autosubmit: Profpatsch <mail@profpatsch.de>
2023-08-06 r/6466 chore(users/Profpatsch): Move Multipart2 into new webstuff packageProfpatsch1-220/+0
Change-Id: I903f1b554beed1240d2a9cf14ff44d1f3cb41ec5 Reviewed-on: https://cl.tvl.fyi/c/depot/+/9013 Tested-by: BuildkiteCI Autosubmit: Profpatsch <mail@profpatsch.de> Reviewed-by: Profpatsch <mail@profpatsch.de>
2023-08-06 r/6465 chore(users/Profpatsch/whatcd-resolver): build with nixProfpatsch1-2/+2
Change-Id: I2d6ee30671bb60a96bcbfede1fd7a17fcf7c3ca8 Reviewed-on: https://cl.tvl.fyi/c/depot/+/9012 Reviewed-by: Profpatsch <mail@profpatsch.de> Autosubmit: Profpatsch <mail@profpatsch.de> Tested-by: BuildkiteCI
2023-07-16 r/6429 chore(users/Profpatsch): move utils to my-preludeProfpatsch4-528/+0
I want to use these in multiple projects. Change-Id: I5dfdad8614bc5835e59df06f724de78acae78d42 Reviewed-on: https://cl.tvl.fyi/c/depot/+/8971 Reviewed-by: Profpatsch <mail@profpatsch.de> Tested-by: BuildkiteCI
2023-07-14 r/6423 feat(users/Profpatsch/whatcd-resolver): Show percent doneProfpatsch1-47/+65
Change-Id: I6d7852570bdca807e4d4fff01d72de9f1084fd42 Reviewed-on: https://cl.tvl.fyi/c/depot/+/8910 Reviewed-by: Profpatsch <mail@profpatsch.de> Tested-by: BuildkiteCI
2023-07-14 r/6422 feat(users/Profpatsch/whatcd-resolver): Somewhat fix torrent stateProfpatsch1-11/+140
I feel like I’m slowly but steadily coding myself into a corner here, have to rething the whole state thing. Anyway, now the refresh will display roughly the same information as the interactive one, which is *a* first step I guess. Change-Id: I8820c2e321e6e8c9eba0f2f1cc70ce07a044621c Reviewed-on: https://cl.tvl.fyi/c/depot/+/8906 Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de>
2023-07-14 r/6421 feat(users/Profpatsch/whatcd-resolver): Add torrent & basic statusProfpatsch1-92/+156
This is a bit dirty, ideally we have a single polling loop that uses `hx-swap-oob` to fill all status fields in the table (to avoid O(n) looping requests). Change-Id: I78ab392964cf00e39424002fe48cb35a60af184a Reviewed-on: https://cl.tvl.fyi/c/depot/+/8875 Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de>
2023-07-14 r/6420 feat(users/Profpatsch/whatcd-resolver): Download torrent fileProfpatsch1-47/+179
Change-Id: I75422a1fc4f94e8aa856f1ea1b2dbec42360c7ac Reviewed-on: https://cl.tvl.fyi/c/depot/+/8874 Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de>
2023-07-14 r/6419 feat(users/Profpatsch/whatcd-resolver): Display transmission torrentProfpatsch1-16/+64
Change-Id: I1a45dd4c7fa798c161545abf545017be1f83a8f9 Reviewed-on: https://cl.tvl.fyi/c/depot/+/8873 Reviewed-by: Profpatsch <mail@profpatsch.de> Tested-by: BuildkiteCI
2023-07-14 r/6418 feat(users/Profpatsch/whatcd-resolver): Remove dynatableProfpatsch1-71/+20
In favor of all-server-side rendering. Change-Id: I439c31cc6184cd1f6f77843819eebfb396e0ace8 Reviewed-on: https://cl.tvl.fyi/c/depot/+/8872 Reviewed-by: Profpatsch <mail@profpatsch.de> Tested-by: BuildkiteCI
2023-07-14 r/6417 feat(users/Profpatsch/whatcd-resolver): Add server-side searchProfpatsch4-81/+457
Change-Id: Ifbbe3bca6988b0a090f456ae8d9dbaa808c89e19 Reviewed-on: https://cl.tvl.fyi/c/depot/+/8867 Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de>
2023-07-14 r/6416 feat(users/Profpatsch/whatcd-resolver): Cache searches & web UIProfpatsch1-95/+268
When looking up stuff on the tracker, cache the results in our database and display the best torrent matches in a simple web UI. Change-Id: Iba8417fbdd3ea812765ab0289a1d5b03b7c2be81 Reviewed-on: https://cl.tvl.fyi/c/depot/+/8857 Reviewed-by: Profpatsch <mail@profpatsch.de> Tested-by: BuildkiteCI