docs: document per-tab badges and release:push updates.json automation

This commit is contained in:
Jordan Wages 2025-08-23 00:30:56 -05:00
commit ff5b02d07c
2 changed files with 13 additions and 5 deletions

View file

@ -16,6 +16,14 @@ This add-on helps you collect and filter links from archive.org `https://archive
- Popup → Content: try `collectLinks` first; if no receiver exists, Popup → Background → inject content → retry collect. - Popup → Content: try `collectLinks` first; if no receiver exists, Popup → Background → inject content → retry collect.
- Popup → Background: `aria2.send` wraps `aria2.addUri` calls (batch) and keeps secrets out of page context. - Popup → Background: `aria2.send` wraps `aria2.addUri` calls (batch) and keeps secrets out of page context.
- Context menu: parent "Collect links…" with a dynamic submenu built per page ("Download/Copy All" and top file types). - Context menu: parent "Collect links…" with a dynamic submenu built per page ("Download/Copy All" and top file types).
- Popup → Background (badge): `popup.filteredCount` posts the current filtered count so the background can set a pertab badge.
### Badges (Pertab)
- Background maintains lightweight pertab state `{ url, isArchive, itemsCount, filteredCount }`.
- Default: on archive.org `/download/*` tabs, badge shows total item count; on other tabs, it is blank.
- When the popup filters change, it sends `popup.filteredCount`, and the badge shows that filtered count for the active tab.
- Badge updates on tab activation and URL changes; quick actions (copy/send) update only the current tabs badge.
### Storage Keys ### Storage Keys
@ -79,11 +87,10 @@ Suggested scripts (future): `npm test`, `npm run test:e2e` with Playwright.
## Release & Signing ## Release & Signing
- Addon ID and updates: `applications.gecko.id = "archive-org-link-grabber@jordanwages.com"` and `applications.gecko.update_url` points to the selfhosted updates JSON. - Addon ID and updates: `applications.gecko.id = "archive-org-link-grabber@jordanwages.com"` and `applications.gecko.update_url` points to the selfhosted updates JSON.
- Scripts: `release:prepare:*` (syncs `manifest.json`), `release:sign` (creates XPI under `releases/<version>/`). - Scripts: `release:prepare:*` (syncs `manifest.json`), `release:sign` (creates XPI under `releases/<version>/`), `release:push` (uploads artifacts and autoupdates/uploads `releases/updates.json`).
- Secrets: set `AMO_JWT_ISSUER` and `AMO_JWT_SECRET` locally (see `.env.example`); never commit them. - Secrets: set `AMO_JWT_ISSUER` and `AMO_JWT_SECRET` locally (see `.env.example`); never commit them.
## Commit & PR Guidelines ## Commit & PR Guidelines
- Conventional Commits: `feat:`, `fix:`, `docs:`, `chore:`, `refactor:`. - Conventional Commits: `feat:`, `fix:`, `docs:`, `chore:`, `refactor:`.
- Keep PRs small and focused; include motivation, UX screenshots for UI changes, test plan, and linked issues. - Keep PRs small and focused; include motivation, UX screenshots for UI changes, test plan, and linked issues.

View file

@ -30,7 +30,7 @@ Add-on for Firefox that enhances archive.org download pages (https://archive.org
- Send to aria2: pushes to your configured aria2 RPC server using `aria2.addUri`. - Send to aria2: pushes to your configured aria2 RPC server using `aria2.addUri`.
- Or use the pages context menu: rightclick → "Collect links…" for quick "All" or toptype actions. - Or use the pages context menu: rightclick → "Collect links…" for quick "All" or toptype actions.
Tip: The browser action badge shows counts when collecting/sending via context menu quick actions. Tip: The browser action badge is pertab and reactive: on archive.org download pages it defaults to the total number of links; when you adjust filters in the popup, it shows the filtered count for that tab. It updates as you switch tabs.
## Regex and Matching ## Regex and Matching
@ -141,7 +141,7 @@ For development, make changes and click “Reload” in `about:debugging` to pic
- Background is a nonmodule MV2 script. `src/lib/aria2-bg.js` exposes `addUri`, `addUrisBatch`, and `getVersion` on `globalThis` for background use. - Background is a nonmodule MV2 script. `src/lib/aria2-bg.js` exposes `addUri`, `addUrisBatch`, and `getVersion` on `globalThis` for background use.
- Context menu parent: "Collect links…" appears on archive.org `/download/*` pages; submenu is rebuilt dynamically for top file types per page. - Context menu parent: "Collect links…" appears on archive.org `/download/*` pages; submenu is rebuilt dynamically for top file types per page.
- BrowserAction badges show counts and state after collecting, copying, or sending. - BrowserAction badges are pertab: default to total links on archive pages; switch to filtered counts when the popup is used on that tab. They also show counts and state after quick actions (copy/send) scoped to the current tab.
## Contributing ## Contributing
@ -164,6 +164,7 @@ This project is not affiliated with archive.org or aria2. Use responsibly and re
- Set environment secrets locally (do not commit): `AMO_JWT_ISSUER=... AMO_JWT_SECRET=...` - Set environment secrets locally (do not commit): `AMO_JWT_ISSUER=... AMO_JWT_SECRET=...`
- Run: `npm run release:sign` - Run: `npm run release:sign`
- Artifacts land in `releases/<version>/` - Artifacts land in `releases/<version>/`
- Self-hosted updates: `releases/updates.json` is tracked; update with the new version and `update_link` like `https://add-ons.jordanwages.com/archive-org-link-grabber/releases/<version>/archive-org-link-grabber-<version>.xpi`. - Push (self-hosted): `npm run release:push` uploads the signed artifacts in `releases/<version>/` and prepares/uploads `releases/updates.json` automatically (deriving the `update_link` from the manifests `applications.gecko.update_url`).
- Ensure FTP env vars are set (see `.env.example`).
Notes: Keep AMO secrets local (see `.env.example`). CI is optional. You can tag releases with `git tag vX.Y.Z` and push tags if desired. Notes: Keep AMO secrets local (see `.env.example`). CI is optional. You can tag releases with `git tag vX.Y.Z` and push tags if desired.