| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- # -*- coding: utf-8 -*-
- import os
- import copy
- import yaml
- file_name = 'merge.yaml'
- config_file = {
- "mixed-port": 7890,
- "allow-lan": True,
- "bind-address": "*",
- "mode": "rule",
- "log-level": "info",
- "external-controller": "0.0.0.0:9090",
- "secret": "",
- "dns": {
- "enable": False,
- "ipv6": False,
- "nameserver": [],
- "fallback": []
- },
- "proxies": [],
- "proxy-groups": [{"name": "GLOBAL", "type": "select", "proxies": []}],
- }
- def process_yaml_file():
- proxy_list = []
- with open(file_name, 'r', encoding='utf-8') as file:
- data = yaml.safe_load(file)
- if not data:
- print(f"Error reading {file_name}")
- return
- proxies = data['proxies']
- for proxy in proxies:
- if '剩余流量' in proxy['name']:
- continue
- if '套餐到期' in proxy['name']:
- continue
- if '有效期' in proxy['name']:
- continue
- proxy_list.append(proxy)
- proxy_list_sorted = sorted(proxy_list, key=lambda x: x['name'] if 'name' in x else '')
- return proxy_list_sorted
- def create_config_file(proxy_list_sorted):
- config_file['proxies'] = proxy_list_sorted
- for proxy_list in proxy_list_sorted:
- config_file['proxy-groups'][0]['proxies'].append(proxy_list['name'])
- if __name__ == '__main__':
- proxy_list_sorted = process_yaml_file()
- create_config_file(proxy_list_sorted)
- with open(f'config.yaml', 'w', encoding='utf-8') as file:
- yaml.dump(config_file, file, allow_unicode=True, default_flow_style=False)
- print('done!')
|