From da7a3f1f215f8876da96570b8c0f4e42688bf88a Mon Sep 17 00:00:00 2001 From: "Kay Marquardt (Gnadelwartz)" Date: Sun, 13 Dec 2020 12:00:18 +0100 Subject: [PATCH] detect supergroup migration --- bashbot.sh | 18 +++++++++++++----- doc/2_usage.md | 8 ++++++-- 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/bashbot.sh b/bashbot.sh index 5c4a2d5..a54bd77 100755 --- a/bashbot.sh +++ b/bashbot.sh @@ -11,7 +11,7 @@ # This file is public domain in the USA and all free countries. # Elsewhere, consider it to be WTFPLv2. (wtfpl.net/txt/copying) # -#### $$VERSION$$ v1.2-dev2-3-gcdb63b8 +#### $$VERSION$$ v1.2-dev2-4-g22741d9 # # Exit Codes: # - 0 success (hopefully) @@ -304,7 +304,7 @@ declare -rx BOTTOKEN URL ME_URL UPD_URL GETFILE_URL declare -ax CMD declare -Ax UPD BOTSENT USER MESSAGE URLS CONTACT LOCATION CHAT FORWARD REPLYTO VENUE iQUERY -declare -Ax SERVICE NEWMEMBER LEFTMEMBER PINNED +declare -Ax SERVICE NEWMEMBER LEFTMEMBER PINNED MIGRATE export res CAPTION @@ -828,7 +828,7 @@ pre_process_message(){ local num="${1}" # unset everything to not have old values CMD=( ); iQUERY=( ); MESSAGE=(); CHAT=(); USER=(); CONTACT=(); LOCATION=(); unset CAPTION - REPLYTO=( ); FORWARD=( ); URLS=(); VENUE=( ); SERVICE=( ); NEWMEMBER=( ); LEFTMEMBER=( ); PINNED=( ) + REPLYTO=( ); FORWARD=( ); URLS=(); VENUE=( ); SERVICE=( ); NEWMEMBER=( ); LEFTMEMBER=( ); PINNED=( ); MIGRATE=( ) iQUERY[ID]="${UPD["result",${num},"inline_query","id"]}" CHAT[ID]="${UPD["result",${num},"message","chat","id"]}" USER[ID]="${UPD["result",${num},"message","from","id"]}" @@ -959,12 +959,20 @@ process_message() { fi # pinned message if [ -n "${UPD["result",${num},"message","pinned_message","message_id"]}" ]; then - SERVICE[PINNED]="$(JsonDecode "${UPD["result",${num},"message","pinned_message","message_id"]}")" + SERVICE[PINNED]="${UPD["result",${num},"message","pinned_message","message_id"]}" PINNED[ID]="${SERVICE[PINNED]}" PINNED[MESSAGE]="$(JsonDecode "${UPD["result",${num},"message","pinned_message","text"]}")" - [ -z "${MESSAGE[0]}" ] && [ -n "${SERVICE[PINNED]}" ] &&\ + [ -z "${MESSAGE[0]}" ] &&\ MESSAGE[0]="/_new_pinned_message ${USER[ID]} ${PINNED[ID]} ${PINNED[MESSAGE]}" fi + # migrate to super group + if [ -n "${UPD["result",${num},"message","migrate_to_chat_id"]}" ]; then + MIGRATE[TO]="${UPD["result",${num},"message","migrate_to_chat_id"]}" + MIGRATE[FROM]="${UPD["result",${num},"message","migrate_from_chat_id"]}" + SERVICE[MIGRATE]="${MIGRATE[FROM]} ${MIGRATE[TO]}" + [ -z "${MESSAGE[0]}" ] &&\ + MESSAGE[0]="/_migrate_chat ${SERVICE[MIGRATE]}" + fi # set SERVICE to yes if a service message was received [[ "${SERVICE[*]}" =~ ^[[:blank:]]*$ ]] || SERVICE[0]="yes" fi diff --git a/doc/2_usage.md b/doc/2_usage.md index ad43bd2..13411fa 100644 --- a/doc/2_usage.md +++ b/doc/2_usage.md @@ -186,10 +186,14 @@ e.g. if a new user joins a chat MESSAGE is set to "/_new_chat_user". * ```${MESSAGE}```: /_new_chat_title SENDER TEXT * ```${SERVICE[NEWPHOTO]}```: New Chat Picture * ```${MESSAGE}```: /_new_chat_picture SENDER URL - * ```${SERVICE[PINNED]}```: Pinned Message structure + * ```${SERVICE[PINNED]}```: Pinned MESSAGE ID * ```${MESSAGE}```: /_new_pinned_message SENDER ID * ```${PINNED[ID]}```: Id of pinned message * ```${PINNED[MESSAGE]}```: Message text of pinned message + * ```${SERVICE[MIGRATE]}```: Old and new group id + * ```${MESSAGE}```: /_migrate_chat MIGRATE_FROM MIGRATE_TO + * ```${MIGRATE[FROM]}```: Old group id + * ```${MIGRATE[TO]}```: New group id @@ -294,5 +298,5 @@ send_action "${CHAT[ID]}" "action" #### [Prev Create Bot](1_firstbot.md) #### [Next Advanced Usage](3_advanced.md) -#### $$VERSION$$ v1.2-11-g5db2ef6 +#### $$VERSION$$ v1.2-dev2-4-g22741d9