39 lines
1.5 KiB
Markdown
39 lines
1.5 KiB
Markdown
# diigo-cache
|
|
|
|
Your diigo bookmarks, cached in a [workerd](https://github.com/cloudflare/workerd)
|
|
worker, with a public page you can filter by week:
|
|
`/public/<you>?in=2026-W41`. Your diigo session cookie
|
|
is stored in one Durable Object and nowhere else.
|
|
|
|
## Getting started
|
|
|
|
```sh
|
|
pnpm install
|
|
pnpm dev # → http://localhost:8787/
|
|
```
|
|
|
|
Then, in the browser:
|
|
|
|
1. **mint the diigo session at webapp**: paste the `Cookie` header from
|
|
diigo.com (devtools, any logged-in request).
|
|
2. **wire** it, mode **public**. Save the cache id it shows (the
|
|
password-manager button does this).
|
|
3. **open this cache** → **fill**, and watch it walk your bookmarks.
|
|
4. Visit `/public/<your diigo username>?days=7`.
|
|
|
|
## Bookmarks you hold, a page anyone can read
|
|
|
|
- **Filter by date and search:** `?days=7`, `?in=2026-W41` (ISO week,
|
|
UTC), `?after=2026-01-01&before=2026-02-01`, `?by=created`, and
|
|
`?q=` with words, `"phrases"`, `#tags`, `-negation`, and gmail-style
|
|
`newer_than:7d`. Add `Accept: application/json` for JSON.
|
|
- **Private stays private:** the public cache drops private bookmarks
|
|
before storing anything, so it never holds them.
|
|
- **Ids are capabilities:** the cache id is a bearer key you keep in
|
|
your password manager. It rides URL fragments and POST bodies, never a
|
|
path or query string, so it stays out of logs and history.
|
|
- **Cheap to read:** pages come from Durable Object SQLite storage, and
|
|
a fill job in the background fetches each diigo page once.
|
|
|
|
Design, tests, and deploying: [CONTRIBUTING](CONTRIBUTING.md).
|