add documentation for inline keyboards

This commit is contained in:
Kay Marquardt (Gnadelwartz) 2019-04-25 16:59:17 +02:00
parent 8f4b1688bd
commit 8b8da67465
4 changed files with 55 additions and 32 deletions

View File

@ -12,7 +12,7 @@
# This file is public domain in the USA and all free countries.
# Elsewhere, consider it to be WTFPLv2. (wtfpl.net/txt/copying)
#
#### $$VERSION$$ v0.70-dev3-3-g0f220bd
#### $$VERSION$$ v0.70-dev3-4-g8f4b168
#
# Exit Codes:
# - 0 sucess (hopefully)
@ -166,7 +166,7 @@ export BOTSENT USER MESSAGE URLS CONTACT LOCATION CHAT FORWARD REPLYTO VENUE
send_normal_message() {
text="$2"
until [ "$(echo -n "$text" | wc -m)" -eq "0" ]; do
res="$(curl -s "$MSG_URL" -d "chat_id=$1" --data-urlencode "text=${text:0:4096}")"
sendJson "${1}" '"text":"'"${text:0:4096}"'"' "$MSG_URL"
text="${text:4096}"
done
}
@ -174,7 +174,7 @@ send_normal_message() {
send_markdown_message() {
text="$2"
until [ "$(echo -n "$text" | wc -m)" -eq "0" ]; do
res="$(curl -s "$MSG_URL" -d "chat_id=$1" --data-urlencode "text=${text:0:4096}" -d "parse_mode=markdown" -d "disable_web_page_preview=true")"
sendJson "${1}" '"text":"'"${text:0:4096}"'","parse_mode":"markdown"' "$MSG_URL"
text="${text:4096}"
done
}
@ -182,7 +182,7 @@ send_markdown_message() {
send_html_message() {
text="$2"
until [ "$(echo -n "$text" | wc -m)" -eq "0" ]; do
res="$(curl -s "$MSG_URL" -d "chat_id=$1" --data-urlencode "text=${text:0:4096}" -d "parse_mode=html")"
sendJson "${1}" '"text":"'"${text:0:4096}"'","parse_mode":"html"' "$MSG_URL"
text="${text:4096}"
done
}
@ -352,7 +352,7 @@ send_inline_button() {
# usage: sendJson "chat" "JSON" "URL"
sendJson(){
res="$(curl -d '{"chat_id":'"${1}"', '"$2"'}' -H "Content-Type: application/json" \
res="$(curl -s -d '{"chat_id":'"${1}"', '"$2"'}' -H "Content-Type: application/json" \
-X POST "${3}" | "${JSONSHFILE}" -s -b -n )"
BOTSENT[OK]="$(echo "$res" | JsonGetLine '"ok"')"
BOTSENT[ID]="$(echo "$res" | JsonGetValue '"result","message_id"')"

View File

@ -3,7 +3,7 @@
#
# works together with git pre-push.sh and ADD all changed files since last push
#### $$VERSION$$ v0.70-dev3-3-g0f220bd
#### $$VERSION$$ v0.70-dev3-4-g8f4b168
# magic to ensure that we're always inside the root of our application,
# no matter from which directory we'll run script
@ -25,6 +25,3 @@ do
done
echo "done."
# shellcheck disable=SC2086
git add ${FILES}

View File

@ -10,7 +10,6 @@
*"action":* ```typing```, ```upload_photo```, ```record_video```, ```upload_video```, ```record_audio```, ```upload_audio```, ```upload_document```, ```find_location```.
*example:*
```bash
send_action "${CHAT[ID]}" "typing"
@ -37,8 +36,8 @@ Telegram supports a [reduced set of Markdown](https://core.telegram.org/bots/api
*example:*
```bash
send_normal_message "${CHAT[ID]}" "this is a markdown message, next word is *bold*"
send_normal_message "${CHAT[ID]}" "*bold* _italic_ [text](link)"
send_markdown_message "${CHAT[ID]}" "this is a markdown message, next word is *bold*"
send_markdown_message "${CHAT[ID]}" "*bold* _italic_ [text](link)"
```
##### send_html_message
@ -126,6 +125,33 @@ send_keyboard "${CHAT[ID]}" "Enter digit" "[ \\"1\\" , \\"2\\" , \\"3\\" ] , [ \
##### remove_keyboard
*usage:* remove_keybord "$CHAT[ID]" "message"
#### send_inline_button
*usage:* send_inine_button "chat-id" "message" "Button text" "Buttton URL"
*alias:* _inline_button "Button text" "Buttton URL"
*example:*
```bash
send_inline_button "${CHAT[ID]}" "MAKE MONEY FAST!!!" "Visit my Shop" "https://dealz.rrr.de"
```
#### send_inline_keyboard
An inline keyboard is used to place multiple inline buttons in a row. The inline buttons must specified as a JSON array in the following format. Each button consists of a text for the button and an URL to got to if the button is clicked, button definitions
are sourrounded by a pair of '**{ }**' and seperated by a '**,**'.
```[ {"text":"text1", "url":"url1"}, ... {"text":"textN", "url":"urlN"} ]```
*usage:* send_inline_keyboard "chat-id" "message" "[{"text":"text", "url":"url"} ...]"
*alias:* _inline_keyboard "[{"text":"text", "url":"url"} ...]"
*example:*
```bash
send_inline_keyboard "${CHAT[ID]}" "MAKE MONEY FAST!!!" '[{"text":"Visit my Shop", url"":"https://dealz.rrr.de"}]'
send_inline_keyboard "${CHAT[ID]}" "" '[{"text":"button 1", url"":"url 1"}, {"text":"button 2", url"":"url 2"} ]'
send_inline_keyboard "${CHAT[ID]}" "" '[{"text":"b 1", url"":"u 1"}, {"text":"b 2", url"":"u 2"}, {"text":"b 2", url"":"u 2"} ]'
```
----
### Manage users
@ -135,21 +161,21 @@ If your Bot is Admin of a chat he can kick and ban a user.
*usage:* kick_chat_member "${CHAT[ID]}" "${USER[ID]}"
*alias* _kick_user "${USER[ID]}"
*alias:* _kick_user "${USER[ID]}"
##### unban_chat_member
If your Bot is Admin of a chat he can unban a kicked user.
*usage:* unban_chat_member "${CHAT[ID]}" "${USER[ID]}"
*alias* _unban "${USER[ID]}"
*alias:* _unban "${USER[ID]}"
##### leave_chat
Bot will leave given chat.
*usage:* leave_chat "${CHAT[ID]}"
*alias* _leave
*alias:* _leave
```bash
if _is_admin ; then
@ -218,19 +244,19 @@ You must use ```source modules/aliases.sh``` in commands.sh or mycommands.sh to
*usage:* _is_botadmin
*alias for* user_is_botadmin "${USER[ID]}"
*alias for:* user_is_botadmin "${USER[ID]}"
#### _is_admin
*usage:* _is_admin
*alias for* user_is_admin "${CHAT[ID]}" "${USER[ID]}"
*alias for:* user_is_admin "${CHAT[ID]}" "${USER[ID]}"
#### _is_allowed
*usage:* _is_allowed "what"
*alias for* user_is_allowed "${USER[ID]}" "what" "${CHAT[ID]}"
*alias for:* user_is_allowed "${USER[ID]}" "what" "${CHAT[ID]}"
----
@ -238,19 +264,19 @@ You must use ```source modules/aliases.sh``` in commands.sh or mycommands.sh to
*usage:* _kick_user "${USER[ID]}"
*alias for* kick_chat_member "${CHAT[ID]}" "${USER[ID]}"
*alias for:* kick_chat_member "${CHAT[ID]}" "${USER[ID]}"
##### unban_chat_member
*usage:* _unban "${USER[ID]}"
*alias for* unban_chat_member "${CHAT[ID]}" "${USER[ID]}"
*alias for:* unban_chat_member "${CHAT[ID]}" "${USER[ID]}"
##### leave_chat
*usage:* _leave
*alias for* leave_chat "${CHAT[ID]}"
*alias for:* leave_chat "${CHAT[ID]}"
----
@ -258,25 +284,25 @@ You must use ```source modules/aliases.sh``` in commands.sh or mycommands.sh to
*usage:* _message "message"
*alias for* send_normal_message "${CHAT[ID]}" "message"
*alias for:* send_normal_message "${CHAT[ID]}" "message"
#### _normal_message
*usage:* _normal_message "message"
*alias for* send_normal_message "${CHAT[ID]}" "message"
*alias for:* send_normal_message "${CHAT[ID]}" "message"
#### _html_message
*usage:* _html_message "message"
*alias for* send_html_message "${CHAT[ID]}" "message"
*alias for:* send_html_message "${CHAT[ID]}" "message"
#### _markdown_message
*usage:* _markdown_message "message"
*alias for* send_markdown_message "${CHAT[ID]}" "message"
*alias for:* send_markdown_message "${CHAT[ID]}" "message"
----
@ -445,5 +471,5 @@ Send Input from Telegram to waiting Interactive Chat.
#### [Prev Best Practice](5_practice.md)
#### [Next Notes for Developers](7_develop.md)
#### $$VERSION$$ v0.70-dev2-27-g2da31c1
#### $$VERSION$$ v0.70-dev3-4-g8f4b168

View File

@ -5,7 +5,7 @@
# This file is public domain in the USA and all free countries.
# Elsewhere, consider it to be WTFPLv2. (wtfpl.net/txt/copying)
#
#### $$VERSION$$ v0.70-dev2-27-g2da31c1
#### $$VERSION$$ v0.70-dev3-4-g8f4b168
#
# source from commands.sh to use the aliases
@ -46,17 +46,17 @@ _markdown_message() {
}
# easy handling of keyboards
_inline_button() {
send_inline_button "${CHAT[ID]}" "${1}" "${2}" "${3}"
send_inline_button "${CHAT[ID]}" "" "${1}" "${2}"
}
_inline_keyboard() {
send_inline_keyboard "${CHAT[ID]}" "${1}" "${2}"
send_inline_keyboard "${CHAT[ID]}" "" "${1}"
}
_keyboard_numpad() {
send_keyboard "${CHAT[ID]}" "${1}" '["1","2","3"],["4","5","6"],["7","8","9"],["-","0","."]' "yes"
send_keyboard "${CHAT[ID]}" "" '["1","2","3"],["4","5","6"],["7","8","9"],["-","0","."]' "yes"
}
_keyboard_yesno() {
send_keyboard "${CHAT[ID]}" "${1}" '["yes","no"]'
send_keyboard "${CHAT[ID]}" "" '["yes","no"]'
}
_del_keyboard() {
remove_keyboard "${CHAT[ID]}" "${1}"
remove_keyboard "${CHAT[ID]}" ""
}