import time
import pathlib
import toml
import typing

class ConfigFile:
    def __init__(self, path: str):
        self.path = pathlib.Path(path)
        if not self.path.exists():
            self.path.touch()
        self.data = dict()
        self._load()

    def _load(self):
        """从文件加载配置数据"""
        with open(self.path, 'r') as f:
            try:
                self.data = toml.load(f)
            except toml.TomlDecodeError:
                self.data = {}

    def modify(self, key: str, value: typing.Any):
        """修改配置值并保存"""
        self.data[key] = value
        self.save()

    def save(self, path: typing.Union[str, pathlib.Path] = ""):
        """保存配置到文件"""
        save_path = pathlib.Path(path) if path else self.path
        with open(save_path, 'w') as f:
            toml.dump(self.data, f)

    def get(self, key: str, default: typing.Any = None) -> typing.Any:
        """获取配置值，如果不存在返回默认值"""
        return self.data.get(key, default)


def get_daystamp() -> int:
    """获取当前日戳(以天为单位的整数时间戳)"""
    config = ConfigFile("config.toml")
    time_override = config.get("time_override", -1)
    
    if time_override != -1:
        return int(time_override)
    
    return int(time.time() // (24 * 3600))