[~] Refactor
This commit is contained in:
parent
dc98e808df
commit
5077588000
84
d1/dynu_update.py
Normal file
84
d1/dynu_update.py
Normal file
@ -0,0 +1,84 @@
|
||||
import requests
|
||||
import logging
|
||||
import pprint
|
||||
import copy
|
||||
import io
|
||||
import json
|
||||
import sys
|
||||
|
||||
logging.warning('start dynu_update')
|
||||
with io.open(
|
||||
sys.argv[1],
|
||||
'r'
|
||||
) as f:
|
||||
dynu_config = json.load(f)
|
||||
logging.warning('loaded dynu_config')
|
||||
|
||||
t2 = requests.get(
|
||||
'https://api.dynu.com/v2/oauth2/token',
|
||||
auth=(
|
||||
dynu_config['oath2_client_id'],
|
||||
dynu_config['oath2_secret'],
|
||||
)
|
||||
).json()
|
||||
logging.warning('got access_token')
|
||||
|
||||
t1 = requests.get(
|
||||
'https://api.dynu.com/v2/dns',
|
||||
headers={
|
||||
'Authorization': 'Bearer %s' % t2['access_token']
|
||||
}
|
||||
).json()
|
||||
DYNU_DOMAIN = t1['domains'][0]
|
||||
logging.warning('got dynu_domain')
|
||||
|
||||
t3 = requests.get(
|
||||
'https://api.dynu.com/v2/dns/%d/webredirect' % DYNU_DOMAIN['id'],
|
||||
headers={
|
||||
'Authorization': 'Bearer %s' % t2['access_token']
|
||||
}
|
||||
).json()
|
||||
DYNU_REDIRECT = t3['webRedirects'][0]
|
||||
logging.warning('got dynu_redirect')
|
||||
|
||||
NGROK_DOMAIN = sys.argv[2]
|
||||
t6 = requests.get('http://%s:4040/api/tunnels' % NGROK_DOMAIN).json()
|
||||
TUNNEL_URL = t6['tunnels'][0]['public_url']
|
||||
logging.warning('got tunnel_url')
|
||||
|
||||
|
||||
|
||||
if TUNNEL_URL != DYNU_REDIRECT['url']:
|
||||
t5 = copy.deepcopy(t3['webRedirects'][0])
|
||||
t5.update(
|
||||
dict(
|
||||
url=TUNNEL_URL,
|
||||
)
|
||||
)
|
||||
|
||||
DYNU_REDIRECT = requests.post(
|
||||
'https://api.dynu.com/v2/dns/%d/webRedirect/%d' % (
|
||||
DYNU_DOMAIN['id'],
|
||||
t3['webRedirects'][0]['id']
|
||||
),
|
||||
headers={
|
||||
'Authorization': 'Bearer %s' % t2['access_token']
|
||||
},
|
||||
json=t5
|
||||
).json()
|
||||
logging.warning('updated dynu_redirect')
|
||||
else:
|
||||
logging.warning('skip update dynu_redirect')
|
||||
|
||||
logging.warning(
|
||||
pprint.pformat(
|
||||
dict(
|
||||
NGROK_DOMAIN=NGROK_DOMAIN,
|
||||
TUNNEL_URL=TUNNEL_URL,
|
||||
DYNU_DOMAIN=DYNU_DOMAIN,
|
||||
DYNU_REDIRECT=DYNU_REDIRECT,
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
logging.warning('done dynu_update')
|
@ -8,8 +8,18 @@ services:
|
||||
- ./d1/nginx_config.py:/app/d1/nginx_config.py:ro
|
||||
- ./tmp/cache/forward.nginx.json:/app/tmp/cache/forward.nginx.json:ro
|
||||
restart: always
|
||||
ports:
|
||||
- 80:80
|
||||
dynu:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: ./docker/dynu/Dockerfile
|
||||
volumes:
|
||||
- ./d1/dynu_update.py:/app/d1/dynu_update.py:ro
|
||||
- ./tmp/cache/dynu.auth.json:/app/tmp/cache/dynu.auth.json:ro
|
||||
ngrok:
|
||||
image: wernight/ngrok
|
||||
links:
|
||||
- app
|
||||
command: ['ngrok', 'http', 'app:80']
|
||||
#forward:
|
||||
# build:
|
||||
# context: .
|
||||
|
9
docker/dynu/Dockerfile
Normal file
9
docker/dynu/Dockerfile
Normal file
@ -0,0 +1,9 @@
|
||||
FROM python:3
|
||||
WORKDIR /app
|
||||
|
||||
RUN pip3 install requests
|
||||
|
||||
ENTRYPOINT /bin/sh -c "\
|
||||
python3 d1/dynu_update.py tmp/cache/dynu.auth.json ngrok \
|
||||
"
|
||||
|
Loading…
Reference in New Issue
Block a user