Add local-only cleanup commands for store stats, chat cleanup, group pruning, and age-based store cleanup. Rework group pruning so targets are listed first, dry-run never deletes, confirmation gates every destructive path, and active stale groups require an explicit include flag. Document the cleanup workflow across README and docs/, including the local-only semantics. Closes #210. Co-authored-by: Davy <95214375+thedavidweng@users.noreply.github.com>
52 lines
2.6 KiB
Markdown
52 lines
2.6 KiB
Markdown
# groups
|
|
|
|
Read when: listing, refreshing, inspecting, renaming, joining, leaving, inviting, pruning stale local group rows, or managing group participants.
|
|
|
|
`wacli groups` combines local group rows with live WhatsApp operations. Commands that mutate WhatsApp require writable mode.
|
|
|
|
## Commands
|
|
|
|
```bash
|
|
wacli groups list [--query TEXT] [--limit N]
|
|
wacli groups refresh
|
|
wacli groups info --jid GROUP_JID
|
|
wacli groups rename --jid GROUP_JID --name NAME
|
|
wacli groups leave --jid GROUP_JID
|
|
wacli groups participants add --jid GROUP_JID --user PHONE_OR_JID [--user ...]
|
|
wacli groups participants remove --jid GROUP_JID --user PHONE_OR_JID [--user ...]
|
|
wacli groups participants promote --jid GROUP_JID --user PHONE_OR_JID [--user ...]
|
|
wacli groups participants demote --jid GROUP_JID --user PHONE_OR_JID [--user ...]
|
|
wacli groups invite link get --jid GROUP_JID
|
|
wacli groups invite link revoke --jid GROUP_JID
|
|
wacli groups join --code INVITE_CODE
|
|
wacli groups prune [--days N] [--left-only=false|--include-active] [--dry-run] [--confirm]
|
|
```
|
|
|
|
## Notes
|
|
|
|
- Group JIDs use the `...@g.us` server.
|
|
- `list` reads local rows and hides groups marked left. Human output includes the group type (`group`, `community`, or `subgroup`) and parent community JID when known.
|
|
- `list --json` includes `IsParent` for communities and `LinkedParentJID` for subgroups.
|
|
- `refresh` fetches joined groups live and updates local rows, including WhatsApp Community hierarchy metadata exposed by whatsmeow.
|
|
- `info` fetches one group live and persists it, including whether the chat is a Community parent or linked subgroup.
|
|
- `leave` marks the group left locally after WhatsApp confirms.
|
|
- `prune` only deletes local group/chat/message rows from `wacli.db`. It does not leave WhatsApp groups or delete anything from WhatsApp servers.
|
|
- `prune` defaults to groups marked left locally. `--days N` limits left-group pruning to groups left more than `N` days ago.
|
|
- `prune --include-active --days N` also targets active groups whose last known local message is older than `N` days. Groups with no known local activity timestamp are skipped.
|
|
- Use `prune --dry-run` before deleting and `--confirm` only after reviewing the target list.
|
|
- Participant users accept phone numbers with common formatting or JIDs.
|
|
- Invite `revoke` resets the invite link.
|
|
|
|
## Examples
|
|
|
|
```bash
|
|
wacli groups list --query family
|
|
wacli groups refresh
|
|
wacli groups info --jid 123456789@g.us
|
|
wacli groups rename --jid 123456789@g.us --name "New name"
|
|
wacli groups participants add --jid 123456789@g.us --user "+1 (234) 567-8900"
|
|
wacli groups invite link get --jid 123456789@g.us
|
|
wacli groups join --code AbCdEfGhIjK
|
|
wacli groups prune --dry-run
|
|
```
|