mirror of
				https://github.com/taixingyiji/openit.git
				synced 2025-10-31 11:32:14 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			49 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| import os
 | |
| import yaml
 | |
| import requests
 | |
| import shutil
 | |
| from clash import filter
 | |
| 
 | |
| from yaml import SafeLoader
 | |
| def init():
 | |
|     if not os.path.exists('./temp'):
 | |
|         os.mkdir('temp')
 | |
| 
 | |
|     # read from config file
 | |
|     with open('config.yaml', 'r') as reader:
 | |
|         config = yaml.load(reader, Loader=SafeLoader)
 | |
|         http_port = config['http-port']
 | |
|         api_port = config['api-port']
 | |
|         threads = config['threads']
 | |
|         source = str(config['source'])
 | |
|         timeout = config['timeout']
 | |
|         testurl = config['test-url']
 | |
|         outfile = config['outfile']
 | |
|     # get clash config file
 | |
|     if source.startswith('https://'):
 | |
|         proxyconfig = yaml.load(requests.get(source).text, Loader=SafeLoader)
 | |
|     else:
 | |
|         with open(source, 'r') as reader:
 | |
|             proxyconfig = yaml.load(reader, Loader=SafeLoader)
 | |
| 
 | |
|     # set clash api url
 | |
|     baseurl = '127.0.0.1:' + str(api_port)
 | |
|     apiurl = 'http://'+baseurl
 | |
| 
 | |
|     # filter config files
 | |
|     proxyconfig = filter(proxyconfig)
 | |
| 
 | |
|     config = {'port': http_port, 'external-controller': baseurl, 'mode': 'global',
 | |
|               'log-level': 'silent', 'proxies': proxyconfig['proxies']}
 | |
| 
 | |
|     with open('./temp/working.yaml', 'w') as file:
 | |
|         file = yaml.dump(config, file)
 | |
| 
 | |
|     # return all variables
 | |
|     return http_port, api_port, threads, source, timeout, outfile, proxyconfig, apiurl, testurl, config
 | |
| 
 | |
| def cleanup(clash):
 | |
|     shutil.rmtree('./temp')
 | |
|     clash.terminate()
 | |
|     exit(0)
 |