Additional import adapters - Instagram / TikTok / Mastodon archive #121

Closed
opened 2026-07-15 19:53:43 +00:00 by claude-bot · 1 comment
Contributor

Feature idea (audit Phase 5, rank #4) · Effort: medium

Why
The user's notes span more platforms than Twitter/Bluesky. The adapter pattern (importWorker + lib parsers) is built for exactly this kind of extension.

Proposal
Add archive parsers for Instagram, TikTok, and/or Mastodon data exports behind the existing import-adapter interface, mapping each to entries with the appropriate source and source_id dedup shape.

Why it was likely missed
v1 targeted only the two platforms named in the spec.

Acceptance criteria

  • At least one additional platform archive imports with correct timestamps and dedup.
  • New parsers follow the existing adapter/parser separation.

Filed from the 2026-07-15 codebase audit. Full report: docs/.internal/report-2026-07-15.md (gitignored).

**Feature idea** (audit Phase 5, rank #4) · Effort: medium **Why** The user's notes span more platforms than Twitter/Bluesky. The adapter pattern (`importWorker` + `lib` parsers) is built for exactly this kind of extension. **Proposal** Add archive parsers for Instagram, TikTok, and/or Mastodon data exports behind the existing import-adapter interface, mapping each to entries with the appropriate `source` and `source_id` dedup shape. **Why it was likely missed** v1 targeted only the two platforms named in the spec. **Acceptance criteria** - [ ] At least one additional platform archive imports with correct timestamps and dedup. - [ ] New parsers follow the existing adapter/parser separation. --- _Filed from the 2026-07-15 codebase audit. Full report: `docs/.internal/report-2026-07-15.md` (gitignored)._
Author
Contributor

Done — shipped in v9.3.0 (PR #142, merge c69897c).

Two adapters added behind the existing parser interface: parseMastodonOutbox (ActivityPub outbox.json — keeps Create/Note, skips boosts, strips HTML; sourceId = mastodon:<id>, published timestamps) and parseInstagramJson (caption from post/media title, creation_timestamp → ISO; sourceId = instagram:<ts> or content-hash fallback). New /api/import/{mastodon,instagram} routes + Import-page cards. Parser unit tests cover Create-vs-boost, HTML stripping, timestamp conversion, dedup id shape, and malformed-JSON handling.

Acceptance: two additional platform archives import with correct timestamps + dedup · new parsers follow the existing adapter/parser separation.

Done — shipped in **v9.3.0** (PR #142, merge `c69897c`). Two adapters added behind the existing parser interface: `parseMastodonOutbox` (ActivityPub `outbox.json` — keeps `Create`/`Note`, skips boosts, strips HTML; `sourceId = mastodon:<id>`, `published` timestamps) and `parseInstagramJson` (caption from post/media `title`, `creation_timestamp` → ISO; `sourceId = instagram:<ts>` or content-hash fallback). New `/api/import/{mastodon,instagram}` routes + Import-page cards. Parser unit tests cover Create-vs-boost, HTML stripping, timestamp conversion, dedup id shape, and malformed-JSON handling. **Acceptance:** ✅ two additional platform archives import with correct timestamps + dedup · ✅ new parsers follow the existing adapter/parser separation.
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
rbrooks/TeaLeaves#121
No description provided.