From 7145d1818350af8d793bea68a354707248666fa3 Mon Sep 17 00:00:00 2001 From: Oxbian Date: Sun, 8 Oct 2023 22:02:22 +0200 Subject: Updating project to be POSIX sh and creating a man page --- matrix.sh | 135 -------------------------------------------------------------- 1 file changed, 135 deletions(-) delete mode 100755 matrix.sh (limited to 'matrix.sh') diff --git a/matrix.sh b/matrix.sh deleted file mode 100755 index 91a6904..0000000 --- a/matrix.sh +++ /dev/null @@ -1,135 +0,0 @@ -#!/bin/bash -# Script to send message to matrix - -#set -x - -# Matrix homeserver URL -MATRIX_HOMESERVER='' - -# MATRIX room ID -MATRIX_ROOM_ID='' - -# MATRIX token -MATRIX_TOKEN='' - -# Check if variable are set -check_var() { - if [ "$MATRIX_HOMESERVER" == '' ]; then - error "MATRIX_HOMESERVER variable not set" - fi - if [ "$MATRIX_ROOM_ID" == '' ]; then - error "MATRIX_ROOM_ID variable not set" - fi -} - -# Check if token is set -check_token() { - if [ "$MATRIX_TOKEN" == '' ]; then - error "MATRIX_TOKEN variable empty, use $0 -t " - fi -} - -# Display an error and leave -error() { - echo -e "\033[0;31m$@\033[0m" - exit 1 -} - -# Clean an input -clean() { - local input=$@ - printf '%s' "$input" | jq -Rs '.' -} - -# Make a request, $1 the CURL request -request() { - local request=$@ - local errorcode="$(jq -r '.errcode' <<< "$request")" - - if [[ "$errorcode" != "" && "$errorcode" != "null" ]]; then - error "[x] Erreur: "$(jq -r '.error' <<< "$request")"" - fi -} - -# Get the token of the account -# usage: ./matrix.sh -t -# get_token -get_token() { - check_var - local token=$(curl -XPOST -H "Content-Type: application/json" --data "{\"type\": \"m.login.password\", \"identifier\": {\"user\": \"$1\", \"type\": \"m.id.user\"}, \"password\": \"$2\"}" \ - "https://${MATRIX_HOMESERVER#https://}/_matrix/client/r0/login") - request $token - - token=$(echo "$token" | jq -r '.access_token') - sed -i -e "s#^MATRIX_TOKEN=.*#MATRIX_TOKEN=\'${token}\'#g" $0 - echo -e "\033[1;32m[V] Token succesfully added\033[0m" -} - -# Send a message -# usage: ./matrix.sh -s -# usage: ./matrix.sh -html -# send_message -send_message() { - check_var - check_token - local id=$(date +%s%N) # Message id - local message=$(clean "$@") - - if $HTML; then - local data="{\"msgtype\": \"m.text\", \"body\": $message, \"format\": \"org.matrix.custom.html\", \"formatted_body\": $message}" - else - local data="{\"body\": $message, \"msgtype\": \"m.text\"}" - fi - request $(curl -XPUT -H "Authorization: Bearer ${MATRIX_TOKEN}" -H "Content-Type: application/json" --data "$data" \ - "https://${MATRIX_HOMESERVER#https://}/_matrix/client/r0/rooms/$MATRIX_ROOM_ID/send/m.room.message/$id") - echo -e "\033[1;32m[v] Message sent\033[0m" -} - -# Show the help menu -help() { - echo "Usage: $0 " - echo "" - echo "Actions:" - echo " -h, --help show this menu" - echo " -t get the token of the account and save it" - echo " -s send a message" - echo " -html send an html message" -} - -# Main -hash curl >/dev/null 2>&1 || error "Curl is required!" -hash jq >/dev/null 2>&1 || error "jq is required!" - -action="" -case $1 in --t) - get_token $2 $3 - exit 0 - ;; - --s) - action="send" - shift - ;; - --html) - action="html" - shift - ;; - --h|--help|*) - help - exit 0 - ;; -esac - -MESSAGE=$@ -case $action in -send) - send_message "$MESSAGE" - ;; -html) - HTML="true" - send_message "$MESSAGE" - ;; -esac -- cgit v1.2.3