2023-04-01 10:00:13 +08:00

123 lines
2.1 KiB
Bash

#!/bin/sh
. /lib/functions.sh
log() {
logger -t "TEXTING" "$@"
}
handle_numbers() {
let "NUMBERS = $NUMBERS + 1"
if [ $NUMBERS -eq $nindex ]; then
numch=$1
fi
}
do_numbers() {
local config=$1
config_list_foreach "$config" number handle_numbers
}
handle_messages() {
let "NUMBERS = $NUMBERS + 1"
if [ $NUMBERS -eq $nindex ]; then
numch=$1
fi
}
do_messages() {
local config=$1
config_list_foreach "$config" message handle_messages
}
sendmsg() {
nnum=$(uci -q get texting.texting.numbers)
mnum=$(uci -q get texting.texting.messages)
delay=$(uci -q get texting.texting.interval)
NUMBERS=0
RANDOM=$(date +%s%N | cut -b10-19)
RAN=$RANDOM
RAN1=${RAN:0:1}
if [ $RAN1 = "0" ]; then
RAN="1"$RAN
rlen=${#RAN}
if [ $rlen -gt 9 ]; then
RAN=${RAN:0:8}
fi
fi
nindex=$(( $RAN % $nnum + 1 ))
config_load texting
config_foreach do_numbers numbers
Phone=$numch
NUMBERS=0
RANDOM=$(date +%s%N | cut -b10-19)
RAN=$RANDOM
RAN1=${RAN:0:1}
if [ $RAN1 = "0" ]; then
RAN="1"$RAN
rlen=${#RAN}
if [ $rlen -gt 9 ]; then
RAN=${RAN:0:8}
fi
fi
nindex=$(( $RAN % $mnum + 1 ))
config_foreach do_messages messages
Message=$numch
/usr/lib/fullmenu/chksms.sh
if [ -e /tmp/texting ]; then
/usr/lib/sms/smsout.sh "$Phone" "$Message"
fi
}
checktime() {
shour=$(uci -q get texting.texting.starthour)
smin=$(uci -q get texting.texting.startmin)
ehour=$(uci -q get texting.texting.endhour)
emin=$(uci -q get texting.texting.endmin)
chour=$(date +%H)
cmin=$(date +%M)
if [ $shour -gt $chour ]; then
flag="0"
else
if [ $shour -eq $chour ]; then
if [ $smin -le $cmin ]; then
flag="1"
else
flag="0"
fi
else
flag="1"
fi
fi
if [ $flag = "1" ]; then
if [ $ehour -lt $chour ]; then
flag="0"
else
if [ $ehour -eq $chour ]; then
if [ $emin -lt $cmin ]; then
flag="0"
else
flag="1"
fi
else
flag="1"
fi
fi
fi
echo $flag
}
while true
do
running=$(checktime)
if [ $running = "1" ]; then
EN=$(uci -q get texting.setting.enabled)
if [ $EN = "1" ]; then
sendmsg
sleep $delay
fi
else
sleep 900
fi
done