4 # REGRU_API_Username="test"
6 # REGRU_API_Password="test"
9 REGRU_API_URL
="https://api.reg.ru/api/regru2"
11 ######## Public functions #####################
17 REGRU_API_Username
="${REGRU_API_Username:-$(_readaccountconf_mutable REGRU_API_Username)}"
18 REGRU_API_Password
="${REGRU_API_Password:-$(_readaccountconf_mutable REGRU_API_Password)}"
19 if [ -z "$REGRU_API_Username" ] ||
[ -z "$REGRU_API_Password" ]; then
22 _err
"You don't specify regru password or username."
26 _saveaccountconf_mutable REGRU_API_Username
"$REGRU_API_Username"
27 _saveaccountconf_mutable REGRU_API_Password
"$REGRU_API_Password"
29 _debug
"First detect the root zone"
30 if ! _get_root
"$fulldomain"; then
34 _debug _domain
"$_domain"
36 _subdomain
=$
(echo "$fulldomain" |
sed -r "s/.$_domain//")
37 _debug _subdomain
"$_subdomain"
39 _info
"Adding TXT record to ${fulldomain}"
40 _regru_rest POST
"zone/add_txt" "input_data={%22username%22:%22${REGRU_API_Username}%22,%22password%22:%22${REGRU_API_Password}%22,%22domains%22:[{%22dname%22:%22${_domain}%22}],%22subdomain%22:%22${_subdomain}%22,%22text%22:%22${txtvalue}%22,%22output_content_type%22:%22plain%22}&input_format=json"
42 if ! _contains
"${response}" 'error'; then
45 _err
"Could not create resource record, check logs"
54 REGRU_API_Username
="${REGRU_API_Username:-$(_readaccountconf_mutable REGRU_API_Username)}"
55 REGRU_API_Password
="${REGRU_API_Password:-$(_readaccountconf_mutable REGRU_API_Password)}"
56 if [ -z "$REGRU_API_Username" ] ||
[ -z "$REGRU_API_Password" ]; then
59 _err
"You don't specify regru password or username."
63 _debug
"First detect the root zone"
64 if ! _get_root
"$fulldomain"; then
68 _debug _domain
"$_domain"
70 _subdomain
=$
(echo "$fulldomain" |
sed -r "s/.$_domain//")
71 _debug _subdomain
"$_subdomain"
73 _info
"Deleting resource record $fulldomain"
74 _regru_rest POST
"zone/remove_record" "input_data={%22username%22:%22${REGRU_API_Username}%22,%22password%22:%22${REGRU_API_Password}%22,%22domains%22:[{%22dname%22:%22${_domain}%22}],%22subdomain%22:%22${_subdomain}%22,%22content%22:%22${txtvalue}%22,%22record_type%22:%22TXT%22,%22output_content_type%22:%22plain%22}&input_format=json"
76 if ! _contains
"${response}" 'error'; then
79 _err
"Could not delete resource record, check logs"
84 #################### Private functions below ##################################
85 #_acme-challenge.www.domain.com
91 _regru_rest POST
"service/get_list" "username=${REGRU_API_Username}&password=${REGRU_API_Password}&output_format=xml&servtype=domain"
92 domains_list
=$
(echo "${response}" |
grep dname |
sed -r "s/.*dname=\"([^\"]+)\".*/\\1/g")
94 for ITEM
in ${domains_list}; do
98 _domain
="$(_idn "${ITEM}")"
99 _debug _domain
"${_domain}"
116 export _H1
="Content-Type: application/x-www-form-urlencoded"
118 if [ "$m" != "GET" ]; then
120 response
="$(_post "$data" "$REGRU_API_URL/$ep" "" "$m")"
122 response
="$(_get "$REGRU_API_URL/$ep?
$data")"
125 _debug response
"${response}"