54 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
| #! /usr/bin/env python3
 | |
| 
 | |
| # Origin: https://github.com/Quad9DNS/dnscrypt-settings
 | |
| 
 | |
| import sys
 | |
| 
 | |
| 
 | |
| class Entry:
 | |
|     name = None
 | |
|     description = None
 | |
|     stamps = None
 | |
| 
 | |
|     def __init__(self, name, description, stamps):
 | |
|         self.name = name
 | |
|         self.description = description
 | |
|         self.stamps = stamps
 | |
| 
 | |
| 
 | |
| servers = {}
 | |
| 
 | |
| with sys.stdin as f:
 | |
|     while True:
 | |
|         head = f.readline()
 | |
|         if head == "":
 | |
|             break
 | |
|         parts = head.strip().split("## ")
 | |
|         name = parts[1].strip()
 | |
|         description = f.readline().strip()
 | |
|         stamp = f.readline().strip()
 | |
|         f.readline()
 | |
|         server = Entry(name, description, [stamp])
 | |
|         servers[name] = server
 | |
| 
 | |
| servers2 = {}
 | |
| 
 | |
| for name in servers:
 | |
|     server = servers[name]
 | |
|     parts = name.split("-")
 | |
|     base_name = "-".join(parts[:-1])
 | |
|     ext = parts[-1]
 | |
|     if ext != "pri":
 | |
|         continue
 | |
|     description = server.description
 | |
|     stamps = server.stamps
 | |
|     for extz in ["alt", "alt1", "alt2", "alt3", "alt4"]:
 | |
|         alt_name = base_name + "-" + extz
 | |
|         if alt_name in servers:
 | |
|             alt_ip = servers[alt_name].description.split(" ")[-1]
 | |
|             description += " - " + alt_ip
 | |
|             stamps += servers[alt_name].stamps
 | |
|     print("## " + name)
 | |
|     print(description)
 | |
|     print("\n".join(stamps))
 | |
|     print() |