Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ruanhaishen
Acme.Sh
Commits
20ed4f96
Unverified
Commit
20ed4f96
authored
Jul 15, 2022
by
neil
Committed by
GitHub
Jul 15, 2022
Browse files
Merge pull request #4182 from NerLOR/master
Update dns_world4you
parents
e2eb685d
3a29e034
Changes
1
Hide whitespace changes
Inline
Side-by-side
dnsapi/dns_world4you.sh
View file @
20ed4f96
...
...
@@ -12,7 +12,7 @@ RECORD=''
# Usage: dns_world4you_add <fqdn> <value>
dns_world4you_add
()
{
fqdn
=
"
$1
"
fqdn
=
$(
echo
"
$1
"
| _lower_case
)
value
=
"
$2
"
_info
"Using world4you to add record"
_debug fulldomain
"
$fqdn
"
...
...
@@ -49,12 +49,12 @@ dns_world4you_add() {
ret
=
$(
_post
"
$body
"
"
$WORLD4YOU_API
/
$paketnr
/dns"
''
POST
'application/x-www-form-urlencoded'
)
_resethttp
if
_contains
"
$(
_head_n
3
<
"
$HTTP_HEADER
"
)
"
'302'
;
then
if
_contains
"
$(
_head_n
1
<
"
$HTTP_HEADER
"
)
"
'302'
;
then
res
=
$(
_get
"
$WORLD4YOU_API
/
$paketnr
/dns"
)
if
_contains
"
$res
"
"successfully"
;
then
return
0
else
msg
=
$(
echo
"
$res
"
|
grep
-A
15
'data-type="danger"'
|
grep
"<h3[^>]*>[^<]"
|
sed
's/<[^>]*>
\|
^\s*//g'
)
msg
=
$(
echo
"
$res
"
|
grep
-A
15
'data-type="danger"'
|
grep
"<h3[^>]*>[^<]"
|
sed
's/<[^>]*>
//g'
|
sed
's/
^\s*//g'
)
if
[
"
$msg
"
=
''
]
;
then
_err
"Unable to add record: Unknown error"
echo
"
$ret
"
>
'error-01.html'
...
...
@@ -66,15 +66,15 @@ dns_world4you_add() {
return
1
fi
else
_err
"
$(
_head_n 3 <
"
$HTTP_HEADER
"
)
"
_err
"
View
$HTTP_HEADER
for debuggin
g"
msg
=
$(
echo
"
$ret
"
|
grep
'"form-error-message"'
|
sed
's/^.*<div class="form-error-message">\([^<]*\)<\/div>.*$/\1/'
)
_err
"
Unable to add record: my.world4you.com:
$ms
g
"
return
1
fi
}
# Usage: dns_world4you_rm <fqdn> <value>
dns_world4you_rm
()
{
fqdn
=
"
$1
"
fqdn
=
$(
echo
"
$1
"
| _lower_case
)
value
=
"
$2
"
_info
"Using world4you to remove record"
_debug fulldomain
"
$fqdn
"
...
...
@@ -113,12 +113,12 @@ dns_world4you_rm() {
ret
=
$(
_post
"
$body
"
"
$WORLD4YOU_API
/
$paketnr
/dns/record/delete"
''
POST
'application/x-www-form-urlencoded'
)
_resethttp
if
_contains
"
$(
_head_n
3
<
"
$HTTP_HEADER
"
)
"
'302'
;
then
if
_contains
"
$(
_head_n
1
<
"
$HTTP_HEADER
"
)
"
'302'
;
then
res
=
$(
_get
"
$WORLD4YOU_API
/
$paketnr
/dns"
)
if
_contains
"
$res
"
"successfully"
;
then
return
0
else
msg
=
$(
echo
"
$res
"
|
grep
-A
15
'data-type="danger"'
|
grep
"<h3[^>]*>[^<]"
|
sed
's/<[^>]*>
\|
^\s*//g'
)
msg
=
$(
echo
"
$res
"
|
grep
-A
15
'data-type="danger"'
|
grep
"<h3[^>]*>[^<]"
|
sed
's/<[^>]*>
//g'
|
sed
's/
^\s*//g'
)
if
[
"
$msg
"
=
''
]
;
then
_err
"Unable to remove record: Unknown error"
echo
"
$ret
"
>
'error-01.html'
...
...
@@ -130,8 +130,8 @@ dns_world4you_rm() {
return
1
fi
else
_err
"
$(
_head_n 3 <
"
$HTTP_HEADER
"
)
"
_err
"
View
$HTTP_HEADER
for debuggin
g"
msg
=
$(
echo
"
$ret
"
|
grep
"form-error-message"
|
sed
's/^.*<div class="form-error-message">\([^<]*\)<\/div>.*$/\1/'
)
_err
"
Unable to remove record: my.world4you.com:
$ms
g
"
return
1
fi
}
...
...
@@ -155,29 +155,42 @@ _login() {
_saveaccountconf_mutable WORLD4YOU_USERNAME
"
$WORLD4YOU_USERNAME
"
_saveaccountconf_mutable WORLD4YOU_PASSWORD
"
$WORLD4YOU_PASSWORD
"
_resethttp
export
ACME_HTTP_NO_REDIRECTS
=
1
page
=
$(
_get
"
$WORLD4YOU_API
/login"
)
_resethttp
if
_contains
"
$(
_head_n 1 <
"
$HTTP_HEADER
"
)
"
'302'
;
then
_info
"Already logged in"
_parse_sessid
return
0
fi
_info
"Logging in..."
username
=
"
$WORLD4YOU_USERNAME
"
password
=
"
$WORLD4YOU_PASSWORD
"
csrf_token
=
$(
_get
"
$WORLD4YOU_API
/login
"
|
grep
'_csrf_token'
|
sed
's/^.*<input[^>]*value=\"\([^"]*\)\".*$/\1/'
)
sessid
=
$(
grep
'W4YSESSID'
<
"
$HTTP_HEADER
"
|
sed
's/^.*W4YSESSID=\([^;]*\);.*$/\1/'
)
csrf_token
=
$(
echo
"
$page
"
|
grep
'_csrf_token'
|
sed
's/^.*<input[^>]*value=\"\([^"]*\)\".*$/\1/'
)
_parse_sessid
export
_H1
=
"Cookie: W4YSESSID=
$sessid
"
export
_H2
=
"X-Requested-With: XMLHttpRequest"
body
=
"_username=
$username
&_password=
$password
&_csrf_token=
$csrf_token
"
ret
=
$(
_post
"
$body
"
"
$WORLD4YOU_API
/login"
''
POST
'application/x-www-form-urlencoded'
)
unset
_H2
_debug ret
"
$ret
"
if
_contains
"
$ret
"
"
\"
success
\"
:true"
;
then
_info
"Successfully logged in"
sessid
=
$(
grep
'W4YSESSID'
<
"
$HTTP_HEADER
"
|
sed
's/^.*W4YSESSID=\([^;]*\);.*$/\1/'
)
_parse_sessid
else
_err
"Unable to log in:
$(
echo
"
$ret
"
|
sed
's/^.*"message":"\([^\"]*\)".*$/\1/'
)
"
msg
=
$(
echo
"
$ret
"
|
sed
's/^.*"message":"\([^\"]*\)".*$/\1/'
)
_err
"Unable to log in: my.world4you.com:
$msg
"
return
1
fi
}
# Usage _get_paketnr <fqdn> <form>
# Usage
:
_get_paketnr <fqdn> <form>
_get_paketnr
()
{
fqdn
=
"
$1
"
form
=
"
$2
"
...
...
@@ -200,3 +213,8 @@ _get_paketnr() {
PAKETNR
=
$(
echo
"
$form
"
|
grep
"data-textfilter=
\"
.*
$domain
"
| _tail_n 1 |
sed
"s|.*
$WORLD4YOU_API
/
\\
([0-9]*
\\
)/.*|
\\
1|"
)
return
0
}
# Usage: _parse_sessid
_parse_sessid
()
{
sessid
=
$(
grep
'W4YSESSID'
<
"
$HTTP_HEADER
"
| _tail_n 1 |
sed
's/^.*W4YSESSID=\([^;]*\);.*$/\1/'
)
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment