about summary refs log tree commit diff
path: root/users/Profpatsch/whatcd-resolver/src/WhatcdResolver.hs (follow)
AgeCommit message (Collapse)AuthorFilesLines
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 requestsProfpatsch1-1/+17
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 moduleProfpatsch1-116/+1
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 & RedactedProfpatsch1-731/+2
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 autorefreshProfpatsch1-7/+49
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 librariesProfpatsch1-22/+25
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 fetchingProfpatsch1-67/+73
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 outProfpatsch1-171/+12
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/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-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 searchProfpatsch1-80/+232
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
2023-07-14 r/6415 feat(users/Profpatsch/whatcd-resolver): INSERT red search resultsProfpatsch1-27/+207
Change-Id: Ice7fdb2e265cfb99734ed41d17b62ac98f7a4869 Reviewed-on: https://cl.tvl.fyi/c/depot/+/8840 Reviewed-by: Profpatsch <mail@profpatsch.de> Tested-by: BuildkiteCI
2023-07-14 r/6414 feat(users/Profpatsch/whatcd-resolver): add initial redacted APIProfpatsch1-0/+29
Change-Id: I3143a932646d61b7661df4e4da4edf24a360f6cc Reviewed-on: https://cl.tvl.fyi/c/depot/+/8833 Reviewed-by: Profpatsch <mail@profpatsch.de> Tested-by: BuildkiteCI
2023-07-14 r/6413 feat(users/Profpatsch): init whatcd-resolverProfpatsch1-0/+303
Change-Id: Ieb377fb8caa60e716703153dfeca5173f9a6779d Reviewed-on: https://cl.tvl.fyi/c/depot/+/8830 Reviewed-by: Profpatsch <mail@profpatsch.de> Tested-by: BuildkiteCI