from pathlib import Path
from datetime import datetime

src = Path('/etc/caddy/Caddyfile')
text = src.read_text()
old_proxy = "\t\treverse_proxy http://127.0.0.1:8090 http://103.114.163.226:28090 http://74.48.114.71:48090 http://31.58.223.35:38090 {"
new_proxy = "\t\treverse_proxy http://127.0.0.1:8090 http://74.48.114.71:48090 http://31.58.223.35:38090 {"
old_weight = "\t\t\tlb_policy weighted_round_robin 10 10 4 1"
new_weight = "\t\t\tlb_policy weighted_round_robin 10 4 1"

if old_proxy not in text:
    raise SystemExit('未命中旧 upstream 行，停止修改')
if old_weight not in text:
    raise SystemExit('未命中旧权重行，停止修改')

backup = src.with_name(f'Caddyfile.bak_{datetime.now().strftime("%Y%m%d_%H%M%S")}_before_remove_103')
backup.write_text(text)
patched = text.replace(old_proxy, new_proxy, 1).replace(old_weight, new_weight, 1)
src.write_text(patched)
print(f'backup={backup}')
print('patched=/etc/caddy/Caddyfile')
