mirror of
https://github.com/tsingui/softcenter-1.git
synced 2024-12-23 10:35:17 +00:00
add aliddns
This commit is contained in:
parent
ad5002403f
commit
5ed4de9284
22
aliddns/Changelog.txt
Normal file
22
aliddns/Changelog.txt
Normal file
@ -0,0 +1,22 @@
|
||||
Koolshare Asuswrt-Merlin aliddns Changelog
|
||||
===========================================
|
||||
1.2
|
||||
- fix fix interval time scale
|
||||
1.1
|
||||
- fix fix won't work in X7.9.1 fw
|
||||
|
||||
0.7
|
||||
- fix add * and @ support
|
||||
|
||||
0.6
|
||||
- fix fix some column won't hide when toggle switch off
|
||||
|
||||
0.5
|
||||
- update default use interface ppp0 to update ip
|
||||
- fix fix the exclamation point prompt in the network map
|
||||
|
||||
0.4
|
||||
- update sync aliddns
|
||||
|
||||
0.2
|
||||
- add add aliddns
|
14
aliddns/README.md
Normal file
14
aliddns/README.md
Normal file
@ -0,0 +1,14 @@
|
||||
# merlin_thunder
|
||||
this is a standalone aliddns Repository for merlin xiaobao firmware software center
|
||||
|
||||
#### how to build
|
||||
|
||||
1. change code in aliddns folder
|
||||
2. update version in config.json.js
|
||||
3. run build.py to package
|
||||
4. commit your change
|
||||
|
||||
* the merlin software center sync server always use the code to packet a new tar file when detect version change.
|
||||
* so, when change version number, make sure the code is workable.
|
||||
|
||||
|
BIN
aliddns/aliddns.tar.gz
Normal file
BIN
aliddns/aliddns.tar.gz
Normal file
Binary file not shown.
11
aliddns/aliddns/install.sh
Normal file
11
aliddns/aliddns/install.sh
Normal file
@ -0,0 +1,11 @@
|
||||
#!/bin/sh
|
||||
|
||||
cp -r /tmp/aliddns/* /jffs/softcenter/
|
||||
chmod a+x /jffs/softcenter/scripts/aliddns_*
|
||||
|
||||
rm -rf /jffs/softcenter/install.sh
|
||||
|
||||
# add icon into softerware center
|
||||
# dbus set softcenter_module_aliddns_install=1
|
||||
# dbus set softcenter_module_aliddns_version=0.4
|
||||
# dbus set softcenter_module_aliddns_description="阿里云解析自动更新IP"
|
BIN
aliddns/aliddns/res/icon-aliddns.png
Normal file
BIN
aliddns/aliddns/res/icon-aliddns.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 10 KiB |
46
aliddns/aliddns/scripts/aliddns_config.sh
Normal file
46
aliddns/aliddns/scripts/aliddns_config.sh
Normal file
@ -0,0 +1,46 @@
|
||||
#!/bin/sh
|
||||
|
||||
source /jffs/softcenter/scripts/base.sh
|
||||
eval `dbus export aliddns`
|
||||
|
||||
start_aliddns(){
|
||||
aliddns_interval=$(($aliddns_interval / 60))
|
||||
cru a aliddns_checker "*/$aliddns_interval * * * * /jffs/softcenter/scripts/aliddns_update.sh"
|
||||
sh /jffs/softcenter/scripts/aliddns_update.sh
|
||||
|
||||
if [ ! -L "/jffs/softcenter/init.d/S98Aliddns.sh" ]; then
|
||||
ln -sf /jffs/softcenter/scripts/aliddns_config.sh /jffs/jffs/softcenter/init.d/S98Aliddns.sh
|
||||
fi
|
||||
}
|
||||
|
||||
stop_aliddns(){
|
||||
jobexist=`cru l|grep aliddns_checker`
|
||||
# kill crontab job
|
||||
if [ -n "$jobexist" ];then
|
||||
sed -i '/aliddns_checker/d' /var/spool/cron/crontabs/* >/dev/null 2>&1
|
||||
fi
|
||||
nvram set ddns_hostname_x=`nvram get ddns_hostname_old`
|
||||
}
|
||||
|
||||
case $ACTION in
|
||||
start)
|
||||
if [ "$aliddns_enable" == "1" ];then
|
||||
logger "[软件中心]: 启动阿里DDNS!"
|
||||
start_aliddns
|
||||
else
|
||||
logger "[软件中心]: 阿里DDNS未设置开机启动,跳过!"
|
||||
fi
|
||||
;;
|
||||
stop)
|
||||
stop_aliddns
|
||||
;;
|
||||
*)
|
||||
if [ "$aliddns_enable" == "1" ];then
|
||||
start_aliddns
|
||||
else
|
||||
stop_aliddns
|
||||
fi
|
||||
http_response "$1"
|
||||
;;
|
||||
esac
|
||||
|
136
aliddns/aliddns/scripts/aliddns_update.sh
Normal file
136
aliddns/aliddns/scripts/aliddns_update.sh
Normal file
@ -0,0 +1,136 @@
|
||||
#!/bin/sh
|
||||
|
||||
source /jffs/softcenter/scripts/base.sh
|
||||
eval `dbus export aliddns_`
|
||||
alias echo_date='echo 【$(TZ=UTC-8 date -R +%Y年%m月%d日\ %X)】'
|
||||
https_lanport=`nvram get https_lanport`
|
||||
if [ "$aliddns_enable" != "1" ]; then
|
||||
nvram set ddns_hostname_x=`nvram get ddns_hostname_old`
|
||||
echo "not enable"
|
||||
exit
|
||||
fi
|
||||
|
||||
now=`echo_date`
|
||||
|
||||
die () {
|
||||
echo $1
|
||||
dbus set aliddns_last_act="$now: failed($1)"
|
||||
}
|
||||
|
||||
[ "$aliddns_curl" = "" ] && aliddns_curl="curl -s --interface ppp0 whatismyip.akamai.com"
|
||||
[ "$aliddns_dns" = "" ] && aliddns_dns="223.5.5.5"
|
||||
[ "$aliddns_ttl" = "" ] && aliddns_ttl="600"
|
||||
|
||||
ip=`$aliddns_curl 2>&1` || die "$ip"
|
||||
|
||||
#support @ record nslookup
|
||||
if [ "$aliddns_name" = "@" ];then
|
||||
current_ip=`nslookup $aliddns_domain $aliddns_dns 2>&1`
|
||||
else
|
||||
current_ip=`nslookup $aliddns_name.$aliddns_domain $aliddns_dns 2>&1`
|
||||
fi
|
||||
|
||||
if [ "$?" -eq "0" ];then
|
||||
current_ip=`echo "$current_ip" | grep 'Address 1' | tail -n1 | awk '{print $NF}'`
|
||||
if [ "$ip" = "$current_ip" ]
|
||||
then
|
||||
echo "skipping"
|
||||
dbus set aliddns_last_act="$now: skipped($ip)"
|
||||
nvram set ddns_enable_x=1
|
||||
#web ui show without @.
|
||||
if [ "$aliddns_name" = "@" ] ;then
|
||||
nvram set ddns_hostname_x="$aliddns_domain"
|
||||
else
|
||||
nvram set ddns_hostname_x="$aliddns_name"."$aliddns_domain"
|
||||
ddns_custom_updated 1
|
||||
exit 0
|
||||
fi
|
||||
fi
|
||||
else
|
||||
# fix when A record removed by manual dns is always update error
|
||||
unset aliddns_record_id
|
||||
fi
|
||||
|
||||
timestamp=`date -u "+%Y-%m-%dT%H%%3A%M%%3A%SZ"`
|
||||
urlencode() {
|
||||
# urlencode <string>
|
||||
out=""
|
||||
while read -n1 c
|
||||
do
|
||||
case $c in
|
||||
[a-zA-Z0-9._-]) out="$out$c" ;;
|
||||
*) out="$out`printf '%%%02X' "'$c"`" ;;
|
||||
esac
|
||||
done
|
||||
echo -n $out
|
||||
}
|
||||
|
||||
enc() {
|
||||
echo -n "$1" | urlencode
|
||||
}
|
||||
|
||||
send_request() {
|
||||
local args="AccessKeyId=$aliddns_ak&Action=$1&Format=json&$2&Version=2015-01-09"
|
||||
local hash=$(echo -n "GET&%2F&$(enc "$args")" | openssl dgst -sha1 -hmac "$aliddns_sk&" -binary | openssl base64)
|
||||
curl -s "http://alidns.aliyuncs.com/?$args&Signature=$(enc "$hash")"
|
||||
}
|
||||
|
||||
get_recordid() {
|
||||
grep -Eo '"RecordId":"[0-9]+"' | cut -d':' -f2 | tr -d '"'
|
||||
}
|
||||
|
||||
query_recordid() {
|
||||
send_request "DescribeSubDomainRecords" "SignatureMethod=HMAC-SHA1&SignatureNonce=$timestamp&SignatureVersion=1.0&SubDomain=$aliddns_name1.$aliddns_domain&Timestamp=$timestamp"
|
||||
}
|
||||
|
||||
update_record() {
|
||||
send_request "UpdateDomainRecord" "RR=$aliddns_name1&RecordId=$1&SignatureMethod=HMAC-SHA1&SignatureNonce=$timestamp&SignatureVersion=1.0&TTL=$aliddns_ttl&Timestamp=$timestamp&Type=A&Value=$ip"
|
||||
}
|
||||
|
||||
add_record() {
|
||||
send_request "AddDomainRecord&DomainName=$aliddns_domain" "RR=$aliddns_name1&SignatureMethod=HMAC-SHA1&SignatureNonce=$timestamp&SignatureVersion=1.0&TTL=$aliddns_ttl&Timestamp=$timestamp&Type=A&Value=$ip"
|
||||
}
|
||||
|
||||
#add support */%2A and @/%40 record
|
||||
case "$aliddns_name" in
|
||||
\*)
|
||||
aliddns_name1=%2A
|
||||
;;
|
||||
\@)
|
||||
aliddns_name1=%40
|
||||
;;
|
||||
*)
|
||||
aliddns_name1="$aliddns_name"
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -z "$aliddns_record_id" ];then
|
||||
aliddns_record_id=`query_recordid | get_recordid`
|
||||
fi
|
||||
|
||||
if [ -z "$aliddns_record_id" ];then
|
||||
aliddns_record_id=`add_record | get_recordid`
|
||||
echo "added record $aliddns_record_id"
|
||||
else
|
||||
update_record "$aliddns_record_id"
|
||||
echo "updated record $aliddns_record_id"
|
||||
fi
|
||||
|
||||
# save to file
|
||||
if [ -z "$aliddns_record_id" ]; then
|
||||
# failed
|
||||
dbus set aliddns_last_act="$now: failed"
|
||||
nvram set ddns_hostname_x=`nvram get ddns_hostname_old`
|
||||
else
|
||||
dbus set aliddns_record_id="$aliddns_record_id"
|
||||
dbus set aliddns_last_act="$now: success($ip)"
|
||||
nvram set ddns_enable_x=1
|
||||
#web ui show without @.
|
||||
if [ "$aliddns_name" = "@" ] ;then
|
||||
nvram set ddns_hostname_x="$aliddns_domain"
|
||||
ddns_custom_updated 1
|
||||
else
|
||||
nvram set ddns_hostname_x="$aliddns_name"."$aliddns_domain"
|
||||
ddns_custom_updated 1
|
||||
fi
|
||||
fi
|
216
aliddns/aliddns/webs/Module_aliddns.asp
Normal file
216
aliddns/aliddns/webs/Module_aliddns.asp
Normal file
@ -0,0 +1,216 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=Edge"/>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<meta HTTP-EQUIV="Pragma" CONTENT="no-cache"/>
|
||||
<meta HTTP-EQUIV="Expires" CONTENT="-1"/>
|
||||
<link rel="shortcut icon" href="images/favicon.png"/>
|
||||
<link rel="icon" href="images/favicon.png"/>
|
||||
<title>Aliddns</title>
|
||||
<link rel="stylesheet" type="text/css" href="index_style.css"/>
|
||||
<link rel="stylesheet" type="text/css" href="form_style.css"/>
|
||||
<link rel="stylesheet" type="text/css" href="usp_style.css"/>
|
||||
<link rel="stylesheet" type="text/css" href="css/element.css">
|
||||
<script type="text/javascript" src="/js/jquery.js"></script>
|
||||
<script src="/state.js"></script>
|
||||
<script src="/help.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="TopBanner"></div>
|
||||
<div id="Loading" class="popup_bg"></div>
|
||||
<table class="content" align="center" cellpadding="0" cellspacing="0">
|
||||
<tr>
|
||||
<td width="17"> </td>
|
||||
<td valign="top" width="202">
|
||||
<div id="mainMenu"></div>
|
||||
<div id="subMenu"></div>
|
||||
</td>
|
||||
<td valign="top">
|
||||
<div id="tabMenu" class="submenuBlock"></div>
|
||||
<!--=====Beginning of Main Content=====-->
|
||||
<table width="98%" border="0" align="left" cellpadding="0" cellspacing="0" style="display: block;">
|
||||
<tr>
|
||||
<td align="left" valign="top">
|
||||
<div>
|
||||
<table width="760px" border="0" cellpadding="5" cellspacing="0" bordercolor="#6b8fa3" class="FormTitle" id="FormTitle">
|
||||
<tr>
|
||||
<td bgcolor="#4D595D" colspan="3" valign="top">
|
||||
<div> </div>
|
||||
<div style="float:left;" class="formfonttitle" style="padding-top: 12px">Aliddns - 设置</div>
|
||||
<div style="float:right; width:15px; height:25px;margin-top:10px"><img id="return_btn" onclick="reload_Soft_Center();" align="right" style="cursor:pointer;position:absolute;margin-left:-30px;margin-top:-25px;" title="返回软件中心" src="/images/backprev.png" onMouseOver="this.src='/images/backprevclick.png'" onMouseOut="this.src='/images/backprev.png'"></img></div>
|
||||
<div style="margin-left:5px;margin-top:10px;margin-bottom:10px"><img src="/images/New_ui/export/line_export.png"></div>
|
||||
<div class="SimpleNote" id="head_illustrate"><i></i><em>Aliddns</em>是一款基于阿里云解析的私人ddns解决方案。<a href='http://koolshare.cn/thread-64703-1-1.html' target='_blank'><i> <u>点击查看插件详情</u></i></a></div>
|
||||
<table style="margin:20px 0px 0px 0px;" width="100%" border="1" align="center" cellpadding="4" cellspacing="0" bordercolor="#6b8fa3" class="FormTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<td colspan="2">Aliddns - 设置面板</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tr id="switch_tr">
|
||||
<th>
|
||||
<label>开启Aliddns</label>
|
||||
</th>
|
||||
<td colspan="2">
|
||||
<div class="switch_field" style="display:table-cell">
|
||||
<label for="switch">
|
||||
<input id="switch" class="switch" type="checkbox" style="display: none;">
|
||||
<div class="switch_container" >
|
||||
<div class="switch_bar"></div>
|
||||
<div class="switch_circle transition_style">
|
||||
<div></div>
|
||||
</div>
|
||||
</div>
|
||||
</label>
|
||||
</div>
|
||||
<div id="koolproxy_install_show" style="padding-top:5px;margin-left:80px;margin-top:-30px;float: left;"></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="last_act_tr">
|
||||
<th>上次运行</th>
|
||||
<td>
|
||||
<% dbus_get_def("aliddns_last_act", "--"); %>
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="ak_tr">
|
||||
<th>app key</th>
|
||||
<td>
|
||||
<input type="text" id="aliddns_ak" value="<% dbus_get_def("aliddns_ak", ""); %>" class="input_ss_table">
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="sk_tr">
|
||||
<th>app secret</th>
|
||||
<td><input type="password" id="aliddns_sk" value="<% dbus_get_def("aliddns_sk", ""); %>" class="input_ss_table"></td>
|
||||
</tr>
|
||||
<tr id="interval_tr">
|
||||
<th>检查周期</th>
|
||||
<td><input type="text" style="width: 2.5em" id="aliddns_interval" value="<% dbus_get_def("aliddns_interval", "120"); %>" class="input_ss_table">s</td>
|
||||
</tr>
|
||||
<tr id="name_tr">
|
||||
<th>域名</th>
|
||||
<td>
|
||||
<input type="text" style="width: 4em" id="aliddns_name" placeholder="子域名" value="<% dbus_get_def("aliddns_name", "home"); %>" class="input_ss_table"
|
||||
>.<input type="text" id="aliddns_domain" placeholder="主域名" value="<% dbus_get_def("aliddns_domain", "example.com"); %>" class="input_ss_table">
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="dns_tr">
|
||||
<th title="查询域名当前IP时使用的DNS解析服务器,默认为阿里云DNS">DNS服务器(?)</th>
|
||||
<td><input id="aliddns_dns" class="input_ss_table" value="<% dbus_get_def("aliddns_dns", "223.5.5.5"); %>"></td>
|
||||
</tr>
|
||||
<tr id="curl_tr">
|
||||
<th title="可自行修改命令行,以获得正确的公网IP。如添加 '--interface vlan2' 以指定多播情况下的端口支持">获得IP命令(?)</th>
|
||||
<td><textarea id="aliddns_curl" class="input_ss_table" style="width: 94%; height: 2.4em"><% dbus_get_def("aliddns_curl", "curl -s --interface ppp0 whatismyip.akamai.com"); %></textarea></td>
|
||||
</tr>
|
||||
<tr id="ttl_tr">
|
||||
<th title="设置解析TTL,默认10分钟,免费版的范围是600-86400">TTL(?)</th>
|
||||
<td><input id="aliddns_ttl" style="width: 4.5em" class="input_ss_table" value="<% dbus_get_def("aliddns_ttl", "600"); %>">s (1~86400)</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div class="apply_gen">
|
||||
<input class="button_gen" type="button" value="提交">
|
||||
</div>
|
||||
<div style="margin-left:5px;margin-top:10px;margin-bottom:10px"><img src="/images/New_ui/export/line_export.png"/></div>
|
||||
<div class="KoolshareBottom" style="margin-top:540px;">
|
||||
论坛技术支持: <a href="http://www.koolshare.cn" target="_blank"> <i><u>www.koolshare.cn</u></i> </a> <br/>
|
||||
Github项目: <a href="https://github.com/koolshare/koolshare.github.io/tree/acelan_softcenter_ui" target="_blank"> <i><u>github.com/koolshare</u></i> </a> <br/>
|
||||
Shell by: <i>kyrios</i> , Web by: <i>kyrios</i>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<!--=====end of Main Content=====-->
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div id="footer"></div>
|
||||
<script>
|
||||
$(function () {
|
||||
show_menu(menu_hook);
|
||||
var enable = "<% dbus_get_def("aliddns_enable", "0"); %>";
|
||||
$('#switch').prop('checked', enable === "1");
|
||||
buildswitch();
|
||||
update_visibility();
|
||||
var posting = false;
|
||||
var inputs = ['ak', 'sk', 'name', 'domain', 'interval', 'dns', 'curl', 'ttl'];
|
||||
$('.button_gen').click(function () {
|
||||
if(posting) return;
|
||||
posting = true; // save
|
||||
var data = {
|
||||
aliddns_enable: $('#switch').prop('checked') | 0,
|
||||
action_mode: ' Refresh ',
|
||||
current_page: 'Module_aliddns.asp',
|
||||
next_page: 'Module_aliddns.asp',
|
||||
SystemCmd: 'aliddns_config.sh'
|
||||
};
|
||||
for(var i = 0; i< inputs.length; i++) {
|
||||
var key = 'aliddns_' + inputs[i];
|
||||
data['aliddns_' + inputs[i]] = $('#aliddns_' + inputs[i]).val()
|
||||
}
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
url: 'applydb.cgi?p=aliddns_',
|
||||
data: $.param(data)
|
||||
}).then(function () {
|
||||
posting = false;
|
||||
alert('saved');
|
||||
}, function () {
|
||||
posting = false;
|
||||
alert('failed');
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
var enable_ss = "<% nvram_get("enable_ss"); %>";
|
||||
var enable_soft = "<% nvram_get("enable_soft"); %>";
|
||||
function menu_hook(title, tab) {
|
||||
if(enable_ss == "1" && enable_soft == "1"){
|
||||
tabtitle[17] = new Array("", "Aliddns");
|
||||
tablink[17] = new Array("", "Module_aliddns.asp");
|
||||
}else{
|
||||
tabtitle[16] = new Array("", "Aliddns");
|
||||
tablink[16] = new Array("", "Module_aliddns.asp");
|
||||
}
|
||||
}
|
||||
|
||||
function reload_Soft_Center(){
|
||||
location.href = "/Main_Soft_center.asp";
|
||||
}
|
||||
|
||||
function buildswitch(){
|
||||
$("#switch").click(
|
||||
function(){
|
||||
update_visibility();
|
||||
});
|
||||
}
|
||||
|
||||
function update_visibility(){
|
||||
if(document.getElementById('switch').checked){
|
||||
document.getElementById("last_act_tr").style.display = "";
|
||||
document.getElementById("ak_tr").style.display = "";
|
||||
document.getElementById("sk_tr").style.display = "";
|
||||
document.getElementById("interval_tr").style.display = "";
|
||||
document.getElementById("name_tr").style.display = "";
|
||||
document.getElementById("dns_tr").style.display = "";
|
||||
document.getElementById("curl_tr").style.display = "";
|
||||
document.getElementById("ttl_tr").style.display = "";
|
||||
|
||||
}else{
|
||||
document.getElementById("last_act_tr").style.display = "none";
|
||||
document.getElementById("ak_tr").style.display = "none";
|
||||
document.getElementById("sk_tr").style.display = "none";
|
||||
document.getElementById("interval_tr").style.display = "none";
|
||||
document.getElementById("name_tr").style.display = "none";
|
||||
document.getElementById("dns_tr").style.display = "none";
|
||||
document.getElementById("curl_tr").style.display = "none";
|
||||
document.getElementById("ttl_tr").style.display = "none";
|
||||
}
|
||||
}
|
||||
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
25
aliddns/backup.sh
Executable file
25
aliddns/backup.sh
Executable file
@ -0,0 +1,25 @@
|
||||
#! /bin/sh
|
||||
|
||||
# you can do something here
|
||||
# this shell scripts will run at the end of build.py scripts
|
||||
|
||||
|
||||
|
||||
mkdir -p history
|
||||
if [ ! -f ./history/version ];then
|
||||
touch ./history/version
|
||||
fi
|
||||
|
||||
version_old=`cat history/version | awk '{print $1}' | sort -rn |sed -n 1p`
|
||||
version_new=`cat config.json.js |grep "version"|cut -d"\"" -f 4`
|
||||
md5_old=`cat history/version | sort -nk1 | awk '{print $1}' |sed -n 1p`
|
||||
md5_new=` md5sum aliddns.tar.gz | awk '{print $1}'`
|
||||
|
||||
if [ -f ./aliddns.tar.gz ];then
|
||||
if [ "$version_old" != "$version_new" ];then
|
||||
mkdir ./history/$version_new/
|
||||
cp ./aliddns.tar.gz ./history/$version_new/
|
||||
echo $version_new $md5_new >> ./history/version
|
||||
fi
|
||||
fi
|
||||
|
32
aliddns/build.sh
Executable file
32
aliddns/build.sh
Executable file
@ -0,0 +1,32 @@
|
||||
#!/bin/sh
|
||||
|
||||
|
||||
MODULE=aliddns
|
||||
VERSION=1.2
|
||||
TITLE=aliddns
|
||||
DESCRIPTION=阿里云解析自动更新IP
|
||||
HOME_URL=Module_aliddns.asp
|
||||
|
||||
# Check and include base
|
||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
if [ "$MODULE" == "" ]; then
|
||||
echo "module not found"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -f "$DIR/$MODULE/$MODULE/install.sh" ]; then
|
||||
echo "install script not found"
|
||||
exit 2
|
||||
fi
|
||||
|
||||
# now include build_base.sh
|
||||
. $DIR/../softcenter/build_base.sh
|
||||
|
||||
# change to module directory
|
||||
cd $DIR
|
||||
|
||||
# do something here
|
||||
|
||||
do_build_result
|
||||
|
||||
sh backup.sh $MODULE
|
8
aliddns/config.json.js
Normal file
8
aliddns/config.json.js
Normal file
@ -0,0 +1,8 @@
|
||||
{
|
||||
"version":"1.2",
|
||||
"md5":"1224296f69904c8073e9de60fe23cac5",
|
||||
"home_url":"Module_aliddns.asp",
|
||||
"title":"aliddns",
|
||||
"description":"阿里云解析自动更新IP",
|
||||
"build_date":"2019-01-12_22:09:07"
|
||||
}
|
BIN
aliddns/history/1.0/aliddns.tar.gz
Normal file
BIN
aliddns/history/1.0/aliddns.tar.gz
Normal file
Binary file not shown.
BIN
aliddns/history/1.2/aliddns.tar.gz
Normal file
BIN
aliddns/history/1.2/aliddns.tar.gz
Normal file
Binary file not shown.
2
aliddns/history/version
Normal file
2
aliddns/history/version
Normal file
@ -0,0 +1,2 @@
|
||||
1.0 c3f3e869f271f51aba85951ec57aacf4
|
||||
1.2 4e1007c77e98486bcc5e83a80c697139
|
2
aliddns/version
Normal file
2
aliddns/version
Normal file
@ -0,0 +1,2 @@
|
||||
1.2
|
||||
1224296f69904c8073e9de60fe23cac5
|
@ -72,15 +72,14 @@
|
||||
"version": "1.5"
|
||||
},
|
||||
{
|
||||
"build_date": "2016-09-27_18:43:33",
|
||||
"build_date": "2019-01-12_22:09:07",
|
||||
"description": "阿里云解析自动更新IP",
|
||||
"home_url": "Module_aliddns.asp",
|
||||
"md5": "00c97793e5b7195dd1d1def15f506883",
|
||||
"module": "aliddns",
|
||||
"md5": "1224296f69904c8073e9de60fe23cac5",
|
||||
"name": "aliddns",
|
||||
"tar_url": "aliddns/aliddns.tar.gz",
|
||||
"title": "aliddns",
|
||||
"version": "1.0"
|
||||
"version": "1.2"
|
||||
},
|
||||
{
|
||||
"build_date": "2016-09-01_17:20:40",
|
||||
|
@ -1,4 +1,4 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=Edge"/>
|
||||
@ -24,43 +24,18 @@
|
||||
<script type="text/javascript" src="/dbconf?p=adm_&v=<% uptime(); %>"></script>
|
||||
<script type="text/javascript" src="/res/softcenter.js"></script>
|
||||
<script language="JavaScript" type="text/javascript" src="/client_function.js"></script>
|
||||
|
||||
|
||||
<script>
|
||||
function init(menu_hook) {
|
||||
show_menu();
|
||||
}
|
||||
|
||||
function onSubmitCtrl(o, s) {
|
||||
document.form.action_mode.value = s;
|
||||
showLoading(7);
|
||||
document.form.submit();
|
||||
document.form.action_mode.value = s;
|
||||
showLoading(7);
|
||||
document.form.submit();
|
||||
}
|
||||
|
||||
function conf2obj(){
|
||||
$j.ajax({
|
||||
type: "get",
|
||||
url: "dbconf?p=adm_",
|
||||
dataType: "script",
|
||||
success: function(xhr) {
|
||||
var p = "adm_";
|
||||
var params = ["user_txt"];
|
||||
for (var i = 0; i < params.length; i++) {
|
||||
if (typeof db_adm_[p + params[i]] !== "undefined") {
|
||||
$j("#adm_"+params[i]).val(db_adm_[p + params[i]]);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
function reload_Soft_Center(){
|
||||
location.href = "/Main_Soft_center.asp";
|
||||
}
|
||||
|
||||
var enable_ss = "<% nvram_get("enable_ss"); %>";
|
||||
var enable_soft = "<% nvram_get("enable_soft"); %>";
|
||||
function menu_hook(title, tab) {
|
||||
tabtitle[tabtitle.length -1] = new Array("", "软件中心", "离线安装");
|
||||
tablink[tablink.length -1] = new Array("", "Main_Soft_center.asp", "Main_Soft_setting.asp");
|
||||
@ -70,35 +45,46 @@ function upload_software() {
|
||||
if(!fullPath) {
|
||||
return;
|
||||
}
|
||||
document.getElementById('file_info').style.display = "none";
|
||||
document.getElementById('loadingicon').style.display = "block";
|
||||
var startIndex = (fullPath.indexOf('\\') >= 0 ? fullPath.lastIndexOf('\\') : fullPath.lastIndexOf('/'));
|
||||
var filename = fullPath.substring(startIndex);
|
||||
if (filename.indexOf('\\') === 0 || filename.indexOf('/') === 0) {
|
||||
filename = filename.substring(1);
|
||||
}
|
||||
document.form.soft_name.value = filename;
|
||||
document.form.enctype = "multipart/form-data";
|
||||
document.form.encoding = "multipart/form-data";
|
||||
document.form.action="ssupload.cgi?a=/tmp/"+filename;
|
||||
document.form.submit();
|
||||
if (/.*[\u0391-\uffe5]+.*$/.test(filename)) {
|
||||
alert("错误:文件名中包含中文字符或符号!\n请更改文件名后重试!!");
|
||||
isok=0;
|
||||
return false;
|
||||
}else{
|
||||
if(filename.indexOf('tar.gz') != -1 ){
|
||||
document.getElementById('file_info').style.display = "none";
|
||||
document.getElementById('loadingicon').style.display = "block";
|
||||
document.form.soft_name.value = filename;
|
||||
document.form.enctype = "multipart/form-data";
|
||||
document.form.encoding = "multipart/form-data";
|
||||
document.form.action="ssupload.cgi?a=/tmp/"+filename;
|
||||
console.log(filename);
|
||||
document.form.submit();
|
||||
}else{
|
||||
console.log(filename);
|
||||
alert("错误:离线安装包后缀错误!需要.tar.gz后缀!\n\n如果你是mac os x系统,safari浏览器下载tar.gz文件后被自动解压导致无法安装的,请关闭此项设置:safari的偏好设置-通用-下载后打开安全的文件。或者换用chrome浏览器,重新下载离线安装包文件!");
|
||||
isok=0;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function upload_ok(isok) {
|
||||
var info = $G('file_info');
|
||||
if(isok==1){
|
||||
info.innerHTML="上传完成";
|
||||
checkCmdRet();
|
||||
setTimeout("start_install();", 1000);
|
||||
setTimeout("start_install();", 100);
|
||||
setTimeout("checkCmdRet();", 600);
|
||||
} else {
|
||||
info.innerHTML="上传失败";
|
||||
}
|
||||
info.style.display = "block";
|
||||
$G('loadingicon').style.display = "none";
|
||||
}
|
||||
|
||||
|
||||
function start_install() {
|
||||
document.form.action_mode.value = ' Refresh ';
|
||||
document.form.action = "/applydb.cgi?p=soft";
|
||||
@ -107,12 +93,9 @@ function start_install() {
|
||||
document.form.encoding = "";
|
||||
document.form.submit();
|
||||
}
|
||||
|
||||
|
||||
var _responseLen;
|
||||
var noChange = 0;
|
||||
function checkCmdRet(){
|
||||
|
||||
$j.ajax({
|
||||
url: '/cmdRet_check.htm',
|
||||
dataType: 'html',
|
||||
@ -124,9 +107,8 @@ function checkCmdRet(){
|
||||
var retArea = $G("log_content1");
|
||||
if(response.search("XU6J03M6") != -1){
|
||||
retArea.value = response.replace("XU6J03M6", " ");
|
||||
//retArea.scrollTop = retArea.scrollHeight - retArea.clientHeight;
|
||||
retArea.scrollTop = retArea.scrollHeight;
|
||||
//return false;
|
||||
return false;
|
||||
}
|
||||
|
||||
if(_responseLen == response.length){
|
||||
@ -134,32 +116,27 @@ function checkCmdRet(){
|
||||
}else{
|
||||
noChange = 0;
|
||||
}
|
||||
|
||||
if(noChange > 20){
|
||||
//retArea.scrollTop = retArea.scrollHeight;
|
||||
//setTimeout("checkCmdRet();", 2000);
|
||||
if(noChange > 500){
|
||||
return false;
|
||||
}else{
|
||||
setTimeout("checkCmdRet();", 500);
|
||||
setTimeout("checkCmdRet();", 250);
|
||||
}
|
||||
|
||||
retArea.value = response;
|
||||
//retArea.scrollTop = retArea.scrollHeight - retArea.clientHeight;
|
||||
retArea.scrollTop = retArea.scrollHeight;
|
||||
_responseLen = response.length;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
</script>
|
||||
</head>
|
||||
<body onload="init();">
|
||||
<div id="TopBanner"></div>
|
||||
<div id="Loading" class="popup_bg"></div>
|
||||
<iframe name="hidden_frame" id="hidden_frame" src="" width="0" height="0" frameborder="0"></iframe>
|
||||
<form method="POST" name="form" action="/applydb.cgi?p=adm_" target="hidden_frame">
|
||||
<input type="hidden" name="current_page" value="Module_adm_.asp"/>
|
||||
<input type="hidden" name="next_page" value="Module_adm_.asp"/>
|
||||
<form method="POST" name="form" action="" target="hidden_frame">
|
||||
<input type="hidden" name="current_page" value="Main_Soft_setting.asp"/>
|
||||
<input type="hidden" name="next_page" value="Main_Soft_setting.asp"/>
|
||||
<input type="hidden" name="group_id" value=""/>
|
||||
<input type="hidden" name="modified" value="0"/>
|
||||
<input type="hidden" name="action_mode" value=""/>
|
||||
@ -191,41 +168,28 @@ function checkCmdRet(){
|
||||
<div style="margin-left:5px;margin-top:10px;margin-bottom:10px"><img src="/images/New_ui/export/line_export.png"></div>
|
||||
<div class="formfontdesc" style="padding-top:5px;margin-top:0px;float: left;" id="cmdDesc"></div>
|
||||
<div style="padding-top:5px;margin-top:0px;float: left;" id="NoteBox" >
|
||||
<li>此页面功能需要在7.0及其以上的固件才能使用。 </li>
|
||||
<li>通过本页面,你可以上传插件的离线安装包来安装插件; </li>
|
||||
<li>通过本页面,你可以上传插件的离线安装包来安装插件,此功能需要在7.0及以上的固件才能使用; </li>
|
||||
<li>离线安装会自动解压tar.gz后缀的压缩包,识别压缩包一级目录下的install.sh文件并执行; </li>
|
||||
<li>建议开发者将插件版本号,md5等信息在install.sh文件内进行写入; </li>
|
||||
<li>此页面也能用来安装SS离线安装包,方便用户进行回滚操作,上传前需要将历史文件包改名为shadowsocks.tar.gz,建议安装时关闭SS,安装后需要重新提交才能看到安装的版本号; </li>
|
||||
<li>此功能暂时不可能,待修复; </li>
|
||||
</div>
|
||||
|
||||
<div class="formfontdesc" id="cmdDesc"></div>
|
||||
<table style="margin:10px 0px 0px 0px;" width="100%" border="1" align="center" cellpadding="4" cellspacing="0" bordercolor="#6b8fa3" class="FormTable" id="routing_table">
|
||||
<thead>
|
||||
<tr>
|
||||
<td colspan="2">软件中心 - 高级设置</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2">软件中心 - 高级设置</td>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tr>
|
||||
<th>安装包版本号</th>
|
||||
<td>
|
||||
<input type="text" maxlength="64" id="soft_install_version" name="soft_install_version" value="" class="input_ss_table" style="width:160px;float:left;" autocomplete="off" autocorrect="off" autocapitalize="off"></input>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
||||
<tr>
|
||||
<th><a class="hintstyle" href="javascript:void(0);" onclick="openssHint(24)">离线安装插件</a></th>
|
||||
<td>
|
||||
<input type="button" id="upload_btn" class="button_gen" onclick="upload_software();" value="上传并安装">
|
||||
|
||||
<input style="color:#FFCC00;*color:#000;width: 200px;" id="ss_file" type="file" name="file">
|
||||
<img id="loadingicon" style="margin-left:5px;margin-right:5px;display:none;" src="/images/InternetScan.gif">
|
||||
<span id="file_info" style="display:none;">完成</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
||||
<tr>
|
||||
<th><a class="hintstyle" href="javascript:void(0);" onclick="openssHint(24)">离线安装插件</a></th>
|
||||
<td>
|
||||
<input type="button" id="upload_btn" class="button_gen" onclick="upload_software();" value="上传并安装"/>
|
||||
<input style="color:#FFCC00;*color:#000;width: 200px;" id="ss_file" type="file" name="file"/>
|
||||
<img id="loadingicon" style="margin-left:5px;margin-right:5px;display:none;" src="/images/InternetScan.gif">
|
||||
<span id="file_info" style="display:none;">完成</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div id="log_content" style="margin-top:10px;display: block;">
|
||||
<textarea cols="63" rows="15" wrap="off" readonly="readonly" id="log_content1" style="width:99%; font-family:'Courier New', Courier, mono; font-size:11px;background:#475A5F;color:#FFFFFF;"></textarea>
|
||||
@ -235,8 +199,8 @@ function checkCmdRet(){
|
||||
<br/>论坛技术支持: <a href="http://www.koolshare.cn" target="_blank"> <i><u>www.koolshare.cn</u></i> </a> <br/>
|
||||
后台技术支持: <i>Xiaobao</i> <br/>
|
||||
Shell, Web by: <i>Sadoneli</i><br/>
|
||||
<br/>修改版 by: <i>paldier</i>
|
||||
</div>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
@ -252,6 +216,3 @@ function checkCmdRet(){
|
||||
<div id="footer"></div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user