diff --git a/tg.sh b/tg.sh index 070a69d..1db6826 100755 --- a/tg.sh +++ b/tg.sh @@ -97,7 +97,7 @@ function tg_start() { IFS=$'\n' _events=($(_tg_get_updates $_offset 10)) unset IFS - + for (( i=0; i<${#_events[@]}; i++ )); do declare -A event _msg_type="$(jq -r '(select(.message) | if .message.forward_date then "forwarded_message" else "message" end ), (select(.edited_message) | "edited_message")' <<< "${_events[$i]}")" @@ -123,7 +123,7 @@ function tg_start() { (if .chat.type == "private" then .chat.username else .chat.title end), .chat.type, .date, - .text, + (select(.text) | .text, select(.caption) | .caption), (if .reply_to_message then .reply_to_message | ( "true", @@ -186,7 +186,7 @@ function tg_start() { event[forward_date]="${_tmp[5]}" unset _tmp fi - + event[type]="$_msg_type" event[json]="${_events[$i]}" if [[ "$_msg_type" == edited_message ]]; then @@ -208,11 +208,23 @@ function tg_start() { event[document_file_id]="${_tmp[2]}" event[document_file_unique_id]="${_tmp[3]}" event[document_file_size]="${_tmp[4]}" - unset _tmp - + _on_document elif [[ "$_event_type" == photo ]]; then + _jq_to_array '(select(.message) | .message), (select(.edited_message) | .edited_message) | .photo[-1] | + [.file_id, + .file_unique_id, + .file_size, + .width, + .height] | @sh' <<< "${_events[$i]}" # stub - add more things to me! + event[photo_file_id]="${_tmp[0]}" + event[photo_file_unique_id]="${_tmp[1]}" + event[photo_file_size]="${_tmp[2]}" + event[photo_height]="${_tmp[3]}" + event[photo_width]="${_tmp[4]}" + unset _tmp + _on_photo elif [[ "$_event_type" == sticker ]]; then _on_sticker @@ -222,7 +234,7 @@ function tg_start() { _on_video_note elif [[ "$_event_type" == voice ]]; then _on_voice - else + else _on_msg fi unset event