+ exporting document data and forwarded data

master
Dominika Liberda 2021-09-03 21:55:52 +02:00
parent 0970259080
commit b87b4cfe3a
1 changed files with 39 additions and 2 deletions

41
tg.sh
View File

@ -2,6 +2,7 @@
TELEGRAM_TOKEN=""
PARSE_MODE="MarkdownV2"
# _escape_text(input_text)
function _escape_text() {
sed 's/[][`~!@#$%^&*():;<>.,?\|{}=+-]/\\&/g' <<< "$1"
}
@ -99,7 +100,8 @@ function tg_start() {
for (( i=0; i<${#_events[@]}; i++ )); do
declare -A event
_msg_type="$(jq -r '(select(.message) | "message"), (select(.edited_message) | "edited_message")' <<< "${_events[$i]}")"
_msg_type="$(jq -r '(select(.message) | if .message.forward_date then "forwarded_message" else "message" end ), (select(.edited_message) | "edited_message")' <<< "${_events[$i]}")"
_event_type="$(jq -r '(select(.message) | .message), (select(.edited_message) | .edited_message) | (
(select(.animation) | "animation"),
(select(.audio) | "audio"),
@ -164,6 +166,26 @@ function tg_start() {
else
event[reply]=false
fi
unset _tmp
if [[ "$_msg_type" == "forwarded_message" ]]; then
_jq_to_array '.message |
[.forward_from.id,
.forward_from.is_bot,
.forward_from.first_name,
.forward_from.last_name,
.forward_from.username,
.forward_date] | @sh' <<< "${_events[$i]}"
event[forward_id]="${_tmp[0]}"
event[forward_is_bot]="${_tmp[1]}"
event[forward_first_name]="${_tmp[2]}"
event[forward_last_name]="${_tmp[3]}"
event[forward_username]="${_tmp[4]}"
event[forward_date]="${_tmp[5]}"
unset _tmp
fi
event[type]="$_msg_type"
event[json]="${_events[$i]}"
@ -174,6 +196,21 @@ function tg_start() {
elif [[ "$_event_type" == audio ]]; then
_on_audio
elif [[ "$_event_type" == document ]]; then
_jq_to_array '(select(.message) | .message), (select(.edited_message) | .edited_message) | .document |
[.file_name,
.mime_type,
.file_id,
.file_unique_id,
.file_size] | @sh' <<< "${_events[$i]}"
event[document_file_name]="${_tmp[0]}"
event[document_mime_type]="${_tmp[1]}"
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
_on_photo
@ -186,7 +223,7 @@ function tg_start() {
elif [[ "$_event_type" == voice ]]; then
_on_voice
else
_on_msg
_on_msg
fi
unset event
done