#!/usr/bin/env python3
import os

# 自动启动文件路径
AUTOSTART_PATH = "/storage/.config/autostart.sh"

# 目标脚本关键词（用于匹配需要删除的命令）
target_scripts = [
    "RunScript(special://skin/scripts/skinupdate.py)",
    "RunScript(special://skin/scripts/version.py)",
    "RunScript(special://skin/scripts/refreshratecon.py)"
]

def clean_autostart():
    # 检查 autostart.sh 是否存在
    if not os.path.exists(AUTOSTART_PATH):
        return

    # 读取文件所有行（保留原始换行符，避免格式错乱）
    with open(AUTOSTART_PATH, "r", encoding="utf-8") as f:
        lines = f.readlines()

    # 第一步：先执行原有逻辑（删除目标脚本命令及其关联注释）
    temp_lines = []
    skip_next = False  # 用于跳过注释后的目标命令行
    for line in lines:
        line_stripped = line.strip()

        # 情况1：注释行包含脚本相关描述（需跳过后续命令行）
        if line_stripped.startswith("#") and any(
            script.split("(")[1].split(")")[0] in line_stripped 
            for script in target_scripts
        ):
            skip_next = True
            continue  # 直接跳过该注释行

        # 情况2：命令行包含目标脚本关键词（直接删除）
        if any(script in line_stripped for script in target_scripts):
            skip_next = False
            continue

        # 情况3：不需要跳过的行（保留到临时列表）
        if not skip_next:
            temp_lines.append(line)
        else:
            skip_next = False

    # 第二步：删除“下一行无指令”的孤立注释行
    final_lines = []
    line_count = len(temp_lines)
    
    for i in range(line_count):
        current_line = temp_lines[i]
        current_stripped = current_line.strip()

        # 不是注释行：直接保留
        if not current_stripped.startswith("#"):
            final_lines.append(current_line)
            continue

        # 是注释行：判断下一行是否为有效指令行
        is_isolated = True
        # 遍历下一行及后续行，直到找到非空行
        for j in range(i + 1, line_count):
            next_line = temp_lines[j]
            next_stripped = next_line.strip()

            if next_stripped == "":  # 跳过空行
                continue
            # 下一行是有效指令行（非注释、非空）：当前注释不是孤立的
            if not next_stripped.startswith("#"):
                is_isolated = False
            break  # 找到第一个非空行就停止判断

        # 非孤立注释行：保留；孤立注释行：删除
        if not is_isolated:
            final_lines.append(current_line)

    # 将最终结果写回文件（覆盖原内容）
    with open(AUTOSTART_PATH, "w", encoding="utf-8") as f:
        f.writelines(final_lines)

if __name__ == "__main__":
    clean_autostart()