123 lines
2.1 KiB
Bash
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 |