config2global_config.py 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. # -*- coding: utf-8 -*-
  2. import os
  3. import copy
  4. import yaml
  5. file_name = 'merge.yaml'
  6. config_file = {
  7. "mixed-port": 7890,
  8. "allow-lan": True,
  9. "bind-address": "*",
  10. "mode": "rule",
  11. "log-level": "info",
  12. "external-controller": "0.0.0.0:9090",
  13. "secret": "",
  14. "dns": {
  15. "enable": False,
  16. "ipv6": False,
  17. "nameserver": [],
  18. "fallback": []
  19. },
  20. "proxies": [],
  21. "proxy-groups": [{"name": "GLOBAL", "type": "select", "proxies": []}],
  22. }
  23. def process_yaml_file():
  24. proxy_list = []
  25. with open(file_name, 'r', encoding='utf-8') as file:
  26. data = yaml.safe_load(file)
  27. if not data:
  28. print(f"Error reading {file_name}")
  29. return
  30. proxies = data['proxies']
  31. for proxy in proxies:
  32. if '剩余流量' in proxy['name']:
  33. continue
  34. if '套餐到期' in proxy['name']:
  35. continue
  36. if '有效期' in proxy['name']:
  37. continue
  38. proxy_list.append(proxy)
  39. proxy_list_sorted = sorted(proxy_list, key=lambda x: x['name'] if 'name' in x else '')
  40. return proxy_list_sorted
  41. def create_config_file(proxy_list_sorted):
  42. config_file['proxies'] = proxy_list_sorted
  43. for proxy_list in proxy_list_sorted:
  44. config_file['proxy-groups'][0]['proxies'].append(proxy_list['name'])
  45. if __name__ == '__main__':
  46. proxy_list_sorted = process_yaml_file()
  47. create_config_file(proxy_list_sorted)
  48. with open(f'config.yaml', 'w', encoding='utf-8') as file:
  49. yaml.dump(config_file, file, allow_unicode=True, default_flow_style=False)
  50. print('done!')