Humanize README and docs tone #3
@@ -1,5 +1,10 @@
|
|||||||
# Contributing
|
# Contributing
|
||||||
|
|
||||||
|
## Public mirror & issues
|
||||||
|
|
||||||
|
- **GitHub:** [github.com/Gitilia/SwipeAnything](https://github.com/Gitilia/SwipeAnything) — issues and small PRs welcome.
|
||||||
|
- Day-to-day CI runs on a private forge; the public repo is a push mirror. Prefer an issue before large adapter PRs.
|
||||||
|
|
||||||
Adapters are the whole point of this project — the swipe UI, keyboard
|
Adapters are the whole point of this project — the swipe UI, keyboard
|
||||||
shortcuts, drag gestures, undo stack, and settings form are all generic and
|
shortcuts, drag gestures, undo stack, and settings form are all generic and
|
||||||
work for any adapter that implements the contract below.
|
work for any adapter that implements the contract below.
|
||||||
|
|||||||
@@ -1,9 +1,8 @@
|
|||||||
# SwipeAnything
|
# SwipeAnything
|
||||||
|
|
||||||
Unleash the swipe on anything. Point it at a folder or a photo library, and
|
Triage any collection one card at a time: right = keep, left = reject. Point it
|
||||||
(via adapters) at your inbox, a database table, or whatever else you need to
|
at a folder, a photo library, or (via adapters) an inbox, a database table, or
|
||||||
triage — one card at a time, right = keep, left = reject, like a dating app
|
another queue source.
|
||||||
for your backlog.
|
|
||||||
|
|
||||||
## Why
|
## Why
|
||||||
|
|
||||||
@@ -27,31 +26,19 @@ see [CONTRIBUTING.md](CONTRIBUTING.md).
|
|||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
- Swipe (touch/mouse drag) or use the keyboard
|
- Swipe (touch/mouse drag) or keyboard shortcuts
|
||||||
- **Organize, not just triage:** map keys `0`–`9` to destination folders in
|
- Organize with keys `0`–`9`: map destination folders in Settings, then press a number or tap the chip to move the current file (undo brings it back)
|
||||||
Settings, then press a number (or tap the chip) to move the current file
|
- Inspect before deciding: press `i` for path, size, dates, and (on macOS) image dimensions and camera metadata; Reveal in Finder and Copy path
|
||||||
there. Undo brings it back.
|
- Non-destructive reject: moves files to `.swipeanything-trash/` (or Immich library trash); permanent delete only via confirm-guarded Empty trash
|
||||||
- **Inspect before deciding:** press `i` for path, size, dates, and (on
|
- Undo any number of steps back
|
||||||
macOS) image dimensions / camera metadata; Reveal in Finder + Copy path.
|
- Session resume after tab close, reload, or server restart (while underlying items are unchanged)
|
||||||
- Non-destructive by default: "reject" moves files to a `.swipeanything-trash/`
|
- Thumbnails on macOS via Quick Look (HEIC/HEIF, video poster frames); falls back to original file elsewhere
|
||||||
folder (or, for Immich, the library's own trash) — never a hard delete.
|
- Native Browse folder picker on macOS; type a path on other platforms
|
||||||
A separate, confirm-guarded "Empty trash" action is the only place that
|
- Live progress and per-action counts
|
||||||
permanently deletes anything.
|
- Generic settings UI: each adapter declares config fields and gets a form without custom frontend code
|
||||||
- Undo, any number of steps back
|
- Accessibility: live region announcements, labeled buttons, focus-trapped shortcuts dialog, visible focus rings, `role="progressbar"`
|
||||||
- Session resume: closing the tab, reloading, or restarting the server picks
|
- Zero build step: Node.js, Express, vanilla HTML/CSS/JS
|
||||||
up right where you left off (as long as the underlying items haven't changed)
|
- `npm test` covers folder adapter, Immich adapter (mocked API), and HTTP API end-to-end
|
||||||
- Real thumbnails on macOS (via Quick Look), including HEIC/HEIF and video
|
|
||||||
poster frames, with automatic fallback to the original file everywhere else
|
|
||||||
- Native "Browse…" folder picker on macOS; type a path anywhere else
|
|
||||||
- Live progress + per-action counts
|
|
||||||
- Generic settings UI: every adapter declares its own config fields and gets
|
|
||||||
a form for free — no adapter-specific frontend code required
|
|
||||||
- Accessible by default: live region announcements per card, labeled action
|
|
||||||
buttons, a focus-trapped shortcuts dialog, visible focus rings, and a real
|
|
||||||
`role="progressbar"`
|
|
||||||
- Zero build step: Node.js + Express + vanilla HTML/CSS/JS
|
|
||||||
- `npm test` runs a real test suite (folder adapter, Immich adapter with a
|
|
||||||
mocked API, and the HTTP API end-to-end) — no separate test server to stand up
|
|
||||||
- CI on every push/PR (Gitea Actions): `npm test` + gitleaks
|
- CI on every push/PR (Gitea Actions): `npm test` + gitleaks
|
||||||
|
|
||||||
## Quickstart
|
## Quickstart
|
||||||
|
|||||||
Reference in New Issue
Block a user