diff --git a/README.md b/README.md index e71670a..2c66736 100644 --- a/README.md +++ b/README.md @@ -131,3 +131,7 @@ Quartz remotes live in `site/` (`cd site; git pull`). After a Quartz pull, re-co Current major is **Quartz 5**. Edit `publish/quartz.config.yaml`, not the clone. Canvas uses `@quartz-community/canvas-page`. Drafts use `@quartz-community/remove-draft`. Engine license: MIT (Quartz). Vault content: Unlicense (`LICENSE`). + +## Notice + +I'm not a web dev. Look away at the scripts this is just done because it doesn't exist, so it was done badly. diff --git a/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-0x44_-assembly-isnt-hard-its-just-platform-specific.md b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-0x44_-assembly-isnt-hard-its-just-platform-specific.md index 5514a4d..7ab9209 100644 --- a/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-0x44_-assembly-isnt-hard-its-just-platform-specific.md +++ b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-0x44_-assembly-isnt-hard-its-just-platform-specific.md @@ -7,8 +7,8 @@ author: "0x44" handle: 0x44_ post_id: "1951048949667619280" date: 2025-07-31 -archived: 2026-08-23 -draft: true +archived: 2026-08-24 +draft: false tags: - archive - twitter diff --git a/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-2Sexy4MyGPU-it-was-never-hard-just-tedious.md b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-2Sexy4MyGPU-it-was-never-hard-just-tedious.md index 9606d33..a823fee 100644 --- a/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-2Sexy4MyGPU-it-was-never-hard-just-tedious.md +++ b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-2Sexy4MyGPU-it-was-never-hard-just-tedious.md @@ -7,8 +7,8 @@ author: "Matthew Rusch" handle: 2Sexy4MyGPU post_id: "1950935584714654191" date: 2025-07-31 -archived: 2026-08-23 -draft: true +archived: 2026-08-24 +draft: false tags: - archive - twitter diff --git a/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-CUDAHandbook-i-have-been-writing-assembly-for-almost-40-years.md b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-CUDAHandbook-i-have-been-writing-assembly-for-almost-40-years.md index 6b3cd3d..766b0e2 100644 --- a/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-CUDAHandbook-i-have-been-writing-assembly-for-almost-40-years.md +++ b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-CUDAHandbook-i-have-been-writing-assembly-for-almost-40-years.md @@ -7,8 +7,8 @@ author: "Nicholas Wilt" handle: CUDAHandbook post_id: "1951018231856312578" date: 2025-07-31 -archived: 2026-08-23 -draft: true +archived: 2026-08-24 +draft: false tags: - archive - twitter diff --git a/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-Karyuutensei-unrelated-but-i-would-also-love-a-look-at-your.md b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-Karyuutensei-unrelated-but-i-would-also-love-a-look-at-your.md index eef7370..6d24f6b 100644 --- a/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-Karyuutensei-unrelated-but-i-would-also-love-a-look-at-your.md +++ b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-Karyuutensei-unrelated-but-i-would-also-love-a-look-at-your.md @@ -7,8 +7,8 @@ author: "Nick Tasios" handle: Karyuutensei post_id: "1950905493053923408" date: 2025-07-31 -archived: 2026-08-23 -draft: true +archived: 2026-08-24 +draft: false tags: - archive - twitter diff --git a/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-NickDrisc0ll-im-sure-it-would-be-invaluable.md b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-NickDrisc0ll-im-sure-it-would-be-invaluable.md index 7de654e..a624e06 100644 --- a/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-NickDrisc0ll-im-sure-it-would-be-invaluable.md +++ b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-NickDrisc0ll-im-sure-it-would-be-invaluable.md @@ -7,8 +7,8 @@ author: "vulkan tamer" handle: NickDrisc0ll post_id: "1950899486059851961" date: 2025-07-31 -archived: 2026-08-23 -draft: true +archived: 2026-08-24 +draft: false tags: - archive - twitter diff --git a/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-PunteroCrudo-i-would-and-i-think-more-people-would-be.md b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-PunteroCrudo-i-would-and-i-think-more-people-would-be.md index 30b4230..098d255 100644 --- a/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-PunteroCrudo-i-would-and-i-think-more-people-would-be.md +++ b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-PunteroCrudo-i-would-and-i-think-more-people-would-be.md @@ -7,8 +7,8 @@ author: "PunteroCrudo" handle: PunteroCrudo post_id: "1950929528131326083" date: 2025-07-31 -archived: 2026-08-23 -draft: true +archived: 2026-08-24 +draft: false tags: - archive - twitter diff --git a/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-SquaredApe-given-ive-only-done-asm-on-amiga-with-devpac-i.md b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-SquaredApe-given-ive-only-done-asm-on-amiga-with-devpac-i.md index a831d60..a9a24e6 100644 --- a/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-SquaredApe-given-ive-only-done-asm-on-amiga-with-devpac-i.md +++ b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-SquaredApe-given-ive-only-done-asm-on-amiga-with-devpac-i.md @@ -7,8 +7,8 @@ author: "Robert William Cummings" handle: SquaredApe post_id: "1950915633811534012" date: 2025-07-31 -archived: 2026-08-23 -draft: true +archived: 2026-08-24 +draft: false tags: - archive - twitter diff --git a/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-Stererence-ive-been-doing-assembly-a-bit-in-d-with-the.md b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-Stererence-ive-been-doing-assembly-a-bit-in-d-with-the.md index 9a3d633..41ef612 100644 --- a/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-Stererence-ive-been-doing-assembly-a-bit-in-d-with-the.md +++ b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-Stererence-ive-been-doing-assembly-a-bit-in-d-with-the.md @@ -7,8 +7,8 @@ author: "Sterence" handle: Stererence post_id: "1950970860694913461" date: 2025-07-31 -archived: 2026-08-23 -draft: true +archived: 2026-08-24 +draft: false tags: - archive - twitter diff --git a/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-VicThorDev6-a-lot-of-people-who-claim-assembly-is-hard-just.md b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-VicThorDev6-a-lot-of-people-who-claim-assembly-is-hard-just.md index 224677c..cb188c0 100644 --- a/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-VicThorDev6-a-lot-of-people-who-claim-assembly-is-hard-just.md +++ b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-VicThorDev6-a-lot-of-people-who-claim-assembly-is-hard-just.md @@ -7,8 +7,8 @@ author: "VicThor Dev" handle: VicThorDev6 post_id: "1950927812401004774" date: 2025-07-31 -archived: 2026-08-23 -draft: true +archived: 2026-08-24 +draft: false tags: - archive - twitter diff --git a/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-_naf_90-im-learning-assembly-in-my-spare-time.md b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-_naf_90-im-learning-assembly-in-my-spare-time.md index e5cd0b7..bf3b946 100644 --- a/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-_naf_90-im-learning-assembly-in-my-spare-time.md +++ b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-_naf_90-im-learning-assembly-in-my-spare-time.md @@ -7,8 +7,8 @@ author: "Naf ๐Ÿ‘จ๐Ÿฝโ€๐Ÿ’ป" handle: _naf_90 post_id: "1950948334002159684" date: 2025-07-31 -archived: 2026-08-23 -draft: true +archived: 2026-08-24 +draft: false tags: - archive - twitter diff --git a/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-biovf-i-would-definitely-watch-that.md b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-biovf-i-would-definitely-watch-that.md index bdaeb9d..543f068 100644 --- a/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-biovf-i-would-definitely-watch-that.md +++ b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-biovf-i-would-definitely-watch-that.md @@ -7,8 +7,8 @@ author: "David Sena" handle: biovf post_id: "1950863824522739861" date: 2025-07-31 -archived: 2026-08-23 -draft: true +archived: 2026-08-24 +draft: false tags: - archive - twitter diff --git a/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-cyberbemon-id-love-to-watch-that.md b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-cyberbemon-id-love-to-watch-that.md index 6f1ee4a..8e5dae9 100644 --- a/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-cyberbemon-id-love-to-watch-that.md +++ b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-cyberbemon-id-love-to-watch-that.md @@ -7,8 +7,8 @@ author: "D J" handle: cyberbemon post_id: "1950940978229236154" date: 2025-07-31 -archived: 2026-08-23 -draft: true +archived: 2026-08-24 +draft: false tags: - archive - twitter diff --git a/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-furan-there-are-a-lot-of-watch-me-write-this-app-in.md b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-furan-there-are-a-lot-of-watch-me-write-this-app-in.md index f5c8e85..b1ba4a4 100644 --- a/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-furan-there-are-a-lot-of-watch-me-write-this-app-in.md +++ b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-furan-there-are-a-lot-of-watch-me-write-this-app-in.md @@ -7,8 +7,8 @@ author: "Ian Hanschen" handle: furan post_id: "1950955895351083303" date: 2025-07-31 -archived: 2026-08-23 -draft: true +archived: 2026-08-24 +draft: false tags: - archive - twitter diff --git a/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-furan-would-watch-though.md b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-furan-would-watch-though.md index d941572..8f3c934 100644 --- a/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-furan-would-watch-though.md +++ b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-furan-would-watch-though.md @@ -7,8 +7,8 @@ author: "Ian Hanschen" handle: furan post_id: "1950956007737463015" date: 2025-07-31 -archived: 2026-08-23 -draft: true +archived: 2026-08-24 +draft: false tags: - archive - twitter diff --git a/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-konigssohne-if-youre-got-a-blank-canvas-go-for-it-interfacing.md b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-konigssohne-if-youre-got-a-blank-canvas-go-for-it-interfacing.md index 81bf1e5..1b43185 100644 --- a/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-konigssohne-if-youre-got-a-blank-canvas-go-for-it-interfacing.md +++ b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-konigssohne-if-youre-got-a-blank-canvas-go-for-it-interfacing.md @@ -7,8 +7,8 @@ author: "NEOAethyr" handle: konigssohne post_id: "1950961762419044639" date: 2025-07-31 -archived: 2026-08-23 -draft: true +archived: 2026-08-24 +draft: false tags: - archive - twitter diff --git a/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-leonard_coder-im-still-doing-assembly-as-hobby-68k-assembly-x64.md b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-leonard_coder-im-still-doing-assembly-as-hobby-68k-assembly-x64.md index f312111..490cd32 100644 --- a/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-leonard_coder-im-still-doing-assembly-as-hobby-68k-assembly-x64.md +++ b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-leonard_coder-im-still-doing-assembly-as-hobby-68k-assembly-x64.md @@ -7,8 +7,8 @@ author: "Arnaud Carrรฉ" handle: leonard_coder post_id: "1950889332375470135" date: 2025-07-31 -archived: 2026-08-23 -draft: true +archived: 2026-08-24 +draft: false tags: - archive - twitter diff --git a/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-m6502-i-would-enjoy-watching-that.md b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-m6502-i-would-enjoy-watching-that.md index 60564b1..9b41f46 100644 --- a/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-m6502-i-would-enjoy-watching-that.md +++ b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-m6502-i-would-enjoy-watching-that.md @@ -7,8 +7,8 @@ author: "Manuel Montoto" handle: m6502 post_id: "1950913023851278616" date: 2025-07-31 -archived: 2026-08-23 -draft: true +archived: 2026-08-24 +draft: false tags: - archive - twitter diff --git a/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-mmalex-i-agree-if-one-is-ok-with-bottom-up-thinking-99.md b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-mmalex-i-agree-if-one-is-ok-with-bottom-up-thinking-99.md index d4e29d7..b854f34 100644 --- a/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-mmalex-i-agree-if-one-is-ok-with-bottom-up-thinking-99.md +++ b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-mmalex-i-agree-if-one-is-ok-with-bottom-up-thinking-99.md @@ -7,8 +7,8 @@ author: "๐–’๐–’๐–†๐–‘๐–Š๐–" handle: mmalex post_id: "1950886322341630045" date: 2025-07-31 -archived: 2026-08-23 -draft: true +archived: 2026-08-24 +draft: false tags: - archive - twitter diff --git a/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-mu_chrinovic-definitely-interested-in-anything-you-put-out.md b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-mu_chrinovic-definitely-interested-in-anything-you-put-out.md index 286aa40..c2d66e1 100644 --- a/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-mu_chrinovic-definitely-interested-in-anything-you-put-out.md +++ b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-mu_chrinovic-definitely-interested-in-anything-you-put-out.md @@ -7,8 +7,8 @@ author: "Chrinovic Mukanya" handle: mu_chrinovic post_id: "1950864277624979480" date: 2025-07-31 -archived: 2026-08-23 -draft: true +archived: 2026-08-24 +draft: false tags: - archive - twitter diff --git a/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-nullspector-i-would-so-love-that.md b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-nullspector-i-would-so-love-that.md index 4f65e37..be5c4a0 100644 --- a/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-nullspector-i-would-so-love-that.md +++ b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-nullspector-i-would-so-love-that.md @@ -7,8 +7,8 @@ author: "Michael Spector" handle: nullspector post_id: "1950865695140364456" date: 2025-07-31 -archived: 2026-08-23 -draft: true +archived: 2026-08-24 +draft: false tags: - archive - twitter diff --git a/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-o__boga-im-staying-maybe-for-vulkan-depending-on-how.md b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-o__boga-im-staying-maybe-for-vulkan-depending-on-how.md index d41baa2..224459e 100644 --- a/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-o__boga-im-staying-maybe-for-vulkan-depending-on-how.md +++ b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-o__boga-im-staying-maybe-for-vulkan-depending-on-how.md @@ -7,8 +7,8 @@ author: "Boga" handle: o__boga post_id: "1950939824183001106" date: 2025-07-31 -archived: 2026-08-23 -draft: true +archived: 2026-08-24 +draft: false tags: - archive - twitter diff --git a/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-opdroid1234-i-would.md b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-opdroid1234-i-would.md index 6e0ab04..28f3568 100644 --- a/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-opdroid1234-i-would.md +++ b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-opdroid1234-i-would.md @@ -7,8 +7,8 @@ author: "opdroid1234" handle: opdroid1234 post_id: "1950902422362046528" date: 2025-07-31 -archived: 2026-08-23 -draft: true +archived: 2026-08-24 +draft: false tags: - archive - twitter diff --git a/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-plasmabitcoin-very-interested.md b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-plasmabitcoin-very-interested.md index 423ef4d..5acbe8e 100644 --- a/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-plasmabitcoin-very-interested.md +++ b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-plasmabitcoin-very-interested.md @@ -7,8 +7,8 @@ author: "PlasmaBitcoin" handle: plasmabitcoin post_id: "1950963702569771336" date: 2025-07-31 -archived: 2026-08-23 -draft: true +archived: 2026-08-24 +draft: false tags: - archive - twitter diff --git a/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-pranksterware-thatd-rock.md b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-pranksterware-thatd-rock.md index 60d4813..c17b8ce 100644 --- a/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-pranksterware-thatd-rock.md +++ b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-pranksterware-thatd-rock.md @@ -7,8 +7,8 @@ author: "unevenprankster" handle: pranksterware post_id: "1950872517700206902" date: 2025-07-31 -archived: 2026-08-23 -draft: true +archived: 2026-08-24 +draft: false tags: - archive - twitter diff --git a/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-roasted6read-i-am-interested.md b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-roasted6read-i-am-interested.md index 6801ad2..30497b7 100644 --- a/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-roasted6read-i-am-interested.md +++ b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-roasted6read-i-am-interested.md @@ -7,8 +7,8 @@ author: "แ Œแ Œ แ Œ แ Œ" handle: roasted6read post_id: "1950914379412566114" date: 2025-07-31 -archived: 2026-08-23 -draft: true +archived: 2026-08-24 +draft: false tags: - archive - twitter diff --git a/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-ruben_cabaco-would-be-very-interested-in-it-also-on-your-forth.md b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-ruben_cabaco-would-be-very-interested-in-it-also-on-your-forth.md index 99b0dcc..95bd2d9 100644 --- a/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-ruben_cabaco-would-be-very-interested-in-it-also-on-your-forth.md +++ b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-ruben_cabaco-would-be-very-interested-in-it-also-on-your-forth.md @@ -7,8 +7,8 @@ author: "Rรบben Cabaรงo" handle: ruben_cabaco post_id: "1950894646881611793" date: 2025-07-31 -archived: 2026-08-23 -draft: true +archived: 2026-08-24 +draft: false tags: - archive - twitter diff --git a/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-simplex_fx-is-it-already-aprils-fools-again.md b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-simplex_fx-is-it-already-aprils-fools-again.md index e929f65..2c5ff34 100644 --- a/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-simplex_fx-is-it-already-aprils-fools-again.md +++ b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-simplex_fx-is-it-already-aprils-fools-again.md @@ -7,8 +7,8 @@ author: "Simplex" handle: simplex_fx post_id: "1951011391827010009" date: 2025-07-31 -archived: 2026-08-23 -draft: true +archived: 2026-08-24 +draft: false tags: - archive - twitter diff --git a/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-ssh4net-please.md b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-ssh4net-please.md index 9b7ba9b..939aaf6 100644 --- a/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-ssh4net-please.md +++ b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-ssh4net-please.md @@ -7,8 +7,8 @@ author: "Vlad Erium ๐Ÿ‡ฏ๐Ÿ‡ต" handle: ssh4net post_id: "1950870099809681578" date: 2025-07-31 -archived: 2026-08-23 -draft: true +archived: 2026-08-24 +draft: false tags: - archive - twitter diff --git a/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-thecolemanthe-assembly-isnt-hard-its-tedious-no-abstractions.md b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-thecolemanthe-assembly-isnt-hard-its-tedious-no-abstractions.md index 5574276..89167a3 100644 --- a/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-thecolemanthe-assembly-isnt-hard-its-tedious-no-abstractions.md +++ b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-thecolemanthe-assembly-isnt-hard-its-tedious-no-abstractions.md @@ -7,8 +7,8 @@ author: "Mark Coleman" handle: thecolemanthe post_id: "1950956186783895852" date: 2025-07-31 -archived: 2026-08-23 -draft: true +archived: 2026-08-24 +draft: false tags: - archive - twitter diff --git a/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-totalwert-thread.md b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-totalwert-thread.md index 756cb74..4bd0975 100644 --- a/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-totalwert-thread.md +++ b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-07-31-totalwert-thread.md @@ -7,8 +7,8 @@ author: "Alonne" handle: totalwert post_id: "1950900720770625916" date: 2025-07-31 -archived: 2026-08-23 -draft: true +archived: 2026-08-24 +draft: false tags: - archive - twitter @@ -31,6 +31,7 @@ parent_post_id: "1950860870818439202" @NOTimothyLottes + ## Related - Spine: [[archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to]] diff --git a/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-08-01-AnshumanKhanna5-im-gonna-start-pretending-i-understood-everything.md b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-08-01-AnshumanKhanna5-im-gonna-start-pretending-i-understood-everything.md new file mode 100644 index 0000000..33d5637 --- /dev/null +++ b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-08-01-AnshumanKhanna5-im-gonna-start-pretending-i-understood-everything.md @@ -0,0 +1,35 @@ +--- +title: "@NOTimothyLottes I'm gonna start pretending I understood everything you said" +type: archive +source: twitter +source_url: "https://x.com/AnshumanKhanna5/status/1951095609567617288" +author: "Anshuman Khanna" +handle: AnshumanKhanna5 +post_id: "1951095609567617288" +date: 2025-08-01 +archived: 2026-08-24 +draft: false +tags: + - archive + - twitter + - NOTimothyLottes +description: "@NOTimothyLottes I'm gonna start pretending I understood everything you said" +in_reply_to: "" +parent_post_id: "1950868863836410096" +--- + +## Source + +- URL: https://x.com/AnshumanKhanna5/status/1951095609567617288 +- Author: Anshuman Khanna (@AnshumanKhanna5) +- Posted: 2025-08-01 01:40:17 + +## Branch + +**1/** + +@NOTimothyLottes I'm gonna start pretending I understood everything you said + +## Related + +- Spine: [[archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to]] diff --git a/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-08-01-AnshumanKhanna5-video-link-now.md b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-08-01-AnshumanKhanna5-video-link-now.md index d518315..717fb3c 100644 --- a/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-08-01-AnshumanKhanna5-video-link-now.md +++ b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-08-01-AnshumanKhanna5-video-link-now.md @@ -7,8 +7,8 @@ author: "Anshuman Khanna" handle: AnshumanKhanna5 post_id: "1951095292377571395" date: 2025-08-01 -archived: 2026-08-23 -draft: true +archived: 2026-08-24 +draft: false tags: - archive - twitter diff --git a/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-08-01-John31625320803-it-doesnt-really-matter-what-language-you-call.md b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-08-01-John31625320803-it-doesnt-really-matter-what-language-you-call.md index 80847fe..202efe1 100644 --- a/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-08-01-John31625320803-it-doesnt-really-matter-what-language-you-call.md +++ b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-08-01-John31625320803-it-doesnt-really-matter-what-language-you-call.md @@ -7,8 +7,8 @@ author: "ร†gis Stranding" handle: John31625320803 post_id: "1951198394329829393" date: 2025-08-01 -archived: 2026-08-23 -draft: true +archived: 2026-08-24 +draft: false tags: - archive - twitter diff --git a/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-08-01-_vkaku-i-know-someone-whod-be-excited-opdroid1234.md b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-08-01-_vkaku-i-know-someone-whod-be-excited-opdroid1234.md index c2f29f2..eda1330 100644 --- a/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-08-01-_vkaku-i-know-someone-whod-be-excited-opdroid1234.md +++ b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-08-01-_vkaku-i-know-someone-whod-be-excited-opdroid1234.md @@ -7,8 +7,8 @@ author: "Karthik Kumar Viswanathan" handle: _vkaku post_id: "1951170620542296537" date: 2025-08-01 -archived: 2026-08-23 -draft: true +archived: 2026-08-24 +draft: false tags: - archive - twitter diff --git a/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-08-01-schulzb589-i-would-watch-that-so-count-me-in.md b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-08-01-schulzb589-i-would-watch-that-so-count-me-in.md index 03e8e1e..c2af98f 100644 --- a/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-08-01-schulzb589-i-would-watch-that-so-count-me-in.md +++ b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-08-01-schulzb589-i-would-watch-that-so-count-me-in.md @@ -7,8 +7,8 @@ author: "Ben Schulz" handle: schulzb589 post_id: "1951093394786361833" date: 2025-08-01 -archived: 2026-08-23 -draft: true +archived: 2026-08-24 +draft: false tags: - archive - twitter diff --git a/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/index.md b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/index.md index 049cca8..e37e0af 100644 --- a/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/index.md +++ b/archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/index.md @@ -7,8 +7,8 @@ author: "NOTimothyLottes" handle: NOTimothyLottes post_id: "1950860870818439202" date: 2025-07-31 -archived: 2026-08-23 -draft: true +archived: 2026-08-24 +draft: false tags: - archive - twitter @@ -50,3 +50,5 @@ So Valve standardizing on Proton saves a lot of trouble with porting across ABIs **6/** Few probably remember the old Unix before pthreads and ELF. It was better then. Much easier to use fork and shm to do platform audio than today. And that holds for all the vintage workstations (which I did implement back in the day) + +Branches: [[archive/threads/NOTimothyLottes/2025-07-31-people-claim-assembly-is-hard-a-good-counter-to/2025-08-01-AnshumanKhanna5-im-gonna-start-pretending-i-understood-everything]] diff --git a/scripts/twitter/README.md b/scripts/twitter/README.md index 10808ab..cdc1b49 100644 --- a/scripts/twitter/README.md +++ b/scripts/twitter/README.md @@ -9,6 +9,7 @@ python C:\projects\Threadwell\scripts\twitter\tw.py graph --id python C:\projects\Threadwell\scripts\twitter\tw.py refresh --id --tip python C:\projects\Threadwell\scripts\twitter\tw.py refresh --id --tip --branch python C:\projects\Threadwell\scripts\twitter\tw.py add-branch --id --from +python C:\projects\Threadwell\scripts\twitter\tw.py emit --id --tip --preserve-existing python C:\projects\Threadwell\scripts\twitter\tw.py audit-media --id python C:\projects\Threadwell\scripts\twitter\tw.py publish --id python C:\projects\Threadwell\scripts\twitter\tw.py sync --handle @@ -23,7 +24,9 @@ python C:\projects\Threadwell\scripts\twitter\tw.py migrate-media --all --apply `refresh` = refetch (cookies) + ingest + emit `--force` + media_merge. `--tip` treats `--id` as the tip and walks back to the OP regardless of handle. Repeatable `--branch ` captures only those additional explicit tip paths and merges them into the same `thread_data.json`; it does not discover replies automatically. Captures run sequentially with gallery-dl retries disabled and five-second extractor/request pacing. Each thread emits exactly one archive directory owned by the OP (the post with `reply_to_id == None`); cross-author responders do not get a directory. Does not flip `draft`. Does not commit. Frozen ids abort. -`add-branch` incrementally extends an already emitted thread. `--id` must be the original stored spine tip; repeatable `--from ` values are each captured once. The command locally retains each node's missing attachment path and entire visible descendant subtree, merges only previously absent posts into the existing `thread_data.json`, downloads media for the new posts, and re-emits with the original spine unchanged. It preserves existing origin/local/fallback/derived/OCR media records and adds provider-origin plus local-copy records for new branch media. A visible leaf is only the deepest reply returned by that capture; the command does not query descendants individually or claim provider-wide completeness. Fallback upload remains a separate explicit action after origin unavailability is confirmed. +`emit --preserve-existing` is the safe completion step after inspecting a fresh scratch capture. Fresh records win for ids the provider returned; posts present only in the existing emitted `thread_data.json` are retained after the command verifies both captures share a conversation root. This prevents an incomplete gallery-dl refresh from deleting archived replies. The merged scratch dataset keeps the requested `--id` as its stored spine tip before normal emission and media-manifest reconciliation. + +`add-branch` incrementally extends an already emitted thread. `--id` must be the original stored spine tip; repeatable `--from ` values are each captured once. The command locally retains each node's missing attachment path and entire visible descendant subtree, merges only previously absent posts into the existing `thread_data.json`, downloads media for the new posts, and re-emits with the original spine unchanged. It preserves existing origin/local/fallback/derived/OCR media records and adds provider-origin plus local-copy records for new branch media. A visible leaf is only the deepest reply returned by that capture; the command does not query descendants individually or claim provider-wide completeness. Gallery-dl may return only the ancestor chain when replies are behind nested show-more cursors; then the command adds nothing and known reply/stream-tip ids must be supplied explicitly. Fallback upload remains a separate explicit action after origin unavailability is confirmed. Usual publish path after you like the note: diff --git a/scripts/twitter/tests/test_tw_media_commands.py b/scripts/twitter/tests/test_tw_media_commands.py index bd275c8..7c45877 100644 --- a/scripts/twitter/tests/test_tw_media_commands.py +++ b/scripts/twitter/tests/test_tw_media_commands.py @@ -17,11 +17,13 @@ from twitter.tw import ( _copy_selected_media, _gallery_base_args, _merge_branch_posts, + _merge_existing_capture, _merge_gallery_files, _select_branch_capture, _validate_capture_ids, build_parser, cmd_add_branch, + cmd_emit, ) @@ -333,6 +335,107 @@ class TwMediaCommandTests(unittest.TestCase): with self.assertRaisesRegex(SystemExit, "stored spine tip"): cmd_add_branch(Namespace(id="200", from_ids=["300"])) + def test_merge_existing_capture_keeps_fresh_and_retains_missing(self) -> None: + old_100 = make_post("100", None) + old_200 = make_post("200", "100") + old_300 = make_post("300", "100") + existing = ThreadData( + root_post_id="100", + posts=(old_100, old_200, old_300), + source_url="https://x.com/i/status/100", + ) + fresh_100 = replace(old_100, text="fresh root") + fresh_200 = replace(old_200, text="fresh tip") + fresh_400 = make_post("400", "200") + fresh = ThreadData( + root_post_id="200", + posts=(fresh_100, fresh_200, fresh_400), + source_url="https://x.com/i/status/200", + ) + merged, retained = _merge_existing_capture(fresh, existing, "200") + self.assertEqual( + merged.posts, + (fresh_100, fresh_200, fresh_400, old_300), + ) + self.assertEqual(merged.root_post_id, "200") + self.assertEqual(merged.source_url, fresh.source_url) + self.assertEqual(retained, ("300",)) + + def test_merge_existing_capture_rejects_different_conversation(self) -> None: + existing = ThreadData( + root_post_id="100", + posts=(make_post("100", None),), + source_url="https://x.com/i/status/100", + ) + fresh = ThreadData( + root_post_id="200", + posts=(make_post("200", None),), + source_url="https://x.com/i/status/200", + ) + with self.assertRaisesRegex(SystemExit, "different conversation"): + _merge_existing_capture(fresh, existing, "200") + + def test_emit_and_refresh_accept_preserve_existing(self) -> None: + emit_args = build_parser().parse_args([ + "emit", "--id", "200", "--tip", "--preserve-existing", + ]) + refresh_args = build_parser().parse_args([ + "refresh", "--id", "200", "--tip", "--preserve-existing", + ]) + self.assertTrue(emit_args.preserve_existing) + self.assertTrue(refresh_args.preserve_existing) + + def test_emit_preserve_existing_merges_before_running_emitter(self) -> None: + with TemporaryDirectory() as tmp: + root = Path(tmp) + scratch = root / "refetch_200" + assets = root / "assets" + notes = root / "notes" + notes.mkdir() + existing = ThreadData( + root_post_id="100", + posts=( + make_post("100", None), + make_post("200", "100"), + make_post("300", "100"), + ), + source_url="https://x.com/i/status/100", + ) + fresh = ThreadData( + root_post_id="200", + posts=( + replace(make_post("100", None), text="fresh"), + replace(make_post("200", "100"), text="fresh"), + make_post("400", "200"), + ), + source_url="https://x.com/i/status/200", + ) + write_test_thread(assets / "thread_data.json", existing) + write_test_thread(scratch / "thread_data.json", fresh) + with ( + patch.object(tw_module, "scratch_dir", return_value=scratch), + patch.object(tw_module, "dump_dir", return_value=root / "dump"), + patch.object(tw_module, "locate", return_value=(assets, notes)), + patch.object(tw_module, "locate_all", return_value=[]), + patch.object(tw_module, "check_frozen"), + patch.object(tw_module, "run") as run, + redirect_stdout(StringIO()), + ): + result = cmd_emit(Namespace( + id="200", + tip=True, + slug=None, + preserve_existing=True, + )) + self.assertEqual(result, 0) + self.assertTrue(run.called) + merged = load_thread(scratch / "thread_data.json") + self.assertEqual( + tuple(post.post_id for post in merged.posts), + ("100", "200", "400", "300"), + ) + self.assertEqual(merged.root_post_id, "200") + def test_migrate_defaults_to_dry_run(self) -> None: args = build_parser().parse_args(["migrate-media", "--id", "100"]) self.assertEqual(args.cmd, "migrate-media") diff --git a/scripts/twitter/tw.py b/scripts/twitter/tw.py index 3aa703a..33d4c75 100644 --- a/scripts/twitter/tw.py +++ b/scripts/twitter/tw.py @@ -320,6 +320,25 @@ def _merge_branch_posts( ) +def _merge_existing_capture( + fresh: ThreadData, + existing: ThreadData, + tip_id: str, +) -> tuple[ThreadData, tuple[str, ...]]: + """Keep fresh post data while retaining archived posts it omitted.""" + if tip_id not in {post.post_id for post in fresh.posts}: + raise SystemExit(f"spine tip {tip_id} missing from fresh capture") + fresh_roots = { + post.post_id for post in fresh.posts if post.reply_to_id is None + } + existing_roots = { + post.post_id for post in existing.posts if post.reply_to_id is None + } + if not fresh_roots or fresh_roots.isdisjoint(existing_roots): + raise SystemExit("fresh and existing captures are a different conversation") + return _merge_branch_posts(fresh, [existing.posts]) + + def _copy_selected_media( source: Path, destination: Path, @@ -447,7 +466,12 @@ def cmd_add_branch(args: argparse.Namespace) -> int: } _copy_selected_media(capture_dir, output_dir, selected_added) _write_thread(output_dir / "thread_data.json", merged) - cmd_emit(argparse.Namespace(id=post_id, tip=True, slug=None)) + cmd_emit(argparse.Namespace( + id=post_id, + tip=True, + slug=None, + preserve_existing=False, + )) added_text = ",".join(added_ids) if added_ids else "-" leaf_text = ";".join( @@ -469,6 +493,23 @@ def cmd_emit(args: argparse.Namespace) -> int: src = dump_dir(post_id) if not (src / "thread_data.json").is_file(): raise SystemExit(f"no thread_data.json for {post_id}") + if args.preserve_existing: + assets, _notes = locate(post_id) + if assets is None: + raise SystemExit(f"no existing emitted thread for {post_id}") + existing_path = assets / "thread_data.json" + if not existing_path.is_file(): + raise SystemExit(f"missing {existing_path}") + fresh = load_thread(src / "thread_data.json") + existing = load_thread(existing_path) + merged, retained_ids = _merge_existing_capture( + fresh, + existing, + post_id, + ) + _write_thread(src / "thread_data.json", merged) + retained = ",".join(retained_ids) if retained_ids else "-" + print(f"preserve-existing retained={retained}") cmd = [ sys.executable, str(HERE / "emit_archive.py"), @@ -795,6 +836,11 @@ def build_parser() -> argparse.ArgumentParser: if name in ("emit", "refresh"): p.add_argument("--tip", action="store_true", help="use --id as tip") p.add_argument("--slug", default=None) + p.add_argument( + "--preserve-existing", + action="store_true", + help="retain archived posts omitted by the fresh capture", + ) if name == "lift": p.add_argument("--orig", action="store_true") if name == "ocr":