From 9719b8426739d61dbc41f57f727ab3387d9bbcc1 Mon Sep 17 00:00:00 2001 From: Dominika Liberda Date: Tue, 31 Aug 2021 09:01:39 +0200 Subject: [PATCH] * more exported properties --- tg.sh | 45 +++++++++++++++++++++++++++------------------ 1 file changed, 27 insertions(+), 18 deletions(-) diff --git a/tg.sh b/tg.sh index 658bc31..180a959 100755 --- a/tg.sh +++ b/tg.sh @@ -40,12 +40,8 @@ function _tg_get_updates() { curl -s "https://api.telegram.org/bot${TELEGRAM_TOKEN}/getUpdates?offset=$1&timeout=$2" | jq -c '.result[]' } -function _on_msg() { - jq -rc 'message.user.first_name' <<< "${_events[$i]}" - get $1 user.first_name - ${event[text]} - - echo "[msg] " +function _on_msg() { + echo "[msg] ${event[from_username]}: ${event[text]}" } function _on_edit() { @@ -105,37 +101,50 @@ while true; do declare -A event event[type]="$_msg_type" + event[json]="${_events[$i]}" if [[ "$_msg_type" == edited_message ]]; then - event[json]="${_events[$i]}" _on_edit elif [[ "$_event_type" == animation ]]; then - event[json]="${_events[$i]}" _on_animation elif [[ "$_event_type" == audio ]]; then - event[json]="${_events[$i]}" _on_audio elif [[ "$_event_type" == document ]]; then - event[json]="${_events[$i]}" _on_document elif [[ "$_event_type" == photo ]]; then - event[json]="${_events[$i]}" _on_photo elif [[ "$_event_type" == sticker ]]; then - event[json]="${_events[$i]}" _on_sticker elif [[ "$_event_type" == video ]]; then - event[json]="${_events[$i]}" _on_video elif [[ "$_event_type" == video_note ]]; then - event[json]="${_events[$i]}" _on_video_note elif [[ "$_event_type" == voice ]]; then - event[json]="${_events[$i]}" _on_voice else - event[json]="${_events[$i]}" - event[message_id]="$(jq '.message.message_id' <<< "${_events[$i]}")" - event[text]="$(jq '.message.text' <<< "${_events[$i]}")" + declare -a "_tmp=($(jq -r '.message | + [.message_id, + .from.id, + .from.is_bot, + .from.first_name, + .from.last_name, + .from.username, + .chat.id, + (if .chat.type == "private" then .chat.username else .chat.title end), + .chat.type, + .date, + .text] + | @sh' <<< "${_events[$i]}" | sed 's/[][`~!@#$%^&*():;<>.,?/\|{}=+-]/\\&/g' ))" + event[message_id]="${_tmp[0]}" + event[from_id]="${_tmp[1]}" + event[from_is_bot]="${_tmp[2]}" + event[from_first_name]="${_tmp[3]}" + event[from_last_name]="${_tmp[4]}" + event[from_username]="${_tmp[5]}" + event[chat_id]="${_tmp[6]}" + event[chat_title]="${_tmp[7]}" + event[chat_type]="${_tmp[8]}" + event[date]="${_tmp[9]}" + event[text]="${_tmp[10]}" _on_msg fi unset event