From 5ceddde4e8ae9785bf3b7710a990e750f0b24048 Mon Sep 17 00:00:00 2001 From: "Kay Marquardt (Gnadelwartz)" Date: Mon, 25 Jan 2021 19:44:45 +0100 Subject: [PATCH] modules: chatMember: promote_chat_member --- modules/chatMember.sh | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/modules/chatMember.sh b/modules/chatMember.sh index 091819e..faabeaa 100644 --- a/modules/chatMember.sh +++ b/modules/chatMember.sh @@ -5,7 +5,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.31-dev-0-gfe1fb75 +#### $$VERSION$$ v1.35-dev-8-gcc4ac1a # will be automatically sourced from bashbot @@ -68,6 +68,34 @@ leave_chat() { sendJson "$1" "" "${URL}/leaveChat" } +# $1 chat, $2 userid, $3 ... "right[:true]" default false +# right: is_anonymous change_info post_messages edit_messages delete_messages invite_users restrict_members pin_messages promote_member +promote_chat_member() { + local arg bool json chat="$1" user="$2; shift 2" + for arg in "$@" + do + # default false + bool=false; [ "${arg##*:}" = "true" ] && bool="true" + # expand args + case "${arg}" in + *"anon"*) arg="is_anonymous";; + *"change"*) arg="can_change_info";; + *"post"*) arg="can_post_messages";; + *"edit"*) arg="can_edit_messages";; + *"delete"*) arg="can_delete_messages";; + *"pin"*) arg="can_pin_messages";; + *"invite"*) arg="can_invite_users";; + *"restrict"*) arg="can_restrict_members";; + *"promote"*) arg="can_promote_members";; + *) [ -n "${BASHBOT_DEBUG}" ] && debug_log "${FUNCNAME[0]}: unknown promotion ${arg}" + continue;; + esac + # compose json + [ -n "${json}" ] && json+="," + json+='"'"${arg}"'": "'"${bool}"'"' + done + sendJson "${chat}" '"user_id":'"${user}"','"${json}"'' "${URL}/promoteChatMember" +} # bashbot specific functions ---------