This is a copy of a shared ChatGPT conversation
ChatGPT said:
That's correct. archive-chan is primarily a snapshot archiver, not a historical archiver.
When it revisits a thread, it downloads the current thread JSON and regenerates the archive based on what's currently available. If a post has been deleted (by the author, a moderator, or due to thread pruning), that post is no longer present in the API response, so the regenerated archive won't include it.
There are generally three approaches to avoid losing deleted posts:
-
Archive incrementally while the thread is active.
-
Poll the thread every few minutes.
-
Append only new posts to your local copy.
-
Never delete posts from your local database, even if they disappear upstream.
-
-
Maintain your own local database.
-
Store every post keyed by post ID (
no). -
On each poll:
-
insert newly seen posts,
-
update existing ones if fields change,
-
mark missing posts as "deleted" rather than removing them.
-
-
This preserves a complete history.
-
-
Use a board-wide archiver such as Asagi.
-
These continuously poll boards and are designed to retain posts even if they are later deleted from the live thread (subject to when the deletion occurred relative to polling).
-
For an individual thread, a simple schema might look like:
posts ----- post_id thread_id first_seen last_seen deleted (bool) json
Then on each poll:
-
if a post is new → insert it
-
if it already exists → update
last_seen -
after processing, any previously known post that wasn't returned can be marked
deleted=true(or "missing") instead of being removed
This way your archive becomes append-only.
Could archive-chan be modified?
Yes. Since it already downloads the thread JSON, an incremental mode could work like this:
-
Load the existing archived JSON.
-
Merge in any newly discovered posts.
-
Never remove posts that already exist.
-
Optionally annotate posts no longer returned by the API as
"deleted": true. -
Regenerate the HTML from the merged dataset.
That would preserve the full history of the thread while still updating with new replies.
If you're comfortable with Python, this is a relatively modest feature to add compared with writing a new archiver from scratch, assuming archive-chan's codebase cleanly separates fetching, storage, and HTML generation.