#!/bin/bash
source /opt/bashimport/transhell.sh
load_transhell_debug

# 配置文件路径
mkdir -p $HOME/.config/GXDE/gxde-autotrash/
CONFIG_FILE="$HOME/.config/GXDE/gxde-autotrash/autotrash_manager.conf"

# 默认清理天数
DEFAULT_DAYS=30

# 加载配置
if [ -f "$CONFIG_FILE" ]; then
    source "$CONFIG_FILE"
else
    CLEANUP_DAYS=$DEFAULT_DAYS
fi
create_k9_timer() {
    mkdir -p "$HOME/.local/share/GXDE/gxde-k9/timer/"
    cat <<EOF >"$HOME/.local/share/GXDE/gxde-k9/timer/autotrash.timer"
* */6 * * * | /usr/bin/gxde-autotrash --cleanup

EOF

}
create_autostart(){
    mkdir -p "$HOME/.config/autostart"
    cat <<EOF >"$HOME/.config/autostart/autotrash.desktop"
[Desktop Entry]
Version=1.0
Name=trash-autoclean
Name[zh_CN]=自动清理回收站
Comment=
Type=Application
Exec=bash -c "/usr/bin/gxde-autotrash --cleanup"
Icon=user-trash-full
Categories=Utility

EOF
}
# 启用或禁用服务
toggle_service() {
    if [[ -e "$HOME/.local/share/GXDE/gxde-k9/timer/autotrash.timer" ]]; then
        systemctl --user stop autotrash.timer
        systemctl --user disable autotrash.timer
        rm -vf "$HOME/.local/share/GXDE/gxde-k9/timer/autotrash.timer"
        rm -vf "$HOME/.config/autostart/autotrash.desktop"
        garma --info --text="${TRANSHELL_CONTENT_DISABLED_SERVICE}"
    else
        create_k9_timer
        create_autostart
        garma --info --text="${TRANSHELL_CONTENT_ENABLED_SERVICE}"
    fi
}

# 设置清理天数
set_cleanup_days() {
    local days
    days=$(garma --entry --title="${TRANSHELL_CONTENT_SET_DAYS_TITLE}" --text="${TRANSHELL_CONTENT_SET_DAYS_PROMPT}" --entry-text="$CLEANUP_DAYS")
    if [[ "$days" =~ ^[0-9]+$ ]]; then
        CLEANUP_DAYS=$days
        echo "CLEANUP_DAYS=$CLEANUP_DAYS" >"$CONFIG_FILE"
    else
        garma --error --text="${TRANSHELL_CONTENT_INVALID_DAYS}"
    fi
}

# 执行清理操作
cleanup_trash() {
    autotrash -d "$CLEANUP_DAYS"
}




# 检查服务状态
get_service_status() {
    if [[ -e "$HOME/.local/share/GXDE/gxde-k9/timer/autotrash.timer" ]]; then
        echo "${TRANSHELL_CONTENT_DISABLE_SERVICE}"
    else
        echo "${TRANSHELL_CONTENT_ENABLE_SERVICE}"
    fi
}

# 主菜单
main_menu() {
    while true; do
        service_status=$(get_service_status)
        choice=$(zenity --list --text="${TRANSHELL_CONTENT_EXPLAIN_FUNCION}" --width 450 --height 500 --title="${TRANSHELL_CONTENT_MAIN_TITLE}" \
            --column="${TRANSHELL_CONTENT_OPERATION}" "${service_status}" "${TRANSHELL_CONTENT_SET_DAYS} (${CLEANUP_DAYS} ${TRANSHELL_CONTENT_DAYS})" "${TRANSHELL_CONTENT_CLEANUP_NOW}" "${TRANSHELL_CONTENT_EXIT}")

        case "$choice" in
            "${TRANSHELL_CONTENT_ENABLE_SERVICE}"|"${TRANSHELL_CONTENT_DISABLE_SERVICE}")
                toggle_service
                ;;
            "${TRANSHELL_CONTENT_SET_DAYS} (${CLEANUP_DAYS} ${TRANSHELL_CONTENT_DAYS})")
                set_cleanup_days
                ;;
            "${TRANSHELL_CONTENT_CLEANUP_NOW}")
                cleanup_trash
                notify-send "Autotrash" "${TRANSHELL_CONTENT_CLEANUP_COMPLETE}"
                ;;
            "${TRANSHELL_CONTENT_EXIT}")
                exit 0
                ;;
            *)
                exit 0
                ;;
        esac
    done
}

# 处理参数
case "$1" in
    --cleanup)
        cleanup_trash
        ;;
    *)
        main_menu
        ;;
esac