Commit graph

97 commits

Author SHA1 Message Date
WebStreamr
fe5b3af887
chore(fetcher): allow to customize minimum cache ttl 2025-08-15 08:54:14 +00:00
WebStreamr
2a5284d555
refactor(fetcher): sort custom request init props 2025-08-15 08:50:38 +00:00
WebStreamr
a12ae7aaa5
chore(fetcher): retry 5xx errors up to 3 times 2025-08-13 10:49:36 +00:00
WebStreamr
e28de7d4d9
revert: "fix(fetcher): remove weird proxy headers in request"
This reverts commit ee09e10e6e.
2025-08-12 15:15:03 +00:00
WebStreamr
9a019396c8
fix(fetcher): simplify header and ttl determination, fix edge case bug 2025-08-11 15:47:04 +00:00
WebStreamr
ee09e10e6e
fix(fetcher): remove weird proxy headers in request
looks like this is finally causing weird issues and leading to some
Cloudflare blocks. we might be better of without it, let's try..
2025-08-11 12:09:46 +00:00
WebStreamr
0efdfa4a6f
fix(fetcher): better detect inline Cloudflare Turnstile 2025-08-11 11:40:58 +00:00
WebStreamr
7d700103c4
chore(fetcher): decrease default timeout back to 10s 2025-08-11 08:38:56 +00:00
WebStreamr
78ced84774
chore(fetcher): block a host temporarily after 30 times timing out instead of 10 2025-08-08 08:27:40 +00:00
WebStreamr
009bb930b5
chore(fetcher): increase default timeout to 15s
in most of the cases we're still very fast anyway
but in some of the small cases let's avoid timeout blocks by waiting
longer
2025-08-05 10:01:30 +00:00
WebStreamr
51b9104f07
chore: handle cloudflare 451 censor block, show block reasons 2025-07-21 19:35:52 +00:00
WebStreamr
674eb7ca6d
fix(fetcher): support Basic Auth 2025-07-20 18:44:37 +00:00
WebStreamr
de8e0bdd94
fix: do not use cache and proxy headers for health requests 2025-07-18 09:23:45 +00:00
WebStreamr
8f7039bbb3
feat(source): add PrimeWire 2025-07-15 21:46:54 +00:00
WebStreamr
e03621db0b
fix(fetcher): import correct Headers 2025-07-15 20:08:45 +00:00
WebStreamr
2c210941aa
refactor(fetcher): switch to undici fetch 2025-07-11 16:43:31 +00:00
WebStreamr
5c7b3fb7f2
refactor: more consistent import style 2025-07-02 09:28:10 +00:00
WebStreamr
acaa7221dd
chore(fetcher): use gzip to compress HTTP cache 2025-06-28 18:23:21 +00:00
WebStreamr
f5121bb1fb
chore(fetcher): use LRUCache for HTTP responses 2025-06-28 17:18:10 +00:00
WebStreamr
881fed53a4
chore(fetcher): configure max for all TTLCaches 2025-06-28 17:14:51 +00:00
WebStreamr
aee0fd8373
revert: Revert "fix(fetcher): remove 200 minimum cache"
This reverts commit 80e4f4edc4.
2025-06-27 19:18:56 +00:00
WebStreamr
80e4f4edc4
fix(fetcher): remove 200 minimum cache
causes problems with session-scoped responses which should not be cached
2025-06-25 20:05:31 +00:00
WebStreamr
e895077a7b
chore: handle invalid MediaFlow Proxy password better 2025-06-25 18:16:12 +00:00
WebStreamr
f90a53da68
feat(fetcher): add proxy support 2025-06-21 12:03:34 +00:00
WebStreamr
138e92afc5
chore: make ip in Context optional 2025-06-19 11:54:13 +00:00
WebStreamr
f7042b94ef
chore(fetcher): remember recent timeouts and throw if count is too high
This should avoid issues with longer outages of hosters like we had with
DoodStream now twice recently.
2025-06-17 19:09:22 +00:00
WebStreamr
e1f5192f4b
refactor: avoid leaking fetch internals by introducing TimeoutError 2025-06-17 15:42:47 +00:00
WebStreamr
d5ee89db9b
refactor(fetcher): use Semaphore with timeout for queuing 2025-06-16 09:03:35 +00:00
WebStreamr
2a8e67ca59
refactor(fetcher): introduce constants for defaults 2025-06-16 07:29:34 +00:00
WebStreamr
6cf31f60de
chore(fetcher): increase general timeouts 2025-06-15 11:34:09 +00:00
WebStreamr
6541782541
fix(fetcher): consider request body for cache key 2025-06-14 20:24:02 +00:00
WebStreamr
605e88fef4
chore: implement rate-limit detection 2025-06-14 19:51:00 +02:00
WebStreamr
f11c591dc5
chore: do not pass referer through context 2025-06-14 13:44:32 +02:00
WebStreamr
3a4ff73953
test: hand-rolled, explicit Fetcher mock 2025-06-13 21:53:11 +02:00
WebStreamr
4bc25692a8
refactor: use proper prototype class methods 2025-06-13 21:26:26 +02:00
WebStreamr
5aeab3fe23
chore(fetcher): decrease regular request timeout to 5s 2025-06-13 10:26:56 +00:00
WebStreamr
bdae1ff346
refactor: define member accessiblity explicitly 2025-06-13 09:42:06 +00:00
WebStreamr
b5067aa0a9
refactor: make BlockedReason an enum 2025-06-12 16:00:34 +00:00
WebStreamr
dd6d485340
feat(handler): add VidSrc with CloudStream Pro support 2025-06-11 20:46:28 +00:00
WebStreamr
d0efc0783f
fix(fetcher): correct noFlareSolverr logic 2025-06-11 20:41:11 +00:00
WebStreamr
16e1aab1c2
fix: avoid potential queuing dead lock 2025-06-09 20:42:10 +00:00
WebStreamr
1ca4ea4abe
chore(extractor): don't use FlareSolverr for external URLs 2025-06-09 11:36:17 +00:00
WebStreamr
114c383c54
chore(fetcher): only call FlareSolverr for known challenge blocks 2025-06-09 11:28:20 +00:00
WebStreamr
717c2afdc4
feat(handler): implement EN Soaper source 2025-06-07 19:24:50 +00:00
WebStreamr
876698825f
chore: add statusText to HttpError and show in result as well 2025-06-06 06:50:31 +00:00
WebStreamr
d8f0c4602c
chore: introduce HttpError and show status in result 2025-06-05 19:52:49 +00:00
WebStreamr
be3464369b
chore(fetcher): simplify queuing and allow parallel requests
instead of only one per host we allow 5, which is more realistic
2025-06-05 15:19:30 +00:00
WebStreamr
65d2d0ac83
chore(fetcher): enable keepalive 2025-06-05 10:30:30 +00:00
WebStreamr
63a53a18cc
refactor(fetcher): introduce CustomRequestInit 2025-06-05 10:30:30 +00:00
WebStreamr
092ee4bfc2
refactor(fetcher): add full FlareSolverrResult type 2025-06-05 10:30:30 +00:00