diff --git a/dnsapi/dns_dp.sh b/dnsapi/dns_dp.sh
index 4ec8da6..8861bfc 100755
--- a/dnsapi/dns_dp.sh
+++ b/dnsapi/dns_dp.sh
@@ -6,10 +6,8 @@
#
#DP_Key="sADDsdasdgdsf"
-
DP_Api="https://dnsapi.cn"
-
#REST_API
######## Public functions #####################
@@ -17,27 +15,26 @@ DP_Api="https://dnsapi.cn"
dns_dp_add() {
fulldomain=$1
txtvalue=$2
-
+
if [ -z "$DP_Id" ] || [ -z "$DP_Key" ]; then
_err "You don't specify dnspod api key and key id yet."
_err "Please create you key and try again."
return 1
fi
-
+
REST_API=$DP_Api
-
+
#save the api key and email to the account conf file.
_saveaccountconf DP_Id "$DP_Id"
_saveaccountconf DP_Key "$DP_Key"
-
-
+
_debug "First detect the root zone"
- if ! _get_root $fulldomain ; then
+ if ! _get_root $fulldomain; then
_err "invalid domain"
return 1
fi
-
- existing_records $_domain $_sub_domain
+
+ existing_records $_domain $_sub_domain
_debug count "$count"
if [ "$?" != "0" ]; then
_err "Error get existing records."
@@ -51,15 +48,12 @@ dns_dp_add() {
fi
}
-
#fulldomain
dns_dp_rm() {
fulldomain=$1
}
-
-
#usage: root sub
#return if the sub record already exists.
#echos the existing records count.
@@ -68,26 +62,25 @@ existing_records() {
_debug "Getting txt records"
root=$1
sub=$2
-
+
if ! _rest POST "Record.List" "login_token=$DP_Id,$DP_Key&domain_id=$_domain_id&sub_domain=$_sub_domain"; then
- return 1
+ return 1
fi
-
- if printf "$response" | grep 'No records' ; then
- count=0;
- return 0
+
+ if printf "$response" | grep 'No records'; then
+ count=0
+ return 0
fi
-
- if printf "$response" | grep "Action completed successful" >/dev/null ; then
+
+ if printf "$response" | grep "Action completed successful" >/dev/null; then
count=$(printf "$response" | grep 'TXT' | wc -l)
record_id=$(printf "$response" | grep '^' | tail -1 | cut -d '>' -f 2 | cut -d '<' -f 1)
- return 0
+ return 0
else
_err "get existing records error."
return 1
fi
-
-
+
count=0
}
@@ -98,19 +91,18 @@ add_record() {
sub=$2
txtvalue=$3
fulldomain=$sub.$root
-
+
_info "Adding record"
-
+
if ! _rest POST "Record.Create" "login_token=$DP_Id,$DP_Key&format=json&domain_id=$_domain_id&sub_domain=$_sub_domain&record_type=TXT&value=$txtvalue&record_line=默认"; then
return 1
fi
-
- if printf "$response" | grep "Action completed successful" ; then
-
+
+ if printf "$response" | grep "Action completed successful"; then
+
return 0
fi
-
-
+
return 1 #error
}
@@ -121,24 +113,21 @@ update_record() {
sub=$2
txtvalue=$3
fulldomain=$sub.$root
-
+
_info "Updating record"
-
+
if ! _rest POST "Record.Modify" "login_token=$DP_Id,$DP_Key&format=json&domain_id=$_domain_id&sub_domain=$_sub_domain&record_type=TXT&value=$txtvalue&record_line=默认&record_id=$record_id"; then
return 1
fi
-
- if printf "$response" | grep "Action completed successful" ; then
-
+
+ if printf "$response" | grep "Action completed successful"; then
+
return 0
fi
-
+
return 1 #error
}
-
-
-
#################### Private functions bellow ##################################
#_acme-challenge.www.domain.com
#returns
@@ -153,14 +142,14 @@ _get_root() {
h=$(printf $domain | cut -d . -f $i-100)
if [ -z "$h" ]; then
#not valid
- return 1;
+ return 1
fi
-
+
if ! _rest POST "Domain.Info" "login_token=$DP_Id,$DP_Key&format=json&domain=$h"; then
return 1
fi
-
- if printf "$response" | grep "Action completed successful" >/dev/null ; then
+
+ if printf "$response" | grep "Action completed successful" >/dev/null; then
_domain_id=$(printf "%s\n" "$response" | _egrep_o \"id\":\"[^\"]*\" | cut -d : -f 2 | tr -d \")
_debug _domain_id "$_domain_id"
if [ "$_domain_id" ]; then
@@ -178,7 +167,6 @@ _get_root() {
return 1
}
-
#Usage: method URI data
_rest() {
m=$1
@@ -186,16 +174,16 @@ _rest() {
data="$3"
_debug $ep
url="$REST_API/$ep"
-
+
_debug url "$url"
-
+
if [ "$data" ]; then
_debug2 data "$data"
response="$(_post $data "$url")"
else
response="$(_get "$url")"
fi
-
+
if [ "$?" != "0" ]; then
_err "error $ep"
return 1
@@ -203,5 +191,3 @@ _rest() {
_debug2 response "$response"
return 0
}
-
-
diff --git a/dnsapi/dns_lua.sh b/dnsapi/dns_lua.sh
old mode 100644
new mode 100755