about summary refs log tree commit diff
path: root/users/Profpatsch
AgeCommit message (Collapse)AuthorFilesLines
2024-03-16 r/7708 refactor(users/Profpatsch/whatcd-resolver): move AppT & Html outProfpatsch5-172/+212
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/7707 chore(users/Profpatsch): remove more really dumb hlintsProfpatsch1-0/+2
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 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-16 r/7703 chore(users/Profpatsch): fix cabal.project & hie.yamlProfpatsch2-6/+0
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 r/7702 fix(users/Profpatsch/httzip): fix PATHProfpatsch1-2/+2
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-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>
2024-03-03 r/7638 feat(users/Profpatsch/ytextr): allow extra argumentsProfpatsch1-2/+2
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 r/7637 fix(users/Profpatsch/whatcd-resolver): pin to postgres 14Profpatsch2-2/+4
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 r/7636 chore(users/Profpatsch): misc small improvementsProfpatsch3-38/+8
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 r/7635 fix(users/Profpatsch/nix-home): fix alacritty configProfpatsch1-6/+2
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-02-11 r/7499 feat(declib): initial mastodon bot experimentProfpatsch12-3/+383
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 r/7498 feat(users/Profpatsch/blog): Private Trackers Are MarketsProfpatsch2-0/+55
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>
2023-12-06 r/7124 feat(users/Profpatsch/aliases): bell.Profpatsch1-0/+13
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-10-20 r/6867 fix(users/Profpatsch/openlab-tools): fix cache againProfpatsch1-100/+114
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 r/6866 feat(users/Profpatsch/openlab-tools): introduce handler abstractionProfpatsch1-33/+97
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 r/6865 fix(users/Profpatsch/openlab-tools): return 304 iff cache is sameProfpatsch1-6/+14
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 r/6864 fix(users/Profpatsch/openlab-tools): add cache headersProfpatsch5-33/+118
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 r/6863 fix(users/Profpatsch/openlab-tools): add source to tableProfpatsch1-9/+24
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 r/6862 fix(users/Profpatsch/openlab-tools): really deepseq cache contentProfpatsch1-5/+5
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 r/6861 fix(users/Profpatsch/openlab-tools): deepseq cache contentProfpatsch3-3/+9
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 r/6860 feat(users/Profpatsch/openlab-tools): contact infoProfpatsch1-0/+2
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 r/6859 feat(users/Profpatsch/openlab-tools): main pageProfpatsch3-10/+78
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-19 r/6858 feat(users/Profpatsch): init openlab-toolsProfpatsch4-0/+484
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-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 musicbrainzProfpatsch3-22/+232
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/6818 refactor(users/Profpatsch/jbovlaste): factor Parse into own moduleProfpatsch7-167/+176
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 r/6816 chore(third_party/haskell): update pa packagesProfpatsch2-8/+7
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 tracesProfpatsch3-117/+273
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 Ambo4-0/+5
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 queriesProfpatsch4-94/+93
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 tracingProfpatsch4-5/+55
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/6672 feat(users/Profpatsch): dockerize a jaeger releaseProfpatsch1-0/+46
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 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/6605 feat(users/Profpatsch/whatcd-resolver): add executableProfpatsch3-1/+37
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 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-31 r/6539 chore(users/Profpatsch/htmx-experiment): move to Multipart2Profpatsch5-304/+13
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-13 r/6481 feat(users/Profpatsch): add my xmonad configProfpatsch6-0/+221
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-08 r/6471 chore(users/Profpatsch): Update postgres module n stuffProfpatsch7-197/+443
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 packageProfpatsch7-2/+104
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 nixProfpatsch3-2/+51
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 r/6464 chore(users/Profpatsch): clean up haskell libs a littleProfpatsch12-336/+123
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 r/6463 docs(users/Profpatsch/jbovlaste-sqlite): add parser docsProfpatsch1-1/+14
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-07-16 r/6429 chore(users/Profpatsch): move utils to my-preludeProfpatsch12-61/+111
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/6425 feat(users/Profpatsch): init httzipProfpatsch6-0/+184
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