Enhanced Twitter/X data management with browsing history tracking and webhook notifications.
Enhanced Twitter/X data management with browsing history tracking and webhook notifications.
This project is based on twitter-web-exporter by @prinsss. Thanks for the excellent work!
npm install
npm run build
Output: dist/memoizex.user.js
Once installed, a floating panel appears on Twitter/X pages:
like, bookmark, view{
"event": "like",
"timestamp": 1699999999999,
"data": {
"id": "1234567890",
"text": "Tweet content...",
"author": {
"id": "9876543210",
"screen_name": "username",
"name": "Display Name"
},
"url": "https://x.com/username/status/1234567890",
"created_at": "Mon Nov 06 12:00:00 +0000 2023",
"stats": {
"likes": 100,
"retweets": 50,
"replies": 20,
"quotes": 5,
"bookmarks": 10
},
"media": [
{ "type": "photo", "url": "https://..." }
],
"article": {
"id": "1234567890",
"title": "Article Title",
"preview_text": "Article preview...",
"url": "https://x.com/i/article/1234567890",
"cover_image_url": "https://..."
},
"quoted_tweet": {
"id": "0987654321",
"text": "Quoted content...",
"author": { "id": "...", "screen_name": "...", "name": "..." },
"url": "https://x.com/...",
"article": { "..." }
}
}
}
npm run dev # Start dev server with hot reload
npm run build # Production build
npm run lint # ESLint check
npm run preview # Preview production build
MemoizeX intercepts Twitter's GraphQL API responses by hooking XMLHttpRequest at page load. Captured data is stored locally in IndexedDB and can trigger configured webhooks.
Key constraints:
document-start to hook XHR before Twitter's codeGM_xmlhttpRequest for cross-origin webhook requestsMIT