generated from camel.apache.org/kamelet
113 lines
4.7 KiB
YAML
113 lines
4.7 KiB
YAML
apiVersion: camel.apache.org/v1
|
|
kind: Kamelet
|
|
metadata:
|
|
name: telegram-sink
|
|
annotations:
|
|
camel.apache.org/kamelet.support.level: "Stable"
|
|
camel.apache.org/catalog.version: "4.10.2"
|
|
camel.apache.org/kamelet.icon: "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNDAgMjQwIj48ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9ImEiIHgxPSIuNjY3IiB4Mj0iLjQxNyIgeTE9Ii4xNjciIHkyPSIuNzUiPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iIzM3YWVlMiIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzFlOTZjOCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJiIiB4MT0iLjY2IiB4Mj0iLjg1MSIgeTE9Ii40MzciIHkyPSIuODAyIj48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiNlZmY3ZmMiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNmZmYiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48Y2lyY2xlIGN4PSIxMjAiIGN5PSIxMjAiIHI9IjEyMCIgZmlsbD0idXJsKCNhKSIvPjxwYXRoIGZpbGw9IiNjOGRhZWEiIGQ9Ik05OCAxNzVjLTMuODg4IDAtMy4yMjctMS40NjgtNC41NjgtNS4xN0w4MiAxMzIuMjA3IDE3MCA4MCIvPjxwYXRoIGZpbGw9IiNhOWM5ZGQiIGQ9Ik05OCAxNzVjMyAwIDQuMzI1LTEuMzcyIDYtM2wxNi0xNS41NTgtMTkuOTU4LTEyLjAzNSIvPjxwYXRoIGZpbGw9InVybCgjYikiIGQ9Ik0xMDAuMDQgMTQ0LjQxbDQ4LjM2IDM1LjcyOWM1LjUxOSAzLjA0NSA5LjUwMSAxLjQ2OCAxMC44NzYtNS4xMjNsMTkuNjg1LTkyLjc2M2MyLjAxNS04LjA4LTMuMDgtMTEuNzQ2LTguMzYtOS4zNDlsLTExNS41OSA0NC41NzFjLTcuODkgMy4xNjUtNy44NDMgNy41NjctMS40MzggOS41MjhsMjkuNjYzIDkuMjU5IDY4LjY3My00My4zMjVjMy4yNDItMS45NjYgNi4yMTgtLjkxIDMuNzc2IDEuMjU4Ii8+PC9zdmc+"
|
|
camel.apache.org/provider: "Apache Software Foundation"
|
|
camel.apache.org/kamelet.group: "Telegram"
|
|
camel.apache.org/kamelet.namespace: "Social"
|
|
labels:
|
|
camel.apache.org/kamelet.type: "sink"
|
|
spec:
|
|
definition:
|
|
title: "Telegram Sink"
|
|
description: |-
|
|
Send a message to a Telegram chat by using your Telegram bot as sender.
|
|
|
|
To create a bot, use your Telegram app to contact the @botfather account.
|
|
|
|
This sink supports the following message types:
|
|
|
|
- Standard text messages
|
|
- PNG images (`Content-Type` must be set to `image/png`)
|
|
- JPEG images (`Content-Type` must be set to `image/jpeg`)
|
|
|
|
This sink also supports the following message headers:
|
|
|
|
- `text` / `ce-text`: when sending an image, the image caption
|
|
- `chat-id` / `ce-chatid`: overrides the default chat where messages are sent to
|
|
required:
|
|
- authorizationToken
|
|
type: object
|
|
properties:
|
|
authorizationToken:
|
|
title: Token
|
|
description: "The token to access your bot on Telegram. You you can obtain it from the Telegram @botfather."
|
|
type: string
|
|
format: password
|
|
x-descriptors:
|
|
- urn:camel:group:credentials
|
|
chatId:
|
|
title: Chat ID
|
|
description: |-
|
|
The Chat ID to where you want to send messages by default.
|
|
|
|
Whilst the Chat ID is not a required Configuration Option it must be provided for every message; either as a Configuration Option or a `chat-id` / `ce-chatid` header.
|
|
type: string
|
|
types:
|
|
out:
|
|
mediaType: application/json
|
|
dependencies:
|
|
- "camel:core"
|
|
- "camel:jackson"
|
|
- "camel:kamelet"
|
|
- "camel:telegram"
|
|
template:
|
|
from:
|
|
uri: "kamelet:source"
|
|
steps:
|
|
- choice:
|
|
when:
|
|
- simple: "${header[Content-Type]} == 'image/png'"
|
|
steps:
|
|
- convertBodyTo:
|
|
type: "byte[]"
|
|
- setHeader:
|
|
name: CamelTelegramMediaType
|
|
constant: PHOTO_PNG
|
|
- simple: "${header[Content-Type]} == 'image/jpeg'"
|
|
steps:
|
|
- convertBodyTo:
|
|
type: "byte[]"
|
|
- setHeader:
|
|
name: CamelTelegramMediaType
|
|
constant: PHOTO_JPG
|
|
otherwise:
|
|
steps:
|
|
- convertBodyTo:
|
|
type: "java.lang.String"
|
|
- choice:
|
|
when:
|
|
- simple: "${header[text]}"
|
|
steps:
|
|
- setHeader:
|
|
name: CamelTelegramMediaTitleCaption
|
|
simple: "${header[text]}"
|
|
- simple: "${header[ce-text]}"
|
|
steps:
|
|
- setHeader:
|
|
name: CamelTelegramMediaTitleCaption
|
|
simple: "${header[ce-text]}"
|
|
- choice:
|
|
when:
|
|
- simple: "${header[chat-id]}"
|
|
steps:
|
|
- setHeader:
|
|
name: CamelTelegramChatId
|
|
simple: "${header[chat-id]}"
|
|
- simple: "${header[ce-chatid]}"
|
|
steps:
|
|
- setHeader:
|
|
name: CamelTelegramChatId
|
|
simple: "${header[ce-chatid]}"
|
|
- to:
|
|
uri: "telegram:bots"
|
|
parameters:
|
|
authorizationToken: "{{authorizationToken}}"
|
|
chatId: "{{?chatId}}"
|
|
- marshal:
|
|
json: {}
|