luci-app-serverchan: delete repeat package in jsda & fix some error
This commit is contained in:
parent
fd5cb05691
commit
62243e0317
@ -50,7 +50,8 @@ Package Openwrt-BBR: [anshi233/Openwrt-BBR](https://github.com/anshi233/Openwrt-
|
||||
simple-obfs source: [aa65535/openwrt-simple-obfs](https://github.com/aa65535/openwrt-simple-obfs).<br/>
|
||||
v2ray-plugin source: [honwen/openwrt-v2ray-plugin](https://github.com/honwen/openwrt-v2ray-plugin).<br/>
|
||||
Package zxlhhyccc: [zxlhhyccc/MY-lede](https://github.com/zxlhhyccc/MY-lede).<br/>
|
||||
luci-theme-argonv3 source: [Meroser/luci-theme-argon](https://github.com/Meroser/luci-theme-argon).
|
||||
luci-theme-argonv3 source: [Meroser/luci-theme-argon](https://github.com/Meroser/luci-theme-argon).<br/>
|
||||
luci-theme-darkmatter source: [apollo-ng/luci-theme-darkmatter](https://github.com/apollo-ng/luci-theme-darkmatter).
|
||||
|
||||
# License
|
||||
### [GPL v3](https://www.gnu.org/licenses/gpl-3.0.html).
|
||||
|
||||
@ -16,9 +16,9 @@ include $(TOPDIR)/feeds/luci/luci.mk
|
||||
|
||||
define Package/$(PKG_NAME)/postinst
|
||||
#!/bin/sh
|
||||
chmod +X /etc/init.d/serverchan
|
||||
chmod +X /usr/bin/serverchan/serverchan
|
||||
/etc/init.d/serverchan enable >/dev/null 2>&1
|
||||
chmod 0755 /etc/init.d/serverchan
|
||||
chmod 0755 /usr/bin/serverchan/serverchan
|
||||
/etc/init.d/serverchan enable
|
||||
exit 0
|
||||
endef
|
||||
|
||||
|
||||
@ -1,15 +0,0 @@
|
||||
#
|
||||
#-- Copyright (C) 2018 dz <dingzhong110@gmail.com>
|
||||
#
|
||||
# This is free software, licensed under the Apache License, Version 2.0 .
|
||||
#
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
LUCI_TITLE:=LuCI Support for serverchan
|
||||
LUCI_DEPENDS:=
|
||||
PKG_VERSION:=1.8
|
||||
|
||||
include $(TOPDIR)/feeds/luci/luci.mk
|
||||
|
||||
# call BuildPackage - OpenWrt buildroot signature
|
||||
@ -1,14 +0,0 @@
|
||||
#-- Copyright (C) 2018 dz <dingzhong110@gmail.com>
|
||||
|
||||
module("luci.controller.serverchan", package.seeall)
|
||||
|
||||
function index()
|
||||
if not nixio.fs.access("/etc/config/serverchan") then
|
||||
return
|
||||
end
|
||||
|
||||
local page
|
||||
|
||||
page = entry({"admin", "services", "serverchan"}, cbi("serverchan"), _("serverchan"), 60)
|
||||
page.dependent = true
|
||||
end
|
||||
@ -1,56 +0,0 @@
|
||||
#-- Copyright (C) 2018 dz <dingzhong110@gmail.com>
|
||||
|
||||
require("nixio.fs")
|
||||
require("luci.http")
|
||||
|
||||
m = Map("serverchan", translate("serverchan"))
|
||||
|
||||
if luci.sys.call("pgrep -f serverchan >/dev/null") == 0 then
|
||||
m = Map("serverchan", translate("serverchan"), "%s - %s" %{translate("serverchan"), translate("<strong><font color=\"green\">Running</font></strong>")})
|
||||
else
|
||||
m = Map("serverchan", translate("serverchan"), "%s - %s" %{translate("serverchan"), translate("<strong><font color=\"red\">Not Running</font></strong>")})
|
||||
end
|
||||
|
||||
-- Basic
|
||||
s = m:section(TypedSection, "serverchan", translate("Settings"), translate("General Settings"))
|
||||
s.anonymous = true
|
||||
|
||||
---- Eanble
|
||||
enable = s:option(Flag, "enabled", translate("Enable"), translate("Enable or disable serverchan"))
|
||||
enable.default = 0
|
||||
enable.rmempty = false
|
||||
|
||||
o = s:option(Value, "serverchan_sckey", translate("Serverchan Sckey"), translate("Serverchan Sckey").."<br>调用代码获取<a href='http://sc.ftqq.com'>点击这里</a><br><br>")
|
||||
o.rmempty = false
|
||||
|
||||
new_ip = s:option(Flag, "new_ip", translate("IP Change of External Network"))
|
||||
new_ip.default = 1
|
||||
new_ip.rmempty = false
|
||||
|
||||
new_equipment = s:option(Flag, "new_equipment", translate("New equipment added"))
|
||||
new_equipment.default = 1
|
||||
new_equipment.rmempty = false
|
||||
|
||||
equipment = s:option(Flag, "equipment", translate("Equipment Up and Down"))
|
||||
equipment.default = 1
|
||||
equipment.rmempty = false
|
||||
|
||||
proxy = s:option(Flag, "proxy", translate("Proxy State"))
|
||||
proxy.default = 1
|
||||
proxy.rmempty = false
|
||||
|
||||
o = s:option(ListValue, "starttime", translate("starttime (every day)"))
|
||||
for t = 0,23 do
|
||||
o:value(t, t..":00")
|
||||
end
|
||||
o.default=0
|
||||
o.rmempty = false
|
||||
|
||||
o = s:option(ListValue, "endtime", translate("endtime (every day)"))
|
||||
for t = 0,23 do
|
||||
o:value(t, t..":00")
|
||||
end
|
||||
o.default=23
|
||||
o.rmempty = false
|
||||
|
||||
return m
|
||||
@ -1,44 +0,0 @@
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
||||
msgid "serverchan"
|
||||
msgstr "微信消息推送"
|
||||
|
||||
msgid "<strong><font color=\"green\">Running</font></strong>"
|
||||
msgstr "<strong><font color=\"green\">运行</font></strong>"
|
||||
|
||||
msgid "<strong><font color=\"red\">Not Running</font></strong>"
|
||||
msgstr "<strong><font color=\"red\">未运行</font></strong>"
|
||||
|
||||
msgid "Settings"
|
||||
msgstr "设置"
|
||||
|
||||
msgid "General Settings"
|
||||
msgstr "基本设置"
|
||||
|
||||
msgid "Enable"
|
||||
msgstr "启用"
|
||||
|
||||
msgid "Enable or disable serverchan"
|
||||
msgstr "启用或禁用微信消息推送"
|
||||
|
||||
msgid "Serverchan Sckey"
|
||||
msgstr "微信消息推送调用代码"
|
||||
|
||||
msgid "IP Change of External Network"
|
||||
msgstr "外网IP变化推送"
|
||||
|
||||
msgid "New equipment added"
|
||||
msgstr "新设备加入推送"
|
||||
|
||||
msgid "Equipment Up and Down"
|
||||
msgstr "设备上下线推送"
|
||||
|
||||
msgid "Proxy State"
|
||||
msgstr "代理状态推送"
|
||||
|
||||
msgid "starttime (every day)"
|
||||
msgstr "启用推送时间(每天)"
|
||||
|
||||
msgid "endtime (every day)"
|
||||
msgstr "关闭推送时间(每天)"
|
||||
@ -1,4 +0,0 @@
|
||||
|
||||
config serverchan 'config'
|
||||
option enabled '0'
|
||||
|
||||
@ -1,29 +0,0 @@
|
||||
#!/bin/sh /etc/rc.common
|
||||
|
||||
START=99
|
||||
|
||||
start() {
|
||||
enable=$(uci get serverchan.@serverchan[0].enabled)
|
||||
if [ $enable -eq 1 ]; then
|
||||
echo "enable"
|
||||
kill -9 $(ps | grep serverchan.sh | grep -v "grep" | awk '{print $1}') >/dev/null 2>&1
|
||||
sleep 1
|
||||
nohup /usr/share/serverchan/serverchan.sh > /var/log/serverchan.file 2>&1 &
|
||||
fi
|
||||
}
|
||||
|
||||
stop() {
|
||||
enable=$(uci get serverchan.@serverchan[0].enabled)
|
||||
if [ $enable -ne 1 ]; then
|
||||
echo "stop!"
|
||||
kill $(pidof serverchan) >/dev/null 2>&1
|
||||
kill -9 $(ps | grep serverchan.sh | grep -v "grep" | awk '{print $1}') >/dev/null 2>&1
|
||||
fi
|
||||
}
|
||||
|
||||
restart(){
|
||||
stop
|
||||
sleep 2
|
||||
start
|
||||
echo "restarted."
|
||||
}
|
||||
@ -1,11 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
uci -q batch <<-EOF >/dev/null
|
||||
delete ucitrack.@serverchan[-1]
|
||||
add ucitrack serverchan
|
||||
set ucitrack.@serverchan[-1].init=serverchan
|
||||
commit ucitrack
|
||||
EOF
|
||||
|
||||
rm -f /tmp/luci-indexcache
|
||||
exit 0
|
||||
@ -1,180 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
#####################################
|
||||
#
|
||||
#更新日期2018.1.14
|
||||
#修改你的SCKEY
|
||||
#Log文件在 /var/log/server_chan.log 默认保存500条,可修改
|
||||
#缓存文件在/root/var/ 可修改
|
||||
#${dir}mac_name文件保存已知设备,格式为【mac 名称】(中间是个空格,不含方括号)
|
||||
#starttime endtime 脚本运行起止时间
|
||||
#默认检测时间60s
|
||||
#开启设备上下线提醒必须开新设备加入
|
||||
#
|
||||
#####################################
|
||||
serverchan_sckey=`uci get /etc/config/serverchan.@serverchan[0].serverchan_sckey`
|
||||
serverchan_notify_1=`uci get /etc/config/serverchan.@serverchan[0].new_ip` #外网IP变化
|
||||
serverchan_notify_2=`uci get /etc/config/serverchan.@serverchan[0].new_equipment` #新设备加入
|
||||
serverchan_notify_3=`uci get /etc/config/serverchan.@serverchan[0].equipment` #设备上下线
|
||||
serverchan_notify_4=`uci get /etc/config/serverchan.@serverchan[0].proxy` #代理状态
|
||||
serverchan_enable=`uci get /etc/config/serverchan.@serverchan[0].enabled`
|
||||
serverchan_enable=${serverchan_enable:-"0"}
|
||||
hostname=`uci get /etc/config/system.@system[0].hostname`
|
||||
starttime=`uci get /etc/config/serverchan.@serverchan[0].starttime`
|
||||
endtime=`uci get /etc/config/serverchan.@serverchan[0].endtime`
|
||||
sleeptime=60
|
||||
dir="/root/var/"
|
||||
mkdir -p ${dir}
|
||||
touch ${dir}arIpAddress
|
||||
sed -i '1,100d' ${dir}arIpAddress
|
||||
touch ${dir}lastIPAddress
|
||||
touch ${dir}mac_name
|
||||
logfile="/var/log/server_chan.log"
|
||||
scfile="/var/log/serverchan.file"
|
||||
touch ${logfile}
|
||||
curl -s "http://sc.ftqq.com/$serverchan_sckey.send?text=%e3%80%90${hostname}%e3%80%91%e8%b7%af%e7%94%b1%e6%88%96%e6%8f%92%e4%bb%b6%e9%87%8d%e5%90%af"
|
||||
echo `date "+%H:%M:%S"` >> ${logfile}
|
||||
echo "路由或插件重启!" >> ${logfile}
|
||||
|
||||
new_ip(){
|
||||
wan_ip=$(ubus call network.interface.wan status | grep "address" | grep -oE '[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}')
|
||||
echo "$wan_ip" >> ${dir}arIpAddress
|
||||
|
||||
hostIP=$(cat ${dir}arIpAddress|sed -n '1p')
|
||||
|
||||
lastIP=$(cat ${dir}lastIPAddress|sed -n '1p')
|
||||
|
||||
}
|
||||
|
||||
clean_log(){
|
||||
logrow=$(grep -c "" ${logfile})
|
||||
scfilerow=$(grep -c "" ${scfile})
|
||||
if [ $logrow -ge 500 ];then
|
||||
cat /dev/null > ${logfile}
|
||||
echo "$curtime Log条数超限,清空处理!" >> ${logfile}
|
||||
fi
|
||||
if [ $scfilerow -ge 500 ];then
|
||||
cat /dev/null > ${scfile}
|
||||
echo "$curtime Log条数超限,清空处理!" >> ${logfile}
|
||||
fi
|
||||
}
|
||||
|
||||
while [ "$serverchan_enable" = "1" ];
|
||||
do
|
||||
serverchan_enable=1
|
||||
serverchan_enable=${serverchan_enable:-"0"}
|
||||
curltest=`which curl`
|
||||
nowtime=`date "+%Y-%m-%d %H:%M:%S"`
|
||||
if [ -z "$curltest" ] ; then
|
||||
wget --no-check-certificate -q -T 10 http://www.163.com
|
||||
[ "$?" == "0" ] && check=200 || check=404
|
||||
else
|
||||
check=`curl -k -s -w "%{http_code}" "http://www.163.com" -o /dev/null`
|
||||
fi
|
||||
|
||||
if [ "$check" == "200" ] ; then
|
||||
curtime=`date "+%H:%M:%S"`
|
||||
|
||||
echo "$curtime online! "
|
||||
currtime=`date "+%H"`
|
||||
if [ "$currtime" -gt "$starttime" ] && [ "$currtime" -lt "$endtime" ]; then
|
||||
clean_log
|
||||
#外网IP变化
|
||||
if [ "$serverchan_notify_1" = "1" ]; then
|
||||
new_ip
|
||||
if [ "$lastIP" != "$hostIP" ] && [ ! -z "$hostIP" ]; then
|
||||
sleep ${sleeptime}
|
||||
new_ip
|
||||
fi
|
||||
if [ "$lastIP" != "$hostIP" ] && [ ! -z "$hostIP" ] ; then
|
||||
echo "$curtime 【外网IP变化】 当前 IP: $hostIP" >> ${logfile}
|
||||
echo "$curtime 【外网IP变化】 上次 IP: $lastIP" >> ${logfile}
|
||||
title="%e3%80%90${hostname}%e3%80%91%e5%a4%96%e7%bd%91IP%e5%9c%b0%e5%9d%80%e5%8f%98%e5%8c%96"
|
||||
content="%e5%bd%93%e5%89%8dIP%ef%bc%9a${hostIP}"
|
||||
curl -s "http://sc.ftqq.com/$serverchan_sckey.send?text=${title}" -d "&desp=%e6%a3%80%e6%b5%8b%e6%97%b6%e9%97%b4%ef%bc%9a${nowtime}%0D%0A%0D%0A${content}"
|
||||
echo "$curtime 【微信推送】 当前IP:${hostIP}" >> ${logfile}
|
||||
echo -n $hostIP > ${dir}lastIPAddress
|
||||
sed -i '1,100d' ${dir}arIpAddress
|
||||
else
|
||||
sed -i '1,100d' ${dir}arIpAddress
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
|
||||
#新设备加入
|
||||
if [ "$serverchan_notify_2" = "1" ] ; then
|
||||
cat /proc/net/arp | grep -v "^$" | awk '{if($0~"br-lan") print}' | awk -F "[ ]+" '{print $4}' | sort -u > ${dir}tmpfile
|
||||
sed -i '$d' ${dir}tmpfile
|
||||
touch ${dir}mac_all
|
||||
grep -F -v -f "${dir}mac_all" "${dir}tmpfile" | sort | uniq > ${dir}mac_add
|
||||
if [ -s "${dir}mac_add" ] ; then
|
||||
cat ${dir}mac_add >> ${dir}mac_all
|
||||
title="%e3%80%90${hostname}%e3%80%91%e6%96%b0%e8%ae%be%e5%a4%87%e6%8f%90%e9%86%92"
|
||||
content=`cat ${dir}mac_add | grep -v "^$" | sed 's/$/ %0D%0A%0D%0A/'`
|
||||
curl -s "http://sc.ftqq.com/$serverchan_sckey.send?text=${title}" -d "&desp=%e6%a3%80%e6%b5%8b%e6%97%b6%e9%97%b4%ef%bc%9a${nowtime}%0D%0A%0D%0A${content}"
|
||||
echo "$curtime 【微信推送】 新设备加入 " >> ${logfile}
|
||||
cat ${dir}mac_add | grep -v "^$" >> ${logfile}
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
#设备上下线提醒
|
||||
if [ "$serverchan_notify_3" = "1" ] ; then
|
||||
cat /proc/net/arp | grep -v "^$" | awk '{if($0~"br-lan") print}' | awk -F "[ ]+" '{print $4,$3,$1}' | sort -u > ${dir}arp_now
|
||||
sed -i '$d' ${dir}arp_now
|
||||
cat ${dir}mac_all | awk -F' ' 'BEGIN{OFS=" "}{if($2==""){$2="0xF";}print;}' | awk -F' ' 'BEGIN{OFS=" "}{if($3==""){$3="0.0.0.0";}print;}' > ${dir}tmpfile
|
||||
awk -F' ' 'NR==FNR{a[$1]=$2" "$3;next}{for(i in a){if($1==i)$2=a[$1]}}1' ${dir}arp_now ${dir}tmpfile > ${dir}tmpfile2
|
||||
cat ${dir}tmpfile2 | awk '{ $4=null;print $0 }' >${dir}tmpfile
|
||||
#echo "$curtime check! "
|
||||
#sleep ${sleeptime}
|
||||
#awk -F "[ ]" 'NR==FNR{a[$1]=$2" "$3;next}{print $1" "a[$1]}' ${dir}arp_now ${dir}tmpfile > ${dir}tmpfile2
|
||||
awk -F "[ ]" 'NR==FNR{a[$1]=$2;next}{print $2" "$1" "$3" "a[$1]}' ${dir}mac_name ${dir}tmpfile > ${dir}tmpfile2
|
||||
awk -F' ' 'BEGIN{OFS=" "}{if($4==""){$4="unknown";}print;}' ${dir}tmpfile2 > ${dir}mac_state_now_name
|
||||
touch ${dir}mac_state_last_name
|
||||
grep -F -v -f "${dir}mac_state_last_name" "${dir}mac_state_now_name" | sort | uniq > ${dir}mac_state_change_name
|
||||
if [ -s "${dir}mac_state_change_name" ] ; then
|
||||
cp ${dir}mac_state_now_name ${dir}mac_state_last_name
|
||||
echo "$curtime 【微信推送】 设备状态变化" >> ${logfile}
|
||||
cat ${dir}mac_state_change_name | sed 's/0x2/在线/g' | sed 's/0x0/离线/g' | sed 's/0xF/未知/g' >> ${logfile}
|
||||
echo "======↓历史设备状态↓======" >> ${logfile}
|
||||
cat ${dir}mac_state_now_name | sed 's/0x2/在线/g' | sed 's/0x0/离线/g' | sed 's/0xF/未知/g' >> ${logfile}
|
||||
sed -i 's/0x2/%e5%9c%a8%e7%ba%bf/g' ${dir}mac_state_change_name
|
||||
sed -i 's/0x0/%e7%a6%bb%e7%ba%bf/g' ${dir}mac_state_change_name
|
||||
sed -i 's/0xF/%e6%9c%aa%e7%9f%a5/g' ${dir}mac_state_change_name
|
||||
sed -i 's/0x2/%e5%9c%a8%e7%ba%bf/g' ${dir}mac_state_now_name
|
||||
sed -i 's/0x0/%e7%a6%bb%e7%ba%bf/g' ${dir}mac_state_now_name
|
||||
sed -i 's/0xF/%e6%9c%aa%e7%9f%a5/g' ${dir}mac_state_now_name
|
||||
title="%e3%80%90${hostname}%e3%80%91%e8%ae%be%e5%a4%87%e7%8a%b6%e6%80%81%e5%8f%98%e5%8c%96"
|
||||
content1=`cat ${dir}mac_state_change_name |awk '{ $2=null;print $0 }' | grep -v "^$" | sed 's/$/ %0D%0A%0D%0A/'`
|
||||
content2=`cat ${dir}mac_state_now_name |awk '{ $2=null;print $0 }' | grep -v "^$" | sed 's/$/ %0D%0A%0D%0A/'`
|
||||
curl -s "http://sc.ftqq.com/$serverchan_sckey.send?text=${title}" -d "&desp=%e6%a3%80%e6%b5%8b%e6%97%b6%e9%97%b4%ef%bc%9a${nowtime}%0D%0A%0D%0A${content1}%0D%0A%0D%0A%3d%3d%3d%3d%3d%3d%e2%86%93%e5%8e%86%e5%8f%b2%e8%ae%be%e5%a4%87%e7%8a%b6%e6%80%81%e2%86%93%3d%3d%3d%3d%3d%3d%0D%0A%0D%0A${content2}"
|
||||
fi
|
||||
fi
|
||||
|
||||
#代理状态提醒
|
||||
if [ "$serverchan_notify_4" = "1" ] ; then
|
||||
/usr/bin/wget --spider --quiet --tries=1 --timeout=3 www.gstatic.com/generate_204
|
||||
if [ "$?" == "0" ]; then
|
||||
echo "$curtime 【微信推送】 代理正常" >> ${logfile}
|
||||
else
|
||||
/usr/bin/wget --spider --quiet --tries=1 --timeout=3 www.baidu.com
|
||||
if [ "$?" == "0" ]; then
|
||||
echo "$curtime 【微信推送】 代理出现问题等待插件重启" >> ${logfile}
|
||||
title="%e3%80%90${hostname}%e3%80%91%e4%bb%a3%e7%90%86%e7%8a%b6%e6%80%81%e5%8f%98%e5%8c%96"
|
||||
curl -s "http://sc.ftqq.com/$serverchan_sckey.send?text=${title}" -d "&desp=%e6%a3%80%e6%b5%8b%e6%97%b6%e9%97%b4%ef%bc%9a${nowtime}%e4%bb%a3%e7%90%86%e5%87%ba%e7%8e%b0%e9%97%ae%e9%a2%98%e7%ad%89%e5%be%85%e6%8f%92%e4%bb%b6%e9%87%8d%e5%90%af"
|
||||
else
|
||||
echo "$curtime 【路由断网】 当前网络不通! " >> ${logfile}
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
else
|
||||
echo "$curtime 【路由断网】 当前网络不通! " >> ${logfile}
|
||||
fi
|
||||
|
||||
sleep ${sleeptime}
|
||||
continue
|
||||
done
|
||||
|
||||
Loading…
Reference in New Issue
Block a user