diff options
Diffstat (limited to 'operators/command_short.zsh')
| -rw-r--r-- | operators/command_short.zsh | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/operators/command_short.zsh b/operators/command_short.zsh new file mode 100644 index 0000000..cc551e3 --- /dev/null +++ b/operators/command_short.zsh @@ -0,0 +1,46 @@ +# Copyright (C) 2024-2026 Maria Lisina +# Copyright (C) 2024-2026 Danil Lisin +# SPDX-License-Identifier: Apache-2.0 + +if [[ -n "${1}" ]] +then + short_query="${@}" + shift ${#} +else + output_text="You must specify query" + return +fi + +if [[ ${#short_query} -gt 256 ]] +then + output_text="Query is too long" + return +fi + +output_text="<b>Shortcut:</b> <code>$(htmlescape <<< "${short_query}")</code>" + +keyboard_text1="Open inline" +keyboard_query1="${short_query}" + +reply_markup="$( + jq --null-input --compact-output \ + --arg text1 "${keyboard_text1}" \ + --arg query1 "${keyboard_query1}" \ + '{"inline_keyboard": [[{"text": $text1, "switch_inline_query_current_chat": $query1}]]}' +)" + +short_query="short ${short_query}" + +if [[ ${#short_query} -le 64 ]] +then + keyboard_text1="Manage" + keyboard_data1="${short_query}" + + reply_markup="$( + jq --compact-output \ + --arg text1 "${keyboard_text1}" \ + --arg data1 "${keyboard_data1}" \ + '.inline_keyboard[0] += [{"text": $text1, "callback_data": $data1}]' \ + <<< "${reply_markup}" + )" +fi |
