Add local API actions for recent messages and unreads by scope.
This commit is contained in:
@@ -55,6 +55,13 @@ curl -X POST http://127.0.0.1:33384/message/current \
|
||||
| `/channels` | GET | Get list of rooms |
|
||||
| `/channel` | POST | Switch to a room |
|
||||
| `/message/current` | POST | Send message to current room |
|
||||
| `/room/current` | GET | Get current room info |
|
||||
| `/messages/groups` | GET | Last N messages across groups (`?limit=10`) |
|
||||
| `/messages/dms` | GET | Last N messages across DMs (`?limit=10`) |
|
||||
| `/messages/combined` | GET | Last N messages across groups + DMs (`?limit=10`) |
|
||||
| `/unreads/groups` | GET | Unread group conversations |
|
||||
| `/unreads/dms` | GET | Unread DM conversations |
|
||||
| `/unreads/combined` | GET | Unread groups + DMs |
|
||||
|
||||
## 🎮 Stream Deck Integration
|
||||
|
||||
|
||||
117
docs/API.md
117
docs/API.md
@@ -280,6 +280,123 @@ Get information about the currently active room.
|
||||
|
||||
---
|
||||
|
||||
### Get Recent Messages (Groups)
|
||||
|
||||
Get the most recent messages across joined group channels (non-DMs).
|
||||
|
||||
**Endpoint**: `GET /messages/groups`
|
||||
|
||||
**Query Parameters**:
|
||||
- `limit` (optional) — number of messages to return (1–100, default `10`)
|
||||
|
||||
**Response**:
|
||||
```json
|
||||
{
|
||||
"success": true,
|
||||
"data": {
|
||||
"scope": "groups",
|
||||
"limit": 10,
|
||||
"count": 2,
|
||||
"messages": [
|
||||
{
|
||||
"eventId": "$event1",
|
||||
"roomId": "!abc123:matrix.org",
|
||||
"roomName": "General",
|
||||
"isDirect": false,
|
||||
"sender": "@alice:matrix.org",
|
||||
"senderName": "Alice",
|
||||
"timestamp": 1710000000000,
|
||||
"msgtype": "m.text",
|
||||
"body": "Hello!"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Get Recent Messages (DMs)
|
||||
|
||||
Get the most recent messages across joined direct messages.
|
||||
|
||||
**Endpoint**: `GET /messages/dms`
|
||||
|
||||
**Query Parameters**:
|
||||
- `limit` (optional) — number of messages to return (1–100, default `10`)
|
||||
|
||||
**Response**: same shape as groups, with `"scope": "dms"`.
|
||||
|
||||
---
|
||||
|
||||
### Get Recent Messages (Combined)
|
||||
|
||||
Get the most recent messages across groups and DMs together.
|
||||
|
||||
**Endpoint**: `GET /messages/combined`
|
||||
|
||||
**Query Parameters**:
|
||||
- `limit` (optional) — number of messages to return (1–100, default `10`)
|
||||
|
||||
**Response**: same shape as groups, with `"scope": "combined"`.
|
||||
|
||||
---
|
||||
|
||||
### Get Unread Conversations (Groups)
|
||||
|
||||
List joined group channels that currently have unread activity.
|
||||
|
||||
**Endpoint**: `GET /unreads/groups`
|
||||
|
||||
**Response**:
|
||||
```json
|
||||
{
|
||||
"success": true,
|
||||
"data": {
|
||||
"scope": "groups",
|
||||
"count": 1,
|
||||
"unreads": [
|
||||
{
|
||||
"roomId": "!abc123:matrix.org",
|
||||
"name": "General",
|
||||
"isDirect": false,
|
||||
"avatar": "mxc://matrix.org/abc123",
|
||||
"total": 3,
|
||||
"highlight": 1,
|
||||
"latest": {
|
||||
"eventId": "$event1",
|
||||
"sender": "@alice:matrix.org",
|
||||
"senderName": "Alice",
|
||||
"timestamp": 1710000000000,
|
||||
"msgtype": "m.text",
|
||||
"body": "Hello!"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Muted rooms are excluded. Sorted by latest activity, then highlight/total counts.
|
||||
|
||||
---
|
||||
|
||||
### Get Unread Conversations (DMs)
|
||||
|
||||
**Endpoint**: `GET /unreads/dms`
|
||||
|
||||
**Response**: same shape as groups, with `"scope": "dms"`.
|
||||
|
||||
---
|
||||
|
||||
### Get Unread Conversations (Combined)
|
||||
|
||||
**Endpoint**: `GET /unreads/combined`
|
||||
|
||||
**Response**: same shape as groups, with `"scope": "combined"`.
|
||||
|
||||
---
|
||||
|
||||
## Error Responses
|
||||
|
||||
All endpoints return error responses in the following format:
|
||||
|
||||
@@ -50,6 +50,12 @@ No persistent storage. Actions read/write ephemeral app state (current room, cal
|
||||
| `send-message` | `{ roomId, message }` | send result |
|
||||
| `send-message-current` | `{ message }` | send to active room |
|
||||
| `get-current-room` | — | current room id |
|
||||
| `get-messages-groups` | `{ limit? }` | recent messages across group channels |
|
||||
| `get-messages-dms` | `{ limit? }` | recent messages across DMs |
|
||||
| `get-messages-combined` | `{ limit? }` | recent messages across groups + DMs |
|
||||
| `get-unreads-groups` | — | unread group conversations |
|
||||
| `get-unreads-dms` | — | unread DM conversations |
|
||||
| `get-unreads-combined` | — | unread groups + DMs |
|
||||
|
||||
## Dependencies
|
||||
|
||||
|
||||
Reference in New Issue
Block a user