Commit graph

349 commits

Author SHA1 Message Date
Profpatsch
bd5c49c23a chore(users/Profpatsch/.hlint.yaml): ignore Use maybe
Change-Id: I302b4b66b0c3a3646fb84afd0140bf0ef92e541d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/11679
Autosubmit: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2024-06-03 14:55:13 +00:00
Profpatsch
87d806c20f fix(users/Profpatsch/whatcd-resolver): store seeding_weight
Generated columns!!

This reduces the query time for distinct on somewhat!

Change-Id: Ic004d327b719a9f44a224ec87709992ce3d8f160
Reviewed-on: https://cl.tvl.fyi/c/depot/+/11676
Autosubmit: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2024-06-03 14:55:13 +00:00
Profpatsch
b54ad3e580 feat(users/Profpatsch/whatcd-resolver): add artist albums
Simple artist album page that only shows albums the artist was
involved with.

Change-Id: Icff34afc6d1b39b6fb17765c1b3ea500dd4b4d95
Reviewed-on: https://cl.tvl.fyi/c/depot/+/11675
Tested-by: BuildkiteCI
Autosubmit: Profpatsch <mail@profpatsch.de>
Reviewed-by: Profpatsch <mail@profpatsch.de>
2024-06-03 14:55:13 +00:00
Profpatsch
a3a03a5a80 fix(users/Profpatsch/whatcd-resolver): index seeding_weight calc
The seeding weight would slow down the query quite a bit, so let’s
move it into a procedure and add an index onto the torrents table that
caches the result.

Baba’s first pl/SQL function!

Change-Id: I3bc6919b115c02b9c9aa74702fac0a8bbc66d2c1
Reviewed-on: https://cl.tvl.fyi/c/depot/+/11674
Autosubmit: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2024-06-03 14:55:13 +00:00
Profpatsch
2ac89bb480 fix(users/Profpatsch/whatcd-resolver): fix transmission session
The logic around transmission session handling was f*cked, this fixes
that.

We use an IORef instead of an MVar, since we want to unconditionally
write the new value. Even if multiple requests race, I *hope* that
transmission returns the same session id, otherwise we might get a
request loop. But it should be fine. (The semantics is not nicely
documented in the RPC docs.)

Additionally, log the session ids in the requests.

Change-Id: Id7d33f8cb74cb349e502331cad5eb5abe8a624cd
Reviewed-on: https://cl.tvl.fyi/c/depot/+/11673
Autosubmit: Profpatsch <mail@profpatsch.de>
Reviewed-by: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
2024-06-03 14:55:13 +00:00
Profpatsch
3b8b47baba feat(users/Profpatsch/whatcd-resolver): add status to http trace
Change-Id: Ic83a79c18129dd195e808d1c78758dbf0be8ff76
Reviewed-on: https://cl.tvl.fyi/c/depot/+/11672
Autosubmit: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2024-06-03 14:55:13 +00:00
Profpatsch
44d8bf80f5 fix(users/Profpatsch/whatcd-resolver): remove trace debugging
Accidentally left that in.

Change-Id: Id744ea0f2281e0e2a0fe3324efa3f4c13b6ce9fc
Reviewed-on: https://cl.tvl.fyi/c/depot/+/11671
Autosubmit: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2024-06-03 14:55:13 +00:00
Profpatsch
c1598cd2d2 feat(users/Profpatsch/whatcd-resolver): display all artists
apparently the `torrent_group` json only contains one artist, while
the torrent itself contains a list of them.

This is important, because we need the artist id and the
`torrent_group` does not provide it, only the torrent one.

Change-Id: I3db45f454f14e89ea8c8dafba2065ecd55f5bcda
Reviewed-on: https://cl.tvl.fyi/c/depot/+/11670
Autosubmit: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2024-06-03 14:55:13 +00:00
Profpatsch
7197d28098 feat(users/Profpatsch/whatcd-resolver): add query args to log
Change-Id: I162a438bc9d072adf952295c93839b3050bfff40
Reviewed-on: https://cl.tvl.fyi/c/depot/+/11669
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
Autosubmit: Profpatsch <mail@profpatsch.de>
2024-06-03 14:55:13 +00:00
Profpatsch
f13c5dddb5 chore(users/Profpatsch/shell.nix): comment out broken haskell pkg
Change-Id: I73286424ee07e22b156096bfb582b22daf05c819
Reviewed-on: https://cl.tvl.fyi/c/depot/+/11661
Autosubmit: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2024-06-03 14:55:13 +00:00
Profpatsch
5c709131de fix(users/Profpatsch/whatcd-resolver): show query error as html
We want the user thingy to see which error happened; it also gets
logged in the traces as before.

There’s another function which we should replace as well at one point.

Change-Id: I3d49edccd0e2088a45ac0138af9536b40dfa6848
Reviewed-on: https://cl.tvl.fyi/c/depot/+/11660
Tested-by: BuildkiteCI
Autosubmit: Profpatsch <mail@profpatsch.de>
Reviewed-by: Profpatsch <mail@profpatsch.de>
2024-06-03 14:55:13 +00:00
Profpatsch
14353ce751 fix(users/Profpatsch/MonadPostgres): take old formatter process
The pool library would always take out the most recently used perl
resource again, and since that is the one that we just spawned, we’d
be back at square one. Instead, we try to find an older one (or up to
200ms old) and use that instead, because that should be the one with
the fastest response time.

Okay, that was enough bullshit lol.

Change-Id: I6b999e682d02ab03206a9d1b707edf16daa04a0d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/11657
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
Autosubmit: Profpatsch <mail@profpatsch.de>
2024-05-13 16:09:24 +00:00
Profpatsch
5ea5dff597 feat(users/Profpatsch/MyPrelude): add Arg
Change-Id: I218562c924489ff9cba783dc88ecb8e777c8aac3
Reviewed-on: https://cl.tvl.fyi/c/depot/+/11656
Reviewed-by: Profpatsch <mail@profpatsch.de>
Autosubmit: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
2024-05-13 16:09:24 +00:00
Profpatsch
53163de836 feat(users/Profpatsch/MonadPostgres): time formatting with event
Instead of opening a separate span, we just add events for start and
end of formatting.

Change-Id: I26f6792dfdcd23c01cff415fa0f436d6a22d93fe
Reviewed-on: https://cl.tvl.fyi/c/depot/+/11655
Autosubmit: Profpatsch <mail@profpatsch.de>
Reviewed-by: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
2024-05-13 16:09:24 +00:00
Profpatsch
16ec24280d feat(users/Profpatsch/whatcd-resolver): use PgFormatPool
It does chip of the init overhead of like 50–100ms, even though the
formatting still takes quite some time (up to 200ms for more complex
expressions).

Maybe we need some simplistic formatter in the future that just splits
on parens? It’s not an easy problem …

Change-Id: I2ce951e6b3c2dc56294b1bdab913480727b50f0b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/11654
Autosubmit: Profpatsch <mail@profpatsch.de>
Reviewed-by: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
2024-05-13 16:09:24 +00:00
Profpatsch
aa85a18723 feat(users/Profpatsch/MonadPostgres): add PgFormatPool
Change-Id: Id65ee6184ef536fe6a46637005bea903b37f6ffd
Reviewed-on: https://cl.tvl.fyi/c/depot/+/11653
Autosubmit: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2024-05-13 14:57:25 +00:00
Profpatsch
e2a52407f8 fix(users/Profpatsch/MonadPostgres): make sure no rc file is used
Change-Id: Ia84de16fd41d00d81efd963f4ad42e069cf34ed5
Reviewed-on: https://cl.tvl.fyi/c/depot/+/11652
Reviewed-by: Profpatsch <mail@profpatsch.de>
Autosubmit: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
2024-05-13 14:56:52 +00:00
Profpatsch
a6b4134468 refactor(users/Profpatsch/MonadPostgres): rephrase maybe match
wtf was I thinking

Change-Id: Ia621032d90d7a9363dfe2bfbed122c67c90468f7
Reviewed-on: https://cl.tvl.fyi/c/depot/+/11651
Reviewed-by: Profpatsch <mail@profpatsch.de>
Autosubmit: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
2024-05-13 14:52:19 +00:00
Profpatsch
a2d56cedaf feat(users/Profpatsch/whatcd-resolver): allow listing only download
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 14:50:17 +00:00
Profpatsch
f79c186909 refactor(users/Profpatsch/whatcd-resolver): artistPage hander fn
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 14:50:17 +00:00
Profpatsch
87d7c6198d feat(users/Profpatsch/whatcd-resolver): trivial artist page
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 14:50:17 +00:00
Profpatsch
bad074465a fix(users/Profpatsch/whatcd-resolver): only prepend log path
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 14:49:46 +00:00
Profpatsch
8a6f12bdb9 refactor(users/Profpatsch/whatcd-resolver): inline hh
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 14:45:13 +00:00
Profpatsch
d119d07aaa refactor(users/Profpatsch/whatcd-resolver): inline h
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 14:45:13 +00:00
Profpatsch
173e864f30 refactor(users/Profpatsch/whatcd-resolver): fix respond warning
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 14:45:13 +00:00
Profpatsch
ba1eb4dc00 refactor(users/Profpatsch/whatcd-resolver): remove all debug
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 14:45:13 +00:00
Profpatsch
dcd621820a fix(users/Profpatsch/whatcd-resolver): comment out jsonld
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 14:45:13 +00:00
Profpatsch
3068cfd866 refactor(users/Profpatsch/whatcd-resolver): handler response struct
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 14:45:13 +00:00
Profpatsch
0a9b5efac9 fix(users/Profpatsch/MonadPostgres): fix query logging msg
Change-Id: Ic499a59002fa4860067589ff2d187795e6013066
Reviewed-on: https://cl.tvl.fyi/c/depot/+/11640
Autosubmit: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2024-05-13 14:40:09 +00:00
Profpatsch
15054715d6 fix(users/Profpatsch/whatcd-resolver): always use good html renderer
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 14:38:38 +00:00
Profpatsch
58156967b8 fix(users/Profpatsch/whatcd-resolver): prepend / for route logging
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-05-13 14:38:38 +00:00
Profpatsch
5d57ca2dc7 fix(users/Profpatsch/whatcd-resolver): use threaded runtime (again?)
Might have made a mistake when refactoring the cabal file.

Change-Id: Ic45ac9bf0272784ef77a2dfcc59ce2dbd421113c
Reviewed-on: https://cl.tvl.fyi/c/depot/+/11637
Autosubmit: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2024-05-13 14:38:38 +00:00
sterni
73b1f0407b chore(3p/sources): bump channels & overlays – xz edition
Update all 3p/sources as we do normally except

- agenix which is still pinned to 0.15.0

- nixpkgs (unstable) which we bump to the HEAD of the staging-next
  branch. This branch includes the downgrade of xz from 5.6.1 to
  5.4.6 (https://github.com/nixos/nixpkgs/commit/d6dc19adbd). It
  also includes the second haskell-updates rotation with GHC 9.6.4
  which contains a few build fixes that seem to be required to get
  our Haskell targets to work.

Note that this only reverts xz to a version that doesn't contain the now
known backdoor (CVE-2024-3094) which may or may not actually affect
NixOS. Additionally reverting to a version before the malicious
contributor's involvement may be difficult, but prudent:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1068024

Changes required by the updates:

- //3p/overlays/haskell:

  - Update ihp-hsx to latest master to fix build with Stackage LTS 22.
  - Update tmp-postgres to latest master to work around failure with
    ansi-wl-pprint >= 1.
  - Patch punycode for mtl >= 2.3.

- //users/Profpatsch:

  - Clean up some warnings, mostly about unused dependencies
  - my-prelude: Fix build with ghc-boot-9.6.4
  - cas-serve: Use crypton over unmaintained cryptonite
  - ical-smolify: skip in ci, iCalendar would require heavy patching to
    work with Stackage LTS 22.

- //users/{wpcarro,aspen,flokli}:

  Disable home-manager / nixos configuration builds that seem to have
  transient failures that should disappear as we move away from
  staging-next and closer to an actual channel release.

Change-Id: I5cca48e101041c3aedc1d9932dbca2cac885fcc1
Reviewed-on: https://cl.tvl.fyi/c/depot/+/11289
Tested-by: BuildkiteCI
Autosubmit: sterni <sternenseemann@systemli.org>
Reviewed-by: sterni <sternenseemann@systemli.org>
Reviewed-by: tazjin <tazjin@tvl.su>
2024-03-31 22:27:04 +00:00
Profpatsch
278f56d95b feat(users/Profpatsch/whatcd-resolver): factor out handlers
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-24 15:17:06 +00:00
Profpatsch
eeb5e7abd6 feat(users/Profpatsch/whatcd-resolver): trace http requests
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 19:51:59 +00:00
Profpatsch
0b78998509 feat(users/Profpatsch/MyPrelude): add Pretty module
Change-Id: Id774963178ba358447699d0297a6a1fbef5ac8fe
Reviewed-on: https://cl.tvl.fyi/c/depot/+/11240
Autosubmit: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2024-03-23 19:51:59 +00:00
Profpatsch
1ae5e20c98 chore(users/Profpatsch/whatcd-resolver): JsonLd module
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 05:48:47 +00:00
Profpatsch
c2856dc2cd chore(users/Profpatsch/whatcd-resolver): Transmission & Redacted
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-23 05:27:30 +00:00
Profpatsch
32c5674962 feat(users/Profpatsch/whatcd-resolver): render anon json+ld objs
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 01:36:56 +00:00
Profpatsch
3b9fb1aa60 feat(users/Profpatsch/whatcd-resolver): add autorefresh
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-17 01:36:56 +00:00
Profpatsch
efa5fe1239 feat(users/Profpatsch/whatcd-resolver): add services & readme
Gives a story for running both jaeger and the reverse proxy, and the
program proper.

`postgres` is still run from the client.

Adds a little readme.

Change-Id: I11185028541c0214e152fd76c9c72b7e2eb11122
Reviewed-on: https://cl.tvl.fyi/c/depot/+/11171
Tested-by: BuildkiteCI
Autosubmit: Profpatsch <mail@profpatsch.de>
Reviewed-by: Profpatsch <mail@profpatsch.de>
2024-03-17 01:21:14 +00:00
Profpatsch
8ca42dc0cd feat(users/Profpatsch): add nix-run, nix-run-bin, nix-eval
Change-Id: I76f6fa4866c5792c4b9babe2c3a16401162ad833
Reviewed-on: https://cl.tvl.fyi/c/depot/+/11170
Autosubmit: Profpatsch <mail@profpatsch.de>
Reviewed-by: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
2024-03-17 01:21:14 +00:00
Profpatsch
11a2098e0b feat(users/Profpatsch/my-prelude): update libraries
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 22:36:55 +00:00
Profpatsch
8335076173 feat(users/Profpatsch): add shortcuttable
Initial mockup for a tool which restarts its subprocess on SIGHUP, and
stops everything on SIGTERM and SIGINT.

Change-Id: Ie5260d73c2663d1821eb6623e2bc61d16f6c92cd
Reviewed-on: https://cl.tvl.fyi/c/depot/+/11168
Autosubmit: Profpatsch <mail@profpatsch.de>
Reviewed-by: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
2024-03-16 22:36:55 +00:00
Profpatsch
16461c4100 feat(users/Profpatsch/execline): add setsid
Small wrapper around `setsid(2)` that does not exist in the
execline-style tooling.

Is probably gonna fail iff our process is a session leader already,
but I haven’t tried that out yet.

Change-Id: I1a820f1c6d65ddc29c30995bfd56a760a9d6b341
Reviewed-on: https://cl.tvl.fyi/c/depot/+/11167
Tested-by: BuildkiteCI
Autosubmit: Profpatsch <mail@profpatsch.de>
Reviewed-by: Profpatsch <mail@profpatsch.de>
2024-03-16 22:36:55 +00:00
Profpatsch
981c7fef0e feat(users/Profpatsch/whatcd-resolver): log json+ld fetching
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 22:36:55 +00:00
Profpatsch
0b06dda9a6 refactor(users/Profpatsch/whatcd-resolver): move AppT & Html out
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 22:36:55 +00:00
Profpatsch
803d726ed5 chore(users/Profpatsch): remove more really dumb hlints
Change-Id: Id7ca7e5716aba619bfe178c5c0831f2aa16c0257
Reviewed-on: https://cl.tvl.fyi/c/depot/+/11163
Autosubmit: Profpatsch <mail@profpatsch.de>
Reviewed-by: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
2024-03-16 22:36:55 +00:00
Profpatsch
7e63addad3 chore(third_party/haskell): pa-label: 0.1.0.1 -> 0.1.1.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-16 22:36:55 +00:00
Profpatsch
0e0f69881c chore(users/Profpatsch): fix cabal.project & hie.yaml
Change-Id: I39bebe6ce2bde85d26a68b017c0e6d872e9b9705
Reviewed-on: https://cl.tvl.fyi/c/depot/+/11161
Reviewed-by: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
Autosubmit: Profpatsch <mail@profpatsch.de>
2024-03-16 12:42:21 +00:00
Profpatsch
28a83478bc fix(users/Profpatsch/httzip): fix PATH
Change-Id: I6f27a947fe609f7d6ce004ce5aaae76b32dbe4fc
Reviewed-on: https://cl.tvl.fyi/c/depot/+/11160
Reviewed-by: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
Autosubmit: Profpatsch <mail@profpatsch.de>
2024-03-16 12:42:16 +00:00
Profpatsch
9a7246ea1d chore(users/Profpatsch/whatcd-resolver): slight changes
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>
2024-03-03 13:31:27 +00:00
Profpatsch
de5790aba8 feat(users/Profpatsch/ytextr): allow extra arguments
Change-Id: Icf246cfb31592afa0a8ada3e0e897f78202d44e2
Reviewed-on: https://cl.tvl.fyi/c/depot/+/11088
Autosubmit: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2024-03-03 13:30:51 +00:00
Profpatsch
7c2bdf84b9 fix(users/Profpatsch/whatcd-resolver): pin to postgres 14
I haven’t thought about how to migrate this when the postgres version
changes, so for now we just pin to 14 and worry about it when we reach
EOL lol

Change-Id: Ib72ec7835c660db636a95fb5af8c9ce40897b1ce
Reviewed-on: https://cl.tvl.fyi/c/depot/+/11085
Tested-by: BuildkiteCI
Autosubmit: Profpatsch <mail@profpatsch.de>
Reviewed-by: Profpatsch <mail@profpatsch.de>
2024-03-03 13:30:51 +00:00
Profpatsch
c869f9627e chore(users/Profpatsch): misc small improvements
Change-Id: I8fc128391196da22f03bac76a6c621f2cee73334
Reviewed-on: https://cl.tvl.fyi/c/depot/+/11084
Autosubmit: Profpatsch <mail@profpatsch.de>
Reviewed-by: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
2024-03-03 13:25:10 +00:00
Profpatsch
5a086020cb fix(users/Profpatsch/nix-home): fix alacritty config
they switched to TOML & I had a typo in `scolling`

Change-Id: If68408162e7772fbd3b06944ffd9d51dd2134efa
Reviewed-on: https://cl.tvl.fyi/c/depot/+/11083
Autosubmit: Profpatsch <mail@profpatsch.de>
Reviewed-by: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
2024-03-03 13:25:10 +00:00
Profpatsch
80c683c9ec feat(declib): initial mastodon bot experiment
No default.nix yet, just for development.

Change-Id: Ib8bd0057d697fecd083d5961e635c770b7638e08
Reviewed-on: https://cl.tvl.fyi/c/depot/+/10803
Reviewed-by: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
2024-02-11 16:38:16 +00:00
Profpatsch
d2e3f8cd7b feat(users/Profpatsch/blog): Private Trackers Are Markets
https://profpatsch.de/notes/private-trackers-are-markets

Change-Id: Ie2d83c426dbd021202c95c4935cbf70b51ef90fc
Reviewed-on: https://cl.tvl.fyi/c/depot/+/10614
Tested-by: BuildkiteCI
Autosubmit: Profpatsch <mail@profpatsch.de>
Reviewed-by: Profpatsch <mail@profpatsch.de>
2024-02-11 16:38:16 +00:00
Profpatsch
23dae8ebc5 feat(users/Profpatsch/aliases): bell.
bell.

Change-Id: If9385d0dfbdd3eda9a2cad6b1cabb3d938987195
Reviewed-on: https://cl.tvl.fyi/c/depot/+/10206
Autosubmit: Profpatsch <mail@profpatsch.de>
Reviewed-by: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
2023-12-06 19:15:15 +00:00
Profpatsch
23c811a2a0 fix(users/Profpatsch/openlab-tools): fix cache again
And of course I managed to move the cache creation into the handlers,
instead of doing it before starting the webserver.

And now I managed to create a hopeless mess of callbacks, but oh well.

Change-Id: I73c3aeced71923c7372496286a279e326b20c388
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9813
Reviewed-by: Profpatsch <mail@profpatsch.de>
Autosubmit: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
2023-10-20 21:55:21 +00:00
Profpatsch
3b882d7510 feat(users/Profpatsch/openlab-tools): introduce handler abstraction
I’ve been wanting to experiment with this stuff for a while,
abstracting away a handler type.

The existentials for parser and body took a bit of mucking about, but
in the end hiding the variable behind a `Body` constructor did the
trick.

Now every handler has its own cache, which means we can start caching
arbitrary results.

Change-Id: If57230c47f97ef4c548683f2c2f27660817a31f2
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9812
Autosubmit: Profpatsch <mail@profpatsch.de>
Reviewed-by: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
2023-10-20 21:14:14 +00:00
Profpatsch
7ec7f92812 fix(users/Profpatsch/openlab-tools): return 304 iff cache is same
Now this is getting cool. After 5 minutes we will ask the backend
again (which takes like 3 seconds), but then we compare the old cached
result with the new result and only send it back to the client iff it
changed.

So the client will still have to wait for the roundtrip time, but
doesn’t have to pay for the content. Plus, it gets some info that
upstream hasn’t been updated.

Change-Id: I6dba40321949da5da6a16b2e799d939573c77ba7
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9811
Autosubmit: Profpatsch <mail@profpatsch.de>
Reviewed-by: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
2023-10-20 18:36:46 +00:00
Profpatsch
e5a44334fe fix(users/Profpatsch/openlab-tools): add cache headers
This is a dumb experiment to see how hard it is to respect cache
headers; turns out, medium hard but doable.

Sets the correct expiry time according to the cache, plus respects
`If-Modified-Since` which is a tiny bit harder.

Change-Id: I9e6166af0fa254df2beb0f3919187b91a407487b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9810
Autosubmit: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2023-10-20 18:19:43 +00:00
Profpatsch
61ca9c3d78 fix(users/Profpatsch/openlab-tools): add source to table
Change-Id: Ia272460d098d2b25d3890853a3cd8e29ffb31545
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9809
Autosubmit: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2023-10-20 15:11:11 +00:00
Profpatsch
640f6fdfe4 fix(users/Profpatsch/openlab-tools): really deepseq cache content
Okay, so I guess you also have to seq the cache and everything in
between the IORef and the data.

Change-Id: I4c79c99afbd09e83e9d7a01d58b31b36862e4d11
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9807
Reviewed-by: Profpatsch <mail@profpatsch.de>
Autosubmit: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
2023-10-20 12:16:42 +00:00
Profpatsch
3dba987de4 fix(users/Profpatsch/openlab-tools): deepseq cache content
Otherwise the table might potentially hold onto data from the website
request, it’s hard to say.

Change-Id: I786478bd1ce2d9775b3d0b57565d79666ef8a96f
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9806
Autosubmit: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2023-10-20 12:02:39 +00:00
Profpatsch
c2893a5c77 feat(users/Profpatsch/openlab-tools): contact info
Change-Id: I51aeacbd553e56a69f9c9347296e758418325b20
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9805
Autosubmit: Profpatsch <mail@profpatsch.de>
Reviewed-by: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
2023-10-20 11:48:36 +00:00
Profpatsch
17d0cc0473 feat(users/Profpatsch/openlab-tools): main page
Change-Id: I3e8b7ed9993268fab49050fb6894e3cc21e4a318
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9804
Autosubmit: Profpatsch <mail@profpatsch.de>
Reviewed-by: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
2023-10-20 11:43:35 +00:00
Profpatsch
efbffcd12d feat(users/Profpatsch): init openlab-tools
Back at my bullshit.

Mostly copied the setup from whatcd-resolver.

Change-Id: I9edd4387ee73c18816b1692d5338735536cce70f
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9803
Reviewed-by: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
Autosubmit: Profpatsch <mail@profpatsch.de>
2023-10-19 20:59:12 +00:00
Profpatsch
7129749968 feat(users/Profpatsch/whatcd-resolver): also link json ld fields
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 23:05:28 +00:00
Profpatsch
81b790af1d feat(users/Profpatsch/whatcd-resolver): start checking musicbrainz
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 22:57:25 +00:00
Profpatsch
df43454dc5 refactor(users/Profpatsch/jbovlaste): factor Parse into own module
We want to use this quite generic parser type for other things as
well.

Change-Id: I890b43c58e479bdf2d179a724280ef1d8748fafa
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9742
Autosubmit: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2023-10-15 22:57:25 +00:00
Profpatsch
0a98f8ec3b chore(third_party/haskell): update pa packages
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-15 18:58:41 +00:00
Profpatsch
8e811fe625 feat(users/Profpatsch/whatcd-resolver): more otel traces
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-14 18:01:11 +00:00
Vincent Ambo
47bc5bb4bc chore(3p/sources): bump channels & overlays (2023-10-08)
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-10-09 09:09:10 +00:00
Profpatsch
acfc49efc2 feat(users/Profpatsch/MonadPostgres): trace db queries
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 17:25:26 +00:00
Profpatsch
0dcc72a31c feat(users/Profpatsch/whatcd-resolver): add basic otel tracing
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 17:25:26 +00:00
Profpatsch
cd47d188ae feat(users/Profpatsch): dockerize a jaeger release
This is horrible, but I don’t think there’s a more pragmatic way to
set this up right now.

Change-Id: I166550292b4eb979864f7d69ea56a2827bbf21bd
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9487
Tested-by: BuildkiteCI
Autosubmit: Profpatsch <mail@profpatsch.de>
Reviewed-by: Profpatsch <mail@profpatsch.de>
2023-09-29 17:11:21 +00:00
Profpatsch
3863a2ebd6 refactor(users/Profpatsch/whatcd-resolver): more efficient inserts
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 17:11:20 +00:00
Profpatsch
6c360f2b64 refactor(users/Profpatsch/whatcd-resolver): naive combined insert
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 17:11:20 +00:00
Profpatsch
7bc739ec5f refactor(users/Profpatsch/whatcd-resolver): move inserts out
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 17:08:16 +00:00
Profpatsch
7157e2baed refactor(users/Profpatsch/whatcd-resolver): prepare to split IO
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-29 17:08:15 +00:00
Profpatsch
3de9601764 feat(users/Profpatsch/whatcd-resolver): add executable
Change-Id: I28f5c26443b9a878f8f374af2c7935831d17ab12
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9355
Tested-by: BuildkiteCI
Autosubmit: Profpatsch <mail@profpatsch.de>
Reviewed-by: Profpatsch <mail@profpatsch.de>
2023-09-17 18:05:42 +00:00
Profpatsch
07b0dff209 refactor(users/Profpatsch/whatcd-resolver): rename main function
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-17 18:05:42 +00:00
Profpatsch
d111a0fda8 feat(users/Profpatsch/whatcd-resolver): misc improvements
* 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 12:44:06 +00:00
Profpatsch
8cfe6bc99b feat(users/Profpatsch/whatcd-resolver): query all pages in search
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-09-15 12:34:04 +00:00
Profpatsch
88c3e2b4a0 chore(users/Profpatsch/htmx-experiment): move to Multipart2
We don’t strictly need servant-multipart, if all we need is to parse
some multipart forms. This removes some deps.

Change-Id: I218731fada056b9edfb3d01fc33880673d14473e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9187
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2023-08-31 17:50:28 +00:00
Profpatsch
081f6beb8d feat(users/Profpatsch): add my xmonad config
Change-Id: I41d7c3029990f5f1ae56a767331781b38e69997c
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9077
Autosubmit: Profpatsch <mail@profpatsch.de>
Reviewed-by: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
2023-08-13 14:41:41 +00:00
Profpatsch
33fa42a1a3 chore(users/Profpatsch): Update postgres module n stuff
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-08 20:03:22 +00:00
Profpatsch
8dac21b444 feat(users/Profpatsch/whatcd-resolver): Prefer remasters
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-07 14:03:01 +00:00
Profpatsch
3e5a2ea57f chore(users/Profpatsch): Move Multipart2 into new webstuff package
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 16:08:23 +00:00
Profpatsch
b41af857ae chore(users/Profpatsch/whatcd-resolver): build with nix
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-08-06 11:21:38 +00:00
Profpatsch
1fd59f5158 chore(users/Profpatsch): clean up haskell libs a little
Change-Id: Ia9a6c5a754ca8f2912308feb5a26f5276a08d24c
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9011
Reviewed-by: Profpatsch <mail@profpatsch.de>
Autosubmit: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
2023-08-06 11:17:36 +00:00
Profpatsch
ce4acc08a5 docs(users/Profpatsch/jbovlaste-sqlite): add parser docs
Change-Id: I62b6b9ee1ce5231e1d486db9f7e1e7b66408fca6
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9010
Reviewed-by: Profpatsch <mail@profpatsch.de>
Autosubmit: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
2023-08-06 11:17:36 +00:00
Profpatsch
57bab040ed chore(users/Profpatsch): move utils to my-prelude
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-16 20:15:49 +00:00
Profpatsch
c266f5133f feat(users/Profpatsch): init httzip
A streaming webserver which serves directories as .zip recursively.
Because everything sucks and this is the best way to get dirs
delivered to people.

Change-Id: I451885cfc5082db12ac32eb0a4bfb04bc983d3c2
Reviewed-on: https://cl.tvl.fyi/c/depot/+/8953
Reviewed-by: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
2023-07-14 08:03:14 +00:00
Profpatsch
b4cfddfc80 fix(netencode/README): fix the example of ignored fields
Forgot this example when I changed the spec to ignore earlier
duplicated fields.

Change-Id: I9bc8d3e27201afd0d256aa4771b6420059fc68a7
Reviewed-on: https://cl.tvl.fyi/c/depot/+/8949
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
2023-07-14 08:03:14 +00:00
Profpatsch
43feacb64b feat(users/Profpatsch/whatcd-resolver): Show percent done
Change-Id: I6d7852570bdca807e4d4fff01d72de9f1084fd42
Reviewed-on: https://cl.tvl.fyi/c/depot/+/8910
Reviewed-by: Profpatsch <mail@profpatsch.de>
Tested-by: BuildkiteCI
2023-07-14 08:03:14 +00:00
Profpatsch
50c27b6ba1 feat(users/Profpatsch/whatcd-resolver): Somewhat fix torrent state
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 08:03:14 +00:00
Profpatsch
12d23b3e64 feat(users/Profpatsch/whatcd-resolver): Add torrent & basic status
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 08:03:14 +00:00