# -*- coding:utf-8 -*-
"""
@author: yq
@time: 2023/12/28
@desc:  各种工具类
"""

import datetime
import os
import zipfile

import pytz


def f_get_date(offset: int = 0, connect: str = "-") -> str:
    current_date = datetime.datetime.now(pytz.timezone("Asia/Shanghai")).date() + datetime.timedelta(days=offset)
    return current_date.strftime(f"%Y{connect}%m{connect}%d")


def f_get_datetime(offset: int = 0, connect: str = "_") -> str:
    current_date = datetime.datetime.now(pytz.timezone("Asia/Shanghai")) + datetime.timedelta(days=offset)
    return current_date.strftime(f"%Y{connect}%m{connect}%d{connect}%H{connect}%M{connect}%S")


base_dir = os.path.join(".", "cache", f"{f_get_datetime()}")
os.makedirs(base_dir, exist_ok=True)


def f_get_save_path(file_name: str, sub_path=""):
    os.makedirs(os.path.join(base_dir, sub_path), exist_ok=True)
    return os.path.join(base_dir, sub_path, file_name)


def f_create_zip(zip_name, files):
    with zipfile.ZipFile(zip_name, 'w') as zipf:
        for file in files:
            file_name = os.path.basename(file)
            zipf.write(file, file_name)


def f_read_file(file_path) -> str:
    with open(file_path, mode="r", encoding="utf8") as f:
        s = f.read()
    return s