Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
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
Show 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