parent
							
								
									377a37e4c9
								
							
						
					
					
						commit
						5342c7c82b
					
				|  | @ -0,0 +1,108 @@ | |||
| #!/usr/bin/env sh | ||||
| 
 | ||||
| # West.cn Domain api | ||||
| # | ||||
| #WEST_Username="uername" | ||||
| # | ||||
| #WEST_Key="sADDsdasdgdsf" | ||||
| 
 | ||||
| REST_API="https://api.west.cn/API/v2" | ||||
| 
 | ||||
| ########  Public functions ##################### | ||||
| 
 | ||||
| #Usage: add  _acme-challenge.www.domain.com   "XKrxpRBosdIKFzxW_CT3KLZNf6q0HG9i01zxXp5CPBs" | ||||
| dns_west_add() { | ||||
|   fulldomain=$1 | ||||
|   txtvalue=$2 | ||||
| 
 | ||||
|   WEST_Username="${WEST_Username:-$(_readaccountconf_mutable WEST_Username)}" | ||||
|   WEST_Key="${WEST_Key:-$(_readaccountconf_mutable WEST_Key)}" | ||||
|   if [ -z "$WEST_Username" ] || [ -z "$WEST_Key" ]; then | ||||
|     WEST_Username="" | ||||
|     WEST_Key="" | ||||
|     _err "You don't specify dnspod api key and key id yet." | ||||
|     _err "Please create you key and try again." | ||||
|     return 1 | ||||
|   fi | ||||
| 
 | ||||
|   #save the api key and email to the account conf file. | ||||
|   _saveaccountconf_mutable WEST_Username "$WEST_Username" | ||||
|   _saveaccountconf_mutable WEST_Key "$WEST_Key" | ||||
| 
 | ||||
|   add_record "$fulldomain" "$txtvalue" | ||||
| } | ||||
| 
 | ||||
| #Usage: rm _acme-challenge.www.domain.com | ||||
| dns_west_rm() { | ||||
|   fulldomain=$1 | ||||
|   txtvalue=$2 | ||||
| 
 | ||||
|   WEST_Username="${WEST_Username:-$(_readaccountconf_mutable WEST_Username)}" | ||||
|   WEST_Key="${WEST_Key:-$(_readaccountconf_mutable WEST_Key)}" | ||||
| 
 | ||||
|   if ! _rest POST "domain/dns/" "act=dnsrec.list&username=$WEST_Username&apikey=$WEST_Key&domain=$fulldomain&hostname=$fulldomain&record_type=TXT"; then | ||||
|     _err "Record.Lis error." | ||||
|     return 1 | ||||
|   fi | ||||
| 
 | ||||
|   if _contains "$response" 'no records'; then | ||||
|     _info "Don't need to remove." | ||||
|     return 0 | ||||
|   fi | ||||
| 
 | ||||
|   record_id=$(echo "$response" | tr "{" "\n" | grep -- "$txtvalue" | grep '^"record_id"' | cut -d : -f 2 | cut -d ',' -f 1) | ||||
|   _debug record_id "$record_id" | ||||
|   if [ -z "$record_id" ]; then | ||||
|     _err "Can not get record id." | ||||
|     return 1 | ||||
|   fi | ||||
| 
 | ||||
|   if ! _rest POST "domain/dns/" "act=dnsrec.remove&username=$WEST_Username&apikey=$WEST_Key&domain=$fulldomain&hostname=$fulldomain&record_id=$record_id"; then | ||||
|     _err "Record.Remove error." | ||||
|     return 1 | ||||
|   fi | ||||
| 
 | ||||
|   _contains "$response" "success" | ||||
| 
 | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| #add the txt record. | ||||
| #usage: add fulldomain txtvalue | ||||
| add_record() { | ||||
|   fulldomain=$1 | ||||
|   txtvalue=$2 | ||||
| 
 | ||||
|   _info "Adding record" | ||||
| 
 | ||||
|   if ! _rest POST "domain/dns/" "act=dnsrec.add&username=$WEST_Username&apikey=$WEST_Key&domain=$fulldomain&hostname=$fulldomain&record_type=TXT&value=$txtvalue"; then | ||||
|     return 1 | ||||
|   fi | ||||
| 
 | ||||
|   _contains "$response" "success" | ||||
| } | ||||
| 
 | ||||
| #Usage: method  URI  data | ||||
| _rest() { | ||||
|   m="$1" | ||||
|   ep="$2" | ||||
|   data="$3" | ||||
|   _debug "$ep" | ||||
|   url="$REST_API/$ep" | ||||
| 
 | ||||
|   _debug url "$url" | ||||
| 
 | ||||
|   if [ "$m" = "GET" ]; then | ||||
|     response="$(_get "$url" | tr -d '\r')" | ||||
|   else | ||||
|     _debug2 data "$data" | ||||
|     response="$(_post "$data" "$url" | tr -d '\r')" | ||||
|   fi | ||||
| 
 | ||||
|   if [ "$?" != "0" ]; then | ||||
|     _err "error $ep" | ||||
|     return 1 | ||||
|   fi | ||||
|   _debug2 response "$response" | ||||
|   return 0 | ||||
| } | ||||
		Loading…
	
		Reference in New Issue
	
	 mrbaiwei
						mrbaiwei