import time
import sys
import os

def remind_write_log():
    """写日志提醒的核心函数:弹窗+终端文字提醒"""
    # 终端打印醒目的提醒文字
    print("="*50)
    print("⏰ 【日志提醒】当前时间:{},该写日志啦!".format(time.strftime("%Y-%m-%d %H:%M:%S")))
    print("="*50)
    
    # 跨系统弹窗提醒(核心:不同系统调用内置弹窗命令,无第三方依赖)
    msg = "该写日志啦!\n当前时间:{}".format(time.strftime("%Y-%m-%d %H:%M:%S"))
    if sys.platform.startswith('win'):
        # Windows系统:用msg命令弹窗(系统自带,无需额外安装)
        os.system(f'msg * "{msg}"')
    elif sys.platform.startswith('darwin'):
        # macOS系统:用osascript调用系统通知
        os.system(f'osascript -e \'display notification "{msg}" with title "日志提醒" sound name "default"\'')
    else:
        # Linux系统:用zenity弹窗(大部分Linux发行版自带,无则执行sudo apt install zenity)
        os.system(f'zenity --info --title="日志提醒" --text="{msg}" --width=300')

def main():
    """主函数:每小时执行一次提醒,无限循环运行"""
    print("📌 写日志定时提醒脚本已启动!")
    print("📌 提醒频率:每小时一次 | 关闭脚本请按 Ctrl+C")
    print("="*50)
    # 先触发一次初始提醒(可选,注释掉则从1小时后开始提醒)
    remind_write_log()
    try:
        # 无限循环,每3600秒(1小时)执行一次提醒
        while True:
            time.sleep(3600)  # 暂停1小时
            remind_write_log()
    except KeyboardInterrupt:
        # 捕获Ctrl+C,优雅退出
        print("\n👋 写日志提醒脚本已手动关闭,下次见!")

if __name__ == "__main__":
    main()