selected_messages.
context.event.channel (example: telegram)
context.event.update_id (preferred)
event_id, delivery_id, id
python3 scripts/openclaw_quote_autoreply.py --input
MEDIA: for delivery.
selected_messages (array, must not be empty)
context.event for dedupe accuracy
channel (string)
update_id (string or number, preferred)
event_id / delivery_id / id (fallback keys)
```json5
{
"message": {
"message_id": 2002,
"text": "Forwarded message content",
"forward_from": {
"type": "hidden_user", // optional, indicates hidden user
"id": 123456789, // optional, user id
"first_name": "张", // required, first name or nickname
"last_name": "三", // optional, last name
"avatar_url": "", // optional, avatar url or base64 data (from user profile or platform API)
"status_url": "" // optional, status url or base64 data (from user profile or platform API)
}
},
// Optional: override message fields
"overwrite_message": {
"text": "哈哈哈哈哈",
"forward_from": {
"avatar_url": "", // from user profile or platform API
"status_url": "" // from user profile or platform API
},
"entities": [ // optional, text formatting entities
{"type": "bold", "offset": 0, "length": 4},
{"type": "italic", "offset": 5, "length": 4}
]
}
}
```
width, height, scale, max_width, border_radius, picture_radius, background_color
The skill supports Telegram-style message entities for text formatting:
[
{"type": "bold", "offset": 0, "length": 5},
{"type": "italic", "offset": 6, "length": 6},
{"type": "url", "offset": 13, "length": 15, "url": "https://example.com"}
]
Supported types: mention, hashtag, cashtag, bot_command, url, email, phone_number, bold, italic, underline, strikethrough, spoiler, code, pre, text_link, text_mention, custom_emoji
Entity fields:
type (required) - entity type
offset (required) - UTF-8 offset in text
length (required) - UTF-8 length
url (optional) - for text_link type
user (optional) - for text_mention type
language (optional) - for pre type
custom_emoji_id (optional) - for custom_emoji type
overwrite_message.text > message.text
overwrite_message.forward_from > message.forward_from
overwrite_message.entities > message.entities > message.caption_entities
Quote sticker generated.
MEDIA:
MEDIA: line is emitted.
QUOTLY_API_URL - QuotLy API endpoint (default: https://bot.lyo.su/quote/generate).
QUOTLY_API_ALLOW_HOSTS - Comma-separated list of allowed API hosts (e.g., bot.lyo.su). When set, the skill will only contact hosts in this list.
QUOTLY_AUDIT_LOG - Set to 1, true, or yes to enable audit logging to stderr.
QUOTLY_DEDUP_WINDOW_SECONDS - Suppress duplicate requests for the same event/payload within this window (default: 180). Set to 0 to disable.
_build_dedupe_key reads input)
_build_dedupe_key(input_payload) resolves keys in this order:
context.event.update_id (or event_id / delivery_id / id)
event.update_id (or event_id / delivery_id / id) when context.event is missing
context.event.update.update_id (nested update object)
selected_messages
Recommended wrapper payload:
{
"context": {
"event": {
"channel": "telegram",
"update_id": 123456789
}
},
"selected_messages": [
{
"message": {
"message_id": 2002,
"text": "Forwarded message content"
}
}
]
}
.. and suspicious path patterns
QUOTLY_AUDIT_LOG=1 to log API requests and responses for security monitoring
QUOTLY_API_ALLOW_HOSTS to restrict which hosts the skill can contact.
共 1 个版本