Releases: raldisk/instagram-diff
Releases · raldisk/instagram-diff
v4.0.1
What's Changed
Patch release resolving all P0 and P1 blockers identified in the post-4.0.0 review. No new features — correctness and reliability fixes only.
Python Tracker (tracker/run_tracker.py, tracker/download_pics.py)
- Entry point fixed —
main(argv=None)now exists as a proper callable;uv run instagram-diffand installed script invocations no longer raiseAttributeError - Atomic history writes —
append_historyrewritten as read-modify-write via_atomic_csv_write; a crash mid-write can no longer produce torn rows inhistory.csv - Defensive
load_history— validates CSV headers on read, skips and warns on malformed rows rather than raisingKeyError - No import-time side effects —
os.makedirsindownload_pics.pymoved inside__main__; importing the module no longer creates directories on disk - No global mutation at runtime — CLI argument values are now local variables inside
main(); module-level constants are never overwritten
Project
pyproject.tomlversion corrected from1.0.0to4.0.1.gitattributesadded — normalizes all text file line endings to LF across platforms
v4.0.0
What's New
Full rewrite of both the scraper engine and scroll panel.
Userscript (scraper.user.js + main.js)
- Zero memory leaks — cleanup registry pattern, all listeners/timers self-register
fetch()intercept added — covers Instagram endpoints the original missed- MutationObserver auto-scroll — click once, open followers, scroll starts automatically
- Runtime scroll target probe — no hardcoded CSS classes, survives Instagram deploys
- IndexedDB persistence with bounded caches, blob URL fix, XSS-safe history log
- Boot guard prevents double-init on reinject
Python Tracker (tracker/run_tracker.py)
- Atomic CSV writes — crash-safe via
NamedTemporaryFile+Path.replace() - Cross-platform font loading — DejaVuSans → Helvetica fallback
argparseCLI —--debug,--no-pdf, custom file pathsfsyncon history append
Project
- Restructured into
tracker/,userscript/,tests/ - Migrated from
requirements.txttopyproject.toml - pytest suite added
Credits
- Original scraper concept: SH3LL
- Original engine: floriandiud