#!/bin/bash

# SMG Player Config Editor
# Dosya yolu

PLAYER="/home/smg/smgplayer"
CONFIG_FILE="/home/smg/smgplayer/config.ini"
TEMP_FILE="/tmp/config_temp.ini"

# Dialog kurulu mu kontrol et
if ! command -v dialog &> /dev/null; then
    echo "Dialog paketi kurulu değil. Kurmak için:"
    echo "sudo apt update && sudo apt install dialog"
    exit 1
fi

# Config dosyası var mı kontrol et
if [ ! -f "$CONFIG_FILE" ]; then
    echo "Config dosyası bulunamadı: $CONFIG_FILE"
    exit 1
fi

# Mevcut değerleri oku & database sıfırlama
read_config() {
    DEVICE_ID=$(grep "^deviceID=" "$CONFIG_FILE" | cut -d'=' -f2)
    SOUND_CARD=$(grep "^soundCard=" "$CONFIG_FILE" | cut -d'=' -f2)
    SERVICE_URL=$(grep "^serviceUrl=" "$CONFIG_FILE" | cut -d'=' -f2)
    DOWNLOAD_URL=$(grep "^downloadURL=" "$CONFIG_FILE" | cut -d'=' -f2)
    UPDATE_URL=$(grep "^updateUrl=" "$CONFIG_FILE" | cut -d'=' -f2)
}

# Config dosyasını güncelle
update_config() {
    local param=$1
    local value=$2
    
    # Temp dosyaya kopyala
    cp "$CONFIG_FILE" "$TEMP_FILE"
    
    # Değeri güncelle
    sed -i "s|^${param}=.*|${param}=${value}|" "$TEMP_FILE"
    
    # Orijinal dosyaya geri kopyala
    cp "$TEMP_FILE" "$CONFIG_FILE"
    rm "$TEMP_FILE"
}

# Ana menü
main_menu() {
    while true; do
        read_config
        
        choice=$(dialog --clear --backtitle "SMG Player Config Editor" \
                       --title "Ana Menü" \
                       --menu "Düzenlemek istediğiniz ayarı seçin:" \
                       15 80 8 \
                       1 "Device ID: $DEVICE_ID" \
                       2 "Sound Card: $SOUND_CARD" \
                       3 "Service URL: $SERVICE_URL" \
                       4 "Download URL: $DOWNLOAD_URL" \
                       5 "Update URL: $UPDATE_URL" \
                       6 "Tüm Ayarları Göster" \
		               7 "DB Silme & Player Reset" \
                       8 "Çıkış" \
                       2>&1 >/dev/tty)
        
        clear
        
        case $choice in
            1)
                edit_device_id
                ;;
            2)
                edit_sound_card
                ;;
            3)
                edit_service_url
                ;;
            4)
                edit_download_url
                ;;
            5)
                edit_update_url
                ;;
            6)
                show_all_settings
				;;
			7)
				database_remove_player_reset
                ;;
            8)
                exit 0
                ;;
            *)
                exit 0
                ;;
        esac
    done
}

# Log Klasörü ve DB silme -- Player Reset
database_remove_player_reset(){
    sudo systemctl stop smg.service
    sudo killall watchdog
    sudo killall nodeplayer
    rm -rf "$PLAYER/signage.db"
    rm -rf "$PLAYER/logsDB.db"
    rm -rf "$PLAYER/log/"

    sleep 5

    sudo systemctl start smg.service &
}

# Device ID düzenle
edit_device_id() {
    new_value=$(dialog --clear --backtitle "SMG Player Config Editor" \
                      --title "Device ID Düzenle" \
                      --inputbox "Yeni Device ID değerini girin:" \
                      8 40 "$DEVICE_ID" \
                      2>&1 >/dev/tty)
    
    if [ $? -eq 0 ] && [ ! -z "$new_value" ]; then
        update_config "deviceID" "$new_value"
        dialog --clear --backtitle "SMG Player Config Editor" \
               --title "Başarılı" \
               --msgbox "Device ID güncellendi: $new_value" \
               6 40
    fi
    clear
}

# Sound Card düzenle
edit_sound_card() {
    new_value=$(dialog --clear --backtitle "SMG Player Config Editor" \
                      --title "Sound Card Düzenle" \
                      --inputbox "Yeni Sound Card değerini girin:" \
                      8 40 "$SOUND_CARD" \
                      2>&1 >/dev/tty)
    
    if [ $? -eq 0 ] && [ ! -z "$new_value" ]; then
        update_config "soundCard" "$new_value"
        dialog --clear --backtitle "SMG Player Config Editor" \
               --title "Başarılı" \
               --msgbox "Sound Card güncellendi: $new_value" \
               6 40
    fi
    clear
}

# Service URL düzenle
edit_service_url() {
    new_value=$(dialog --clear --backtitle "SMG Player Config Editor" \
                      --title "Service URL Düzenle" \
                      --inputbox "Yeni Service URL değerini girin:" \
                      8 60 "$SERVICE_URL" \
                      2>&1 >/dev/tty)
    
    if [ $? -eq 0 ] && [ ! -z "$new_value" ]; then
        update_config "serviceUrl" "$new_value"
        dialog --clear --backtitle "SMG Player Config Editor" \
               --title "Başarılı" \
               --msgbox "Service URL güncellendi: $new_value" \
               6 60
    fi
    clear
}

# Download URL düzenle
edit_download_url() {
    new_value=$(dialog --clear --backtitle "SMG Player Config Editor" \
                      --title "Download URL Düzenle" \
                      --inputbox "Yeni Download URL değerini girin:" \
                      8 60 "$DOWNLOAD_URL" \
                      2>&1 >/dev/tty)
    
    if [ $? -eq 0 ] && [ ! -z "$new_value" ]; then
        update_config "downloadURL" "$new_value"
        dialog --clear --backtitle "SMG Player Config Editor" \
               --title "Başarılı" \
               --msgbox "Download URL güncellendi: $new_value" \
               6 60
    fi
    clear
}

# Update URL düzenle
edit_update_url() {
    new_value=$(dialog --clear --backtitle "SMG Player Config Editor" \
                      --title "Update URL Düzenle" \
                      --inputbox "Yeni Update URL değerini girin:" \
                      8 60 "$UPDATE_URL" \
                      2>&1 >/dev/tty)
    
    if [ $? -eq 0 ] && [ ! -z "$new_value" ]; then
        update_config "updateUrl" "$new_value"
        dialog --clear --backtitle "SMG Player Config Editor" \
               --title "Başarılı" \
               --msgbox "Update URL güncellendi: $new_value" \
               6 60
    fi
    clear
}

# Tüm ayarları göster
show_all_settings() {
    read_config
    dialog --clear --backtitle "SMG Player Config Editor" \
           --title "Mevcut Ayarlar" \
           --msgbox "Device ID: $DEVICE_ID\nSound Card: $SOUND_CARD\nService URL: $SERVICE_URL\nDownload URL: $DOWNLOAD_URL\nUpdate URL: $UPDATE_URL" \
           12 80
    clear
}

# Ana programı başlat
main_menu
