#!/bin/bash
## Το NoTails.. Tails Μενού στα Ελληνικά είναι ένα αρθρωτό (modular) Zenity
## σενάριο (script) ανοιχτού κώδικα (open source) για το Tails OS Live USB.
##
## Copyright (C) 2025  Rebelstreamers, version 1.0 από το gamelink.gr
##
## Το πρόγραμμα αυτό μεταφέρεται σε εσάς "AS IS" και χωρίς καμία υποχρέωση από 
## τον δημιουργό του και καλύπτεται απο την AGPLv3 GNU άδεια έκδοσης.

# set -x

title4="4.Οθόνη Ανάγνωσης RSS στην Επιφάνεια Εργασίας"
echo -e '\033]2;'$title4'\007'
folder_name="NoTails..Tails-Files"

# χρειάζεται για την 3η επιλογή λόγω kgx 
terminal_list=("kgx" "gnome-terminal" "ptyxis" "mate-terminal" ) 

#
# ------------ ΑΠΟ ΕΔΩ ΚΑΙ ΚΑΤΩ ΟΤΙ ΠΕΙΡΑΖΕΤΕ ΕΧΕΙ ΕΠΙΔΡΑΣΗ ------------ 
# ----------------- ΣΤΗΝ ΑΡΧΙΚΗ ΛΕΙΤΟΥΡΓΙΑ ΤΟΥ SCRIPT ------------------
#

source "$HOME/Persistent/$folder_name/NT_Functions.sh"

is_installed="$(command -v tickr)"

# entoli_tor="torsocks"

# if [ "$(yparxi_tor)" == "false" ];then
#     unset -v entoli_tor
# fi


# Χρώματα για τις οθόνες των τερματικών, 
# Με true έχετε τα χρώματα που έχω βάλει εγώ, με ble τα κάνετε όλα μπλε, με gre 
# όλα πράσινα, με yel όλα κίτρινα, με red όλα κόκκινα και με οτιδήποτε εκτός από 
# αυτές τις 5 ονομασίες δεν θα εμφανίζονται καθόλου χρώματα!
# Σημείωση: οι μεταβλητές του κάθε script ορίζουν τα χρώματα στο script του & μόνο
use_color="true"
NC='\033[0m'

# Βάλτε το δικό σας χρώμα αν θέλετε σαν ένα νέο elif αλλά αλλάξτε και την use_color
if [[ "$use_color" == "true" ]]; then 
    RED='\033[1;31m'; GRE='\033[1;32m'; YEL='\033[1;33m'; BLE='\033[1;36m'
elif [[ "$use_color" == "ble" ]]; then 
    RED='\033[1;36m'; GRE='\033[1;36m'; YEL='\033[1;36m'; BLE='\033[1;36m'
elif [[ "$use_color" == "gre" ]]; then
    RED='\033[1;32m'; GRE='\033[1;32m'; YEL='\033[1;32m'; BLE='\033[1;32m'
elif [[ "$use_color" == "yel" ]]; then
    RED='\033[1;33m'; GRE='\033[1;33m'; YEL='\033[1;33m'; BLE='\033[1;33m'
elif [[ "$use_color" == "red" ]]; then
    RED='\033[1;31m'; GRE='\033[1;31m'; YEL='\033[1;31m'; BLE='\033[1;31m'
else
    #χωρίς χρώματα καθόλου
    unset -v RED; unset -v GRE; unset -v YEL; unset -v BLE; unset -v NC
fi


# Έλεγχος για ύπαρξη του zenity. Χωρίς zenity που χρησιμοποεί το Tails OS δεν 
# έχει καμιά απολύτως χρησιμότητα το σενάριο αυτό. 
check_zenity_exists

# αν το λειτουργικό δεν είναι Debian Like πρέπει να προειδοποιήσουμε τους χρήστες
# οτι οι εντολές εγκατάστασεις δεν θα λειτουργήσουν
detect_Tails_OS_Linux_Desktop


# χρειάζεται για την 3η επιλογή λόγω kgx 
to_termatiko_mas="$(yparxi_termatikou "${terminal_list[@]}")"


if [ "$to_termatiko_mas" == "kgx" ]; then
    # Tails 7
    tails_version="7"
elif [ "$to_termatiko_mas" == "gnome-terminal" ]; then
    # αν το χρησιμοποιήσετε σε TAILS 6 ή σε Linux με το GNOME XORG που δεν βάζει
    # το kgx. Τα Debian desktop που έχουν το gnome-terminal ως προκαθορισμένο είναι:
    # 1) UBUNTU 22 LTS 2) Cinnamon 3) Metacity kai 3) το Debian Default Desktop
    tails_version="6"
elif [ "$to_termatiko_mas" == "ptyxis" ]; then
    # αν το χρησιμοποιήσετε σε νεο UBUNTU DESKTOP (μετα την 25 εκδοση). Τα παλια
    # αλλά ακόμα ενεργά (22 LTS)χρησιμοποιουν gnome-terminal
    tails_version="7u"
elif [ "$to_termatiko_mas" == "mate-terminal" ]; then
    # αν το χρησιμοποιήσετε σε MATE DESKTOP
    tails_version="7m"     
else
    #σημαίνει οτι η συνάρτηση δεν επέστρεψε τίποτα από την terminal_list
    echo -ne "\r\n    Μη υποστηριζόμενη έκδοση$BLE Tails OS$NC ή$BLE Linux$NC Desktop\n"
    echo -ne "\r\n To script δεν μπορεί να εκτελέσει σωστά τις εντολές χωρίς συμβατό τερματικό! \n"
    zenity --error --width=350 --height=240 --text \
"    Μη υποστηριζόμενη έκδοση Tails OS ή Linux Desktop \n\n
Δεν γίνεται να εκτελεστούν σωστά οι εντολές χωρίς συμβατό τερματικό! \n"
    sleep 3
fi


# δημιουργύμε την εντολή του τερματικού όπως στο κυρίως σενάριο χωρίς όμως
# επιπλέον μεταβλητές . Αν θέλετε αλλαγές στις εντολές αλλάξτε τις
if [ "$tails_version" == "7" ]; then
    term_command='kgx'
elif [ "$tails_version" == "6" ]; then
    if [ "$linux_type" == "Tails OS" ]; then
        term_command='gnome-terminal --window --hide-menubar'
    else 
         term_command='gnome-terminal --hide-menubar'
    fi
elif [ "$tails_version" == "7u" ]; then
    term_command='ptyxis'
elif [ "$tails_version" == "7m" ]; then
    term_command='mate-terminal --hide-menubar'
else
    # οχι τερματικό αλλά του λέμε να τρέξουν με την bash!
    echo -ne "Δεν υπάρχει συμβατό τερματικό!"
    term_command="bash"
fi

# αν το λειτουργικό δεν είναι Debian Like πρέπει να προειδοποιήσουμε τους χρήστες
# οτι οι εντολές εγκατάστασεις δεν θα λειτουργήσουν
detect_Tails_OS_Linux_Desktop


# To login μας είτε ως μόνο του είτε από το κύριο σενάριο
if [ "$1" == "" ]; then
    echo -e "\r\n Θα χρειαστεί να γράψετε μια φορά το$BLE admin password$NC ως$GRE Sudo Pass$NC \n"
    sudo_passs
else
    adminz="$1"
    read -s -p " To script χρησιμοποιεί το admin password που έχετε ήδη βάλει " \
    adminpassword <<< $adminz;  
fi


clear

if [ "$is_installed" != "" ]; then
    if [ "$(yparxi_tor)" == "true" ];then 
        $term_command --title="RSS Feed" -- sh -c "bash torsocks tickr"
    else 
        $term_command --title="RSS Feed" -- sh -c "tickr"
    fi
else
	
    if [ "$linux_type" == "Tails OS" ] ||  [ "$linux_type" == "Debian like Linux" ]; then
        echo -e "\r\nΔεν έχουμε το$BLE tickr$NC στο συστημα αλλά...\n"
        echo -e "\r\nΠρώτα πάντα κάνουμε$BLE update$NC το σύστημά μας...\n"
        sudo -S <<< "$adminpassword"  apt -y update
        echo -ne "\r\nΤώρα βάζω το$BLE tickr$NC \n"
	    sudo -S <<< "$adminpassword"  apt -y install tickr
    elif [ "$linux_type" == "Red Hat like Linux" ]; then
        echo -ne "\r\nΤώρα βάζω το$BLE tickr$NC \n"
        sudo -S <<< "$adminpassword"  dnf -y install tickr
    else 
        echo -e "\r\nΤώρα κανονικά θα έβαζα το ...$BLE tickr$NC \n"
        echo -e "\r\nΑλλά δεν υπάρχει ως πακέτο στο$BLE Linux$NC \n"
        echo -e "\r\nπου χρησιμοποιείτε. Υπάρχει ως flatpack ! \n"
        echo -e "\r\nΕγκαταστήστε το αν θέλετε να το χρησιμοποιήσετε  "
        zenity --info --title="To Tickr λείπει ..." \
        --no-wrap \
        --text="                                  \n
        Τώρα κανονικά θα εγκαθιστούσα το ... Tickr      
        Αλλά δεν υπάρχει ως πακέτο στο Linux που 
        χρησιμοποιείτε. Υπάρχει διαθέσιμο ως flatpack !  \n
        Εγκαταστήστε το αν θέλετε να το χρησιμοποιήσετε"
        export -f anamoni_ektelesis
        anamoni_ektelesis "5"
        exit
    fi
	#sleep 3
    export -f anamoni_ektelesis
    anamoni_ektelesis "5" &
	if [ "$(yparxi_tor)" == "true" ];then
        if [ "$tails_version" == "7" ] || [ "$tails_version" == "6" ] || \
            [ "$tails_version" == "7u" ] || [ "$tails_version" == "7m" ]; then
            $term_command --title="RSS Feed" -- sh -c "bash torsocks tickr"
        else 
            $term_command "torsocks tickr"
        fi
    else 
        if [ "$tails_version" == "7" ] || [ "$tails_version" == "6" ] || \
            [ "$tails_version" == "7u" ] || [ "$tails_version" == "7m" ]; then
            $term_command --title="RSS Feed" -- sh -c "tickr"
        else 
            $term_command "tickr"
        fi
    fi  
fi
