add bin/send_file.sh, fix logging caption

This commit is contained in:
Kay Marquardt (Gnadelwartz) 2020-12-25 20:57:05 +01:00
parent 88d1de2009
commit 2ab00a2c57
4 changed files with 85 additions and 6 deletions

View File

@ -11,7 +11,7 @@
# This file is public domain in the USA and all free countries. # This file is public domain in the USA and all free countries.
# Elsewhere, consider it to be WTFPLv2. (wtfpl.net/txt/copying) # Elsewhere, consider it to be WTFPLv2. (wtfpl.net/txt/copying)
# #
#### $$VERSION$$ v1.2-dev2-74-g0b7cd8a #### $$VERSION$$ v1.2-dev2-77-g88d1de2
# #
# Exit Codes: # Exit Codes:
# - 0 success (hopefully) # - 0 success (hopefully)
@ -488,7 +488,7 @@ if detect_curl ; then
[ "$#" -lt 4 ] && return [ "$#" -lt 4 ] && return
if [ -n "$5" ]; then if [ -n "$5" ]; then
[ -n "${BASHBOTDEBUG}" ] &&\ [ -n "${BASHBOTDEBUG}" ] &&\
log_update "sendUpload CHAT=${1} WHAT=${2} FILE=${3} CAPT=${4}" log_update "sendUpload CHAT=${1} WHAT=${2} FILE=${3} CAPT=${5}"
# shellcheck disable=SC2086 # shellcheck disable=SC2086
res="$("${BASHBOT_CURL}" -s -k ${BASHBOT_CURL_ARGS} "$4" -F "chat_id=$1"\ res="$("${BASHBOT_CURL}" -s -k ${BASHBOT_CURL_ARGS} "$4" -F "chat_id=$1"\
-F "$2=@$3;${3##*/}" -F "caption=$5" | "${JSONSHFILE}" -b -n 2>/dev/null )" -F "$2=@$3;${3##*/}" -F "caption=$5" | "${JSONSHFILE}" -b -n 2>/dev/null )"

View File

@ -13,12 +13,12 @@
# AUTHOR: KayM (gnadelwartz), kay@rrr.de # AUTHOR: KayM (gnadelwartz), kay@rrr.de
# CREATED: 18.12.2020 12:27 # CREATED: 18.12.2020 12:27
# #
#### $$VERSION$$ v1.2-dev2-75-gf016598 #### $$VERSION$$ v1.2-dev2-77-g88d1de2
#=============================================================================== #===============================================================================
############ ############
# set where your bashbot lives # set where your bashbot lives
export BASHBOT_HOME BASHBOT_ETC BASHBOT_VAR export BASHBOT_HOME BASHBOT_ETC BASHBOT_VAR FILE_REGEX
# default: one dir up # default: one dir up
BASHBOT_HOME="$(cd "${BASH_SOURCE[0]%/*}" >/dev/null 2>&1 && pwd)/../" BASHBOT_HOME="$(cd "${BASH_SOURCE[0]%/*}" >/dev/null 2>&1 && pwd)/../"
@ -26,8 +26,8 @@ BASHBOT_HOME="$(cd "${BASH_SOURCE[0]%/*}" >/dev/null 2>&1 && pwd)/../"
# set you own BASHBOT_HOME if different, e.g. # set you own BASHBOT_HOME if different, e.g.
# BASHBOT_HOME="/usr/local/telegram-bot-bash" # BASHBOT_HOME="/usr/local/telegram-bot-bash"
BASHBOT_ETC="${BASHBOT_HOME}"
BASHBOT_VAR="${BASHBOT_HOME}" BASHBOT_VAR="${BASHBOT_HOME}"
BASHBOT_ETC="${BASHBOT_HOME}"
##### #####
# if files are not readable, eviroment is wrong or bashbot is not initialized # if files are not readable, eviroment is wrong or bashbot is not initialized
@ -41,6 +41,10 @@ else
source "${BASHBOT_HOME}/bashbot.sh" source "$1" source "${BASHBOT_HOME}/bashbot.sh" source "$1"
fi fi
# overwrite bot FILE regex to BASHBOT_ETC
# change this to the location you want to allow file uploads from
FILE_REGEX="${BASHBOT_ETC%/bin*}/.*"
# check for botconfig.jssh readable # check for botconfig.jssh readable
if [ ! -r "${BASHBOT_ETC}/botconfig.jssh" ]; then if [ ! -r "${BASHBOT_ETC}/botconfig.jssh" ]; then
echo "Bashbot config file in \"${BASHBOT_ETC}\" does not exist or is not readable." echo "Bashbot config file in \"${BASHBOT_ETC}\" does not exist or is not readable."

65
bin/send_file.sh Executable file
View File

@ -0,0 +1,65 @@
#!/bin/bash
#===============================================================================
#
# FILE: bin/send_file.sh
#
# USAGE: send_file.sh [-h|--help] "CHAT[ID]" "file" "caption ...." [debug]
#
# DESCRIPTION: send a file to the given user/group
#
# OPTIONS: CHAT[ID] - ID number of CHAT or BOTADMIN to send to yourself
# file - file to send, must be an absolute path or relative to pwd
# Note: must not contain .. or . and located below BASHBOT_ETC
# caption - message to send with file
#
# -h - display short help
# --help - this help
#
# Set BASHBOT_HOME to your installation directory
#
# LICENSE: WTFPLv2 http://www.wtfpl.net/txt/copying/
# AUTHOR: KayM (gnadelwartz), kay@rrr.de
# CREATED: 25.12.2020 20:24
#
#### $$VERSION$$ v1.2-dev2-77-g88d1de2
#===============================================================================
####
# parse args
SEND="upload_file"
case "$1" in
'')
echo "missing arguments"
;&
"-h"*)
echo 'usage: send_file [-h|--help] "CHAT[ID]" "file" "caption ...." [debug]'
exit 1
;;
'--h'*)
sed -n '3,/###/p' <"$0"
exit 1
;;
esac
# set bashbot environment
# shellcheck disable=SC1090
source "${0%/*}/bashbot_env.inc.sh" "$4" # $4 debug
####
# ready, do stuff here -----
if [ "$1" == "BOTADMIN" ]; then
CHAT="${BOT_ADMIN}"
else
CHAT="$1"
fi
FILE="$2"
[[ "$2" != "/"* ]] && FILE="${PWD}/$2"
# send message in selected format
"${SEND}" "${CHAT}" "${FILE}" "$3"
# output send message result
jssh_printDB "BOTSENT" | sort -r

View File

@ -33,6 +33,7 @@ Have FUN!
│   ├── send_message.sh # send message to given chat │   ├── send_message.sh # send message to given chat
│   ├── edit_message.sh # replace given message id in given chat │   ├── edit_message.sh # replace given message id in given chat
│   ├── send_broadcast.sh # send message to all known chats │   ├── send_broadcast.sh # send message to all known chats
│   ├── send_file.sh # send file to given chat
│   ├── bashbot_stats.sh # does what it says ... │   ├── bashbot_stats.sh # does what it says ...
│ │ │ │
│   └── bashbot_env.inc.sh # bashbot location included from scripts, adapt if needed │   └── bashbot_env.inc.sh # bashbot location included from scripts, adapt if needed
@ -122,6 +123,15 @@ bin/send_edit_message.sh "CHAT[ID]" "12345" "Done!"
["ID"] "12345" ["ID"] "12345"
``` ```
To send a file to one user or chat run the following command:
```bash
bin/send_file.sh "CHAT[ID]" "funny-pic.jpg" "enjoy this picture"
["OK"] "true"
["ID"] "12346"
```
Note: to get help about a script in bin/ run `scriptname.sh --help` Note: to get help about a script in bin/ run `scriptname.sh --help`
---- ----
@ -330,5 +340,5 @@ send_action "${CHAT[ID]}" "action"
#### [Prev Create Bot](1_firstbot.md) #### [Prev Create Bot](1_firstbot.md)
#### [Next Advanced Usage](3_advanced.md) #### [Next Advanced Usage](3_advanced.md)
#### $$VERSION$$ v1.2-dev2-71-gdca7a6d #### $$VERSION$$ v1.2-dev2-77-g88d1de2