Contributions to merlib-mirror

Pulled 2026-06-01 from https://github.com/esaruoho/merlib-mirror and the local clone at /Users/esaruoho/work/merlib-mirror.

Summary

Merged pull requests

#DateTitle
#472026-05-26mirror: samlib.ru
#462026-05-15mirror: www.gyroscopes.org
#442026-05-08mirror: punainen.org
#432026-05-08mirror: energyscience.co.uk
#422026-04-30mirror: vacuum-energy.com
#412026-04-29mirror: villesresearch.com
#402026-04-22mirror: tesla.hu
#392026-04-21mirror: magnetricity.com (supersedes #27)
#382026-04-21fix: wayback scoped CDX + alt-timestamp retry (from pharis/villes lessons)
#372026-04-21mirror: villesresearch.com (supersedes #24)
#362026-04-21mirror: pharis (infohost.nmt.edu/~pharis) — Dean Pharis Dynamic Theory
#342026-04-21mirror: infohost.nmt.edu
#322026-04-21mirror: theverylastpageoftheinternet.com
#312026-04-20mirror: elmer.unibas.ch
#282026-04-19mirror: jvmoloney.com
#252026-04-01mirror: johnbedini.net
#232026-03-30mirror: www.vortex-world.org
#222026-03-28Clean up ifi.unicamp.br mirror (remove failed stub, update metadata)
#212026-03-28mirror: evert.de
#182026-03-20mirror: torkado.de
#162026-03-20mirror: ifi.unicamp.br/~assis
#152026-03-20Fix discord grabber junk images
#142026-03-17Mirror 1998 Riess Institute website (riess.org)
#132026-03-16mirror: riess.org
#82026-03-09transcripts: GEET Plasma Reactor (Paul Pantone)
#72026-03-09mirror: GEET Plasma Reactor archive (Paul Pantone)
#42026-03-07mirror: matpitka.blogspot.com
#22026-03-05mirror: amasci.com

Closed pull requests (proposed, not merged)

#DateTitle
#452026-05-13mirror: www.ihu-usa.org
#352026-04-21mirror: infohost.nmt.edu
#332026-04-21mirror: meyl.eu
#302026-04-20mirror: meyl.eu
#292026-04-20mirror: theverylastpageoftheinternet.com
#272026-04-14mirror: magnetricity.com
#262026-04-02mirror: wikischool.org
#242026-03-31mirror: villesresearch.com
#202026-03-26mirror: weathercreation.com
#192026-03-21mirror: library.radioionics.com
#172026-03-20mirror: ifi.unicamp.br
#122026-03-09mirror: gdrive-1hdotp8BxRy6NI4AvMzqMc9uCyN9-W-J8
#112026-03-09mirror: ifi.unicamp.br
#102026-03-09mirror: tom-c-1
#92026-03-09mirror: tom-c
#62026-03-09mirror: dropbox-rzypoftuition6zug9ye8
#52026-03-09mirror: dropbox-fbfo5thdcsp7pa84e1t6t
#32026-03-06mirror: frankgermano.com
#12026-03-04mirror: padrak.com

Local commits

Authored on /Users/esaruoho/work/merlib-mirror. Some commits are squashed into the PRs above when they land upstream.

DateSHAMessage
2026-05-296b263a4astart-mirror: kill orphan supervisors/workers on startup (single-instance)
2026-05-29ab148303mirror-worker: rely on click-activation auto-open (no auto_open flag)
2026-05-28a7e7bd6cmirror.py: gdrive download via authenticated API when key available
2026-05-2865e6db7amirror-worker: mkdir site_dir before tee (fix gdrive false-failure)
2026-05-2604c19f15feat(mirror): --to-syncthing flag + notify-inbox ping on completion
2026-05-265c1cab68mirror: full worker — submit and results both go through comms/queue
2026-05-26bf6c9292queue: remove ihu-usa.org jobs — wayback target unreachable, repeated SIGKILL
2026-05-2681367ce4theverylastpageoftheinternet.com: add SOURCE.txt provenance
2026-05-26d745a2a1samlib.ru: add SOURCE.txt provenance
2026-05-268d6d1119mirror: write SOURCE.txt per mirror, build rich PR body
2026-05-26251d2202mirror: samlib.ru
2026-05-2618a1be58worker: clear stale error.log before each run
2026-05-26bde6cfdaworker+mirror.py: emit heartbeat + progress JSON for laptop status pane
2026-05-2608931ccfworker: crashed jobs go to failed/, not done/; supervisor respawn loop
2026-05-26da7017f3mirror: honor path_filter in live mode
2026-05-1580c06e0cmirror: www.gyroscopes.org
2026-05-139b5c1033queue: mirror 1 domain(s)
2026-05-1358471bcdqueue: mirror 1 domain(s)
2026-05-08e438a568mirror: punainen.org
2026-05-081a168fb2mirror: energyscience.co.uk
2026-04-302b67e9ebmirror: vacuum-energy.com
2026-04-29903d9251mirror: villesresearch.com
2026-04-236aa5017dmirror: tesla.hu
2026-04-228d6dee45plan: archive inventory + self-organizing site strategy
2026-04-22fd01c37fqueue: mirror 1 domain(s)
2026-04-22861973e0mirror: magnetricity.com — complete
2026-04-2174fc5fa8fix: scoped CDX query for --path, alt-timestamp retry for failed URLs
2026-04-2169453b5cmirror: villesresearch.com — complete
2026-04-21b8613204scripts: add google_indexed_pdf_downloader.py
2026-04-21c776d861mirror: pharis (infohost.nmt.edu/~pharis) — Dean Pharis "Dynamic Theory"
2026-04-21b2835f3fqueue: mirror 1 domain(s)
2026-04-21d74f240amirror: infohost.nmt.edu
2026-04-21cb5ae849mirror: meyl.eu
2026-04-21119ce667mirror: theverylastpageoftheinternet.com
2026-04-218d2e7212mirror: meyl.eu
2026-04-216d8372dffix(worker): use git checkout -B to avoid stale-branch state corruption
2026-04-218b73870dfix(mirror): follow <meta refresh> + truncate over-long basenames
2026-04-201dcbb987mirror: elmer.unibas.ch
2026-04-2072737b56mirror: meyl.eu
2026-04-20b7b0573emirror: theverylastpageoftheinternet.com
2026-04-1992161ea3Add free-energy prior-art parsing scripts and Ampere electrodynamics analysis
2026-04-191cec7f94mirror: jvmoloney.com
2026-04-02921fa6c6mirror: wikischool.org
2026-04-01425a9b0cmirror: johnbedini.net
2026-03-305a40d507mirror: www.vortex-world.org
2026-03-300cbcbdfeResolve merge conflicts and clean up ifi.unicamp.br queue job
2026-03-28279da908Remove failed ifi.unicamp.br stub, update www.ifi.unicamp.br mirror metadata
2026-03-282ec4f732mirror: evert.de
2026-03-265408c213mirror: weathercreation.com
2026-03-233884a82eAdd torkado.de ecosystem mirror (Gabi Mueller Wirbelphysik)
2026-03-2066ee656dmirror: torkado.de
2026-03-201a8a645bthese
2026-03-192bb0a56dfeat: discord-grabber full mirror — auto-download images, videos, and files
2026-03-19fece21abfix: discord-grabber filters junk images (emoji, avatars, clan-badges)
2026-03-17961d3ee7Mirror 1998 Riess Institute website (riess.org) from Wayback Machine
2026-03-174e27847emirror: riess.org
2026-03-10bbc4bb1fAdd FUNDING.yml with GitHub Sponsors, Patreon, Ko-fi, Buy Me a Coffee
2026-03-10da76a5d2feat: Google Drive API support, offline mode, and gdrive_list.py
2026-03-10d7278d56fix: scope git add to job's site dir only — prevent cross-contamination
2026-03-106352e7a7queue: mirror 1 domain(s)
2026-03-106551a143queue: mirror 1 domain(s)
2026-03-097341b4b0mirror: ifi.unicamp.br
2026-03-09f41baf0afeat: add Dropbox download mode with --label support
2026-03-097226ff33transcripts: GEET Plasma Reactor video/audio transcriptions
2026-03-0984c84647Revert "Merge pull request #7 from esaruoho/mirror/GEET"
2026-03-0998b4d99frename: dropbox-fbfo5thdcsp7pa84e1t6t → GEET
2026-03-09f041715dtranscripts: add whisper transcriptions for GEET Pantone videos
2026-03-092b556737transcript: Paul Pantone on GEET Plasma Reactor - Talk For Food with Adam Abraham
2026-03-093910aeeemirror: dropbox-fbfo5thdcsp7pa84e1t6t
2026-03-09709b91e8mirror: dropbox-fbfo5thdcsp7pa84e1t6t
2026-03-09a6ae974aadd: matpitka.blogspot.com analytical synopsis
2026-03-091c1220fcfeat: add Google Drive download mode (gdrive) with --label support
2026-03-0766b52afcmirror: matpitka.blogspot.com
2026-03-061f26f1e2Remove private bot reference from README
2026-03-06b9ac5fe6fix: path filter extracting '//www.domain' instead of empty for root URLs
2026-03-06dae7bf57mirror: frankgermano.com
2026-03-05b193f9c4mirror: amasci.com
2026-03-05715838c2Switch mirror-worker to PR workflow instead of pushing to main
2026-03-053284796eDelete sites/amasci.com directory
2026-03-059aabe816mirror: vortexscience.com
2026-03-056b7082d2mirror: iet-community.org
2026-03-0530584bccmirror: primalwater.com.au
2026-03-051b790f22fix: BFS live crawl skipping all queued URLs after first page
2026-03-0568c5c16ffeat: add optional Scrapling fetcher with stdlib urllib fallback
2026-03-04f7b21e08mirror: amasci.com
2026-03-047849a36dmirror: padrak.com
2026-03-04eeea8445fix: stop branch switching that nukes files, add HTTPS->HTTP fallback
2026-03-0461a69e17fix: skip already-downloaded files, strip URL fragments, log failures
2026-03-044facd093feat: download-as-you-go live crawler with depth limit
2026-03-04bc74bbc5queue: mirror 1 domain(s)
2026-03-04e3c5bfabfix: add per-page BFS logging in live mode for visibility
2026-03-04db70ce85feat: extract wayback timestamp from URLs, pass --to to mirror.py
2026-03-04e982eddequeue: mirror 1 domain(s)
2026-03-04b3031185queue: mirror 1 domain(s)
2026-03-040125ae75add 'Why this exists' — mission statement for MERLib Mirror
2026-03-04be464b74update mirror.py: add --path filter for subdirectory mirroring
2026-03-04babb03fefeat: add --path filter for subdirectory mirroring
2026-03-045e180f2aqueue: mirror 1 domain(s)
2026-03-04f1782d9fSkip Shopify CDN URLs during wayback discovery
2026-03-04b39c377aUse SSH clone URL in README
2026-03-0425866cb8Bundle mirror.py engine + make portable
2026-03-04eeaf2562feat: open PRs instead of pushing directly to main
2026-03-0401716c8fInitial commit — MERLib Mirror