[~] 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 |       - ./d1/nginx_config.py:/app/d1/nginx_config.py:ro | ||||||
|       - ./tmp/cache/forward.nginx.json:/app/tmp/cache/forward.nginx.json:ro |       - ./tmp/cache/forward.nginx.json:/app/tmp/cache/forward.nginx.json:ro | ||||||
|     restart: always |     restart: always | ||||||
|     ports: |   dynu: | ||||||
|       - 80:80 |     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: |   #forward: | ||||||
|   #  build: |   #  build: | ||||||
|   #    context: . |   #    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