Commit graph

  • e1dd46c6f2 feat(mobile): first-launch tutorial (pages, features, long-presses, player gestures) goon-foss 2026-06-22 10:08:56 +02:00
  • 0f1f25393e feat(sources): 0-5★ ranking on Sites (freshness/metadata/plays) + playback telemetry goon-foss 2026-06-22 10:00:59 +02:00
  • 781a2adb80 feat(ingest): disable hqfap/4k69 (broken playback), latestpornvideo → browse goon-foss 2026-06-22 09:34:47 +02:00
  • 8c8a3d5823 feat(mobile): movies — performer filter + 3-column grid goon-foss 2026-06-21 23:21:22 +02:00
  • d07ded9fd7 fix(hqfap): reject 3MB video_down.mp4 stub (placeholder, not real video) goon-foss 2026-06-21 23:01:19 +02:00
  • e185b09e09 fix(mobile): double-tap seek no longer pops the center pause control goon-foss 2026-06-21 22:27:08 +02:00
  • 4aab1199da fix(movies): dedup playback sources by target (cross-mirror dupes) goon-foss 2026-06-21 22:26:50 +02:00
  • 6d1d9dbd46 feat(mobile): strip .com/.org clutter from site names goon-foss 2026-06-20 16:38:45 +02:00
  • ef3fa1e2ab feat(siska): convert to browse scraper, re-enable (search broken site-side) goon-foss 2026-06-20 16:25:11 +02:00
  • 2235111c50 investigate(siska): keep disabled — site search is broken (ignores query) goon-foss 2026-06-20 16:15:02 +02:00
  • acbc543e2f feat(mobile): Hidden content screen — blacklist tags/performers/studios goon-foss 2026-06-20 15:53:09 +02:00
  • a136159e64 fix(mobile): stop full scene-list refetch on back-navigation (perf) goon-foss 2026-06-20 14:14:07 +02:00
  • cf1575f51d fix(mobile): drop background ANR noise from Sentry (beforeSend) goon-foss 2026-06-19 20:07:32 +02:00
  • abfabb6792 feat(scheduler): periodic title+duration dedup (missing-merge tube dupes) goon-foss 2026-06-19 11:20:48 +02:00
  • 66c489d29c fix(ingest): race-safe scene_tags insert (ON CONFLICT) — GOON-M goon-foss 2026-06-19 11:09:06 +02:00
  • f3802ca5c6 fix(mobile): scene-list scroll perf + native phone-side fpoxxx resolver goon-foss 2026-06-19 11:02:21 +02:00
  • 7b37561c49 feat(scheduler): hetzner bandwidth monitor + search-tube watchdog coverage goon-foss 2026-06-18 09:18:59 +02:00
  • 289844ec5a fix(latestpornvideo): revive search via /actor/ listing + metadata goon-foss 2026-06-16 23:20:02 +02:00
  • ad77dc918e fix(mypornerleak): revive search via /actor/ listing + metadata goon-foss 2026-06-16 23:16:02 +02:00
  • 074db3bf49 fix(sxyland): revive search via /actor/ pages + rich metadata goon-foss 2026-06-16 23:11:44 +02:00
  • a769c83e81 fix(sxyprn): revive search via performer pages + rich metadata goon-foss 2026-06-16 22:58:52 +02:00
  • 66cd2e2cc4 feat(mobile): column toggle, duration filter, saved searches, screen protection (mobilism feedback) goon-foss 2026-06-16 13:52:27 +02:00
  • 84f0e91cba feat(api): per-device saved searches (keyword favorites) goon-foss 2026-06-16 13:52:18 +02:00
  • b08dc03bb9 feat(scheduler): per-origin ingest freshness watchdog -> Sentry goon-foss 2026-06-15 10:26:25 +02:00
  • 33e8581b9f fix(scrapers): freshporno browse from /latest-updates/ not homepage root goon-foss 2026-06-15 09:59:40 +02:00
  • b430811b93 fix(mobile): capture site/origin text params in bug-report auto-context goon-foss 2026-06-15 09:35:49 +02:00
  • 13ba1632c5 feat(scheduler): periodic thumb-asset dedup (hdporn.gg/fullmovies.xxx) goon-foss 2026-06-14 14:56:45 +02:00
  • 9259fb2c9c feat(scripts): merge tube dupes by thumbnail asset-id (hdporn.gg/fullmovies.xxx family) goon-foss 2026-06-14 14:18:44 +02:00
  • 0fae99f67c fix(mobile): show Refresh thumbnail when the hero image actually fails to load goon-foss 2026-06-14 14:18:44 +02:00
  • 0797fc41a2 fix(extractors): 4k69 direct okcdn extraction (replaces WebView fallback) goon-foss 2026-06-14 11:39:36 +02:00
  • 1c021daf33 feat(mobile): auto-accept age-gate modal in WebView fallback goon-foss 2026-06-14 11:31:12 +02:00
  • 5d359cd319 fix(mobile): show Refresh thumbnail only when preview missing or broken goon-foss 2026-06-14 11:17:18 +02:00
  • 14f0f1936c fix(extractors): route 4k69 to WebView fallback after player migration goon-foss 2026-06-14 11:17:18 +02:00
  • 5bac6d9c16 feat(mobile): source-code link in Settings + Refresh thumbnail button goon-foss 2026-06-13 19:04:11 +02:00
  • 97efd37936 feat(scenes): force-refresh thumbnail via enrich-thumbnail ?force goon-foss 2026-06-13 19:04:10 +02:00
  • de4b609e07 feat(extractors): detect deleted porntrex videos and mark dead goon-foss 2026-06-13 19:04:10 +02:00
  • f1f7a8a8c8 fix(ingest): cap code/director to column length (GOON-J) goon-foss 2026-06-13 19:04:10 +02:00
  • dbeef3deb1 fix(mobile): remount Favorites lists on numColumns change (GOON-11) goon-foss 2026-06-12 16:19:19 +02:00
  • c3ed0245e4 feat(mobile): "What's new" popup after OTA updates goon-foss 2026-06-12 11:41:54 +02:00
  • f1c1e60007 feat(mobile): "Your messages" inbox on bug FAB + geo-block playback hint goon-foss 2026-06-12 11:35:44 +02:00
  • c43c305941 feat(bug-reports): two-way replies (device-scoped) + admin reply endpoint goon-foss 2026-06-12 11:35:44 +02:00
  • 05f7cee92d feat(mobile): Favorites "Scenes" tab to view saved scenes goon-foss 2026-06-12 10:06:12 +02:00
  • 3c9806808a fix(ingest): strip NUL bytes from raw payloads before Postgres write goon-foss 2026-06-11 19:48:22 +02:00
  • 1b8ff0197b feat(mobile): phone-side resolvers for IP-bound tubes (sxyprn, eporner, voe) goon-foss 2026-06-11 16:14:25 +02:00
  • 19c4b46021 feat(playback): direct-HLS manifest passthrough + proxy stream drop handling goon-foss 2026-06-11 16:14:25 +02:00
  • 0419286647 chore: gitignore marketing-shots/ and one-off _*.py scripts goon-foss 2026-06-10 19:28:22 +02:00
  • 16083c149b feat(sxyprn): mark dead posts during thumbnail refresh sweep goon-foss 2026-06-10 19:20:28 +02:00
  • 1d4d6fd09c docs: correct Bright Data proxy type (ISP, flat-rate not per-GB) goon-foss 2026-06-10 19:18:40 +02:00
  • 4919802e91 feat(superporn): browse scraper via Bright Data residential proxy goon-foss 2026-06-10 18:47:45 +02:00
  • 35c052cd58 feat(tubes): add 4k69 + neporn browse scrapers, shared PlayTube base goon-foss 2026-06-10 18:15:13 +02:00
  • a919514fd0 feat(hqfap): browse scraper + native mp4 extractor (~120k scenes) goon-foss 2026-06-10 17:51:04 +02:00
  • 6e1f8fdc47 feat(sxyprn): on-demand thumbnail resolver (live posters, ~1h-TTL workaround) goon-foss 2026-06-10 15:02:49 +02:00
  • 53778a248e fix(sxyprn): disable thumbnail refresh job — trafficdeposit token has ~1h TTL goon-foss 2026-06-10 14:29:24 +02:00
  • e702e1893a feat(sxyprn): refresh rotting thumbnails from live post pages + scheduled job goon-foss 2026-06-10 10:36:30 +02:00
  • 751ca79e07 fix(resolver): refresh thumbnails on re-scrape instead of fill-only-if-null goon-foss 2026-06-10 10:28:18 +02:00
  • 864376c58b fix(mobile): English long-press action labels + clean thumb error placeholder goon-foss 2026-06-10 10:11:10 +02:00
  • 7b5bd5e4e0 fix(api): de-prioritize rotting sxyprn/trafficdeposit thumbnails goon-foss 2026-06-10 10:11:10 +02:00
  • 8306b8e997 feat(mobile): send X-Device-Id, one-time adopt-legacy goon-foss 2026-06-10 08:58:02 +02:00
  • fe842b3603 feat(api): device-scope user state (favorites/progress/blacklists) goon-foss 2026-06-10 08:58:01 +02:00
  • 06c6dfbf24 feat(mobile): tile long-press actions (hide / mark-duplicate), drop dead preview goon-foss 2026-06-09 09:52:15 +02:00
  • e5dabd13ef chore(api): drop unused has_animated_thumbnail scene filter goon-foss 2026-06-09 09:52:15 +02:00
  • 62d6878359 feat(api): scene hide + merge-duplicate endpoints for long-press actions goon-foss 2026-06-09 09:47:16 +02:00
  • cd0f618693 fix(proxy): stable image-proxy URLs so expo-image actually caches thumbnails goon-foss 2026-06-09 09:45:22 +02:00
  • 33694fd42f feat(extractors): native HLS for xhamster; hqporner flyflv player goon-foss 2026-06-09 09:35:58 +02:00
  • 7222f3dcf9 fix(performer): tag chips → in-place horizontal filter selector goon-foss 2026-06-09 09:25:02 +02:00
  • 0d8df20951 fix(scripts): force UTF-8 stdout in publish_update — stop false exit-1 goon-foss 2026-06-08 11:58:43 +02:00
  • 99e9dae4d1 feat(performer): replace dev Re-scrape button with top-tag chips goon-foss 2026-06-08 11:56:26 +02:00
  • c6a133ba19 fix(api): collapse same-origin playback sources on scene detail goon-foss 2026-06-08 11:50:45 +02:00
  • 992635668a fix(extractors): route sxylandcom through _embed_iframe, not webview fallback goon-foss 2026-06-08 11:41:38 +02:00
  • 959d0a154e feat(scripts): merge_exact_title_duration --playback-only + progress logging goon-foss 2026-06-08 11:02:19 +02:00
  • 90336de1ae fix(merge): move playback_sources on scene merge + exact-title+duration dedup goon-foss 2026-06-08 10:56:50 +02:00
  • 49ebba2aa8 fix(mobile): movie part picker as scrollable modal — Android showed only 3 of N goon-foss 2026-06-08 10:25:03 +02:00
  • fbecd4cd50 fix(mobile): removeClippedSubviews=false on grids — stop thumbnails vanishing on scroll goon-foss 2026-06-08 10:18:48 +02:00
  • 4c483c282a fix(scripts): backfill arg parser consumed --workers value as LIMIT goon-foss 2026-06-08 10:15:09 +02:00
  • e50e0c5886 fix(xvideos): parse model name from nested span.name — recover 0-performer scenes goon-foss 2026-06-08 10:13:21 +02:00
  • 53a486504c fix(mobile): boot diagnostic as breadcrumb, not event — silence GOON-Q noise goon-foss 2026-06-08 10:04:21 +02:00
  • 862b2be68e fix(dedup): tighten cross-source candidate prefilter — kill 1800s hang (GOON-V) goon-foss 2026-06-08 10:03:33 +02:00
  • 606a483893 fix(hqporner): require ALL query tokens in slug — stop performer over-attribution goon-foss 2026-06-08 09:28:18 +02:00
  • 1d8ede6201 fix(player): drop "Tap for sound" pill — speaker toggle is enough goon-foss 2026-06-08 09:20:42 +02:00
  • 4078f7185d migration(0021): raise scene_tags.tag_id statistics target to 1000 goon-foss 2026-06-07 21:12:22 +02:00
  • 1a4e1c17ca perf(scenes): literal tag_id in filter — 4-12s tag lists -> ~20ms goon-foss 2026-06-07 21:10:31 +02:00
  • 5d1f665b80 perf(scenes): light list payload — drop tags/refs, slim playback to thumbnail goon-foss 2026-06-07 21:03:26 +02:00
  • c940cce8d1 feat(scripts): dedup_n2_canonical — resolve n=2 false-merges via canonical duration goon-foss 2026-06-07 20:25:10 +02:00
  • b0de2c3d1b feat(dedup): merge exact-phash + same-duration + shared-performer duplicates goon-foss 2026-06-07 20:08:06 +02:00
  • 2a56122355 feat(scripts): audit_teaser_only — hide scenes whose only source is a teaser goon-foss 2026-06-07 19:52:44 +02:00
  • d538853ecc fix(mobile/api): handle 204 in request() — "Mark as invalid" false failure goon-foss 2026-06-07 19:24:29 +02:00
  • d146303434 refactor(ingest): rename scraper Source name "pornapp" -> "tube-scraper" goon-foss 2026-06-07 16:54:55 +02:00
  • fa0f467866 fix(playback): recognize luluvids.top/cdnstream/cdnvids as P.A.C.K.E.R. hosters goon-foss 2026-06-07 16:23:22 +02:00
  • 2dcc470f4d feat(playback): native pornxp.ph via phone-side resolver (kills black screen) goon-foss 2026-06-07 14:58:40 +02:00
  • 4d2e46000b fix(playback): mark deleted sxyprn posts dead + rank native sources first goon-foss 2026-06-07 14:09:01 +02:00
  • 0cedd513f9 feat(player): start muted, unmute via button (autoplay-friendly) goon-foss 2026-06-07 14:03:52 +02:00
  • 9e317c1d34 fix(scheduler): bulk_dedup performers cross_source_only + hard-timeout (OOM) goon-foss 2026-06-07 11:00:19 +02:00
  • 2595a73796 fix(tags): merge <base>2 numbered-duplicate tags + prevent regeneration goon-foss 2026-06-06 23:18:44 +02:00
  • 014f487bde fix(db): set shm_size 1g — parallel queries overflow default 64MB /dev/shm goon-foss 2026-06-06 22:56:49 +02:00
  • 98531caf14 feat(scrapers): extract tags + description from porndish scene pages goon-foss 2026-06-06 21:32:10 +02:00
  • 3928301f04 fix(playback): retry DoodStream/playmogo resolve, handle "RELOAD" token response goon-foss 2026-06-06 21:14:26 +02:00
  • 9d7e0eca94 perf(movies+scenes): direct-play #hash movie hosters; skip empty blacklist filters goon-foss 2026-06-06 19:44:41 +02:00
  • 18bd635dfa mobile: page-side get_file resolve for hdporngg/fullmovies (native, no proxy/flicker) goon-foss 2026-06-06 00:16:19 +02:00
  • dca47e9d11 mobile: resolve get_file redirect client-side (kills hdporngg flicker) goon-foss 2026-06-05 23:49:40 +02:00
  • eeb8b69e84 fix(hdporngg+fullmovies): native get_file, skip broken 4K — "loading forever" goon-foss 2026-06-05 22:48:55 +02:00