#!/bin/bash
# ============================================================
# 🎙️🎞️ TYP: AV
# 👤 Autor: kamowski & Copilot
# 🏷️ Názov: oznamenie_mocp
# 📝 Popis: V MOC (Music On Console) pomocou notify-send zobrazí info o prehrávanej skladbe
# 📦 Závislosti: awk
# 📅 Verzia: 15.03.2026–21:12
# ⚙️ Spúšťanie: CLI alebo Thunar (%F)
# ============================================================
# 📄 Obšírnejší popis skriptu
# ----------------
# Tento Bash skript zobrazuje oznámenia o práve prehrávanej skladbe alebo internetovom rádiu
# pomocou `notify-send`. Informácie získava z prehrávača `mocp` (Music On Console Player).
#
# 🔧 Postup fungovania:
# 1. Načíta údaje z `mocp -i` (Artist, SongTitle, Album).
# 2. Ak chýbajú, skúsi použiť `CurrentSong` (často vo formáte "Interpret - Názov skladby").
# 3. Ak ani to nie je dostupné, použije názov streamu (`Title:`), čo býva meno rádia.
# 4. Vždy zobrazí oznámenie – buď skladbu, alebo názov rádia.
#
# ✨ Výhody:
# - Funguje pre lokálne súbory aj internetové rádiá.
# - Zobrazí aspoň nejakú informáciu (skladba alebo rádio).
# - Dá sa rozšíriť o ďalšie údaje (čas prehrávania, bitrate, obal albumu).
#
# 📌 Použitie:
# - Spusti skript počas prehrávania v `mocp`.
# - Na obrazovke sa zobrazí oznámenie s informáciami o skladbe alebo rádiu.
#

# Získanie informácií z mocp
Artist="$1"
Title="$2"
Track="$3"
Album="$4"


# Získanie trvania skladby (TotalTime vo formáte MM:SS)
Duration=$(mocp -i | awk -F': ' '/^TotalTime:/ {print $2}')

if [[ -z "$Duration" ]]; then
    Duration="Neznáme"
fi

# Ak chýba interpret alebo názov, skús ich získať z CurrentSong
if [[ -z "$Artist" || -z "$Title" ]]; then
    CurrentSong=$(mocp -i | awk -F': ' '/^CurrentSong:/ {print $2}')
    if [[ -n "$CurrentSong" ]]; then
        Artist=$(echo "$CurrentSong" | cut -d'-' -f1 | xargs)
        Title=$(echo "$CurrentSong" | cut -d'-' -f2- | xargs)
    fi
fi

# Ak stále nič, skús názov streamu (rôzne typy streamov)
if [[ -z "$Artist" && -z "$Title" ]]; then

    # Skús viacero možných názvov streamu
    StreamTitle=$(mocp -i | awk -F': ' '/^(Title|StreamTitle|Name):/ {print $2}' | head -n1)

    # Ak stream posiela CurrentSong vo formáte "Interpret - Skladba"
    if [[ -z "$StreamTitle" ]]; then
        CurrentSong=$(mocp -i | awk -F': ' '/^CurrentSong:/ {print $2}')
        if [[ "$CurrentSong" == *"-"* ]]; then
            Artist=$(echo "$CurrentSong" | cut -d'-' -f1 | xargs)
            Title=$(echo "$CurrentSong" | cut -d'-' -f2- | xargs)
        fi
    fi

    # Ak sa podarilo získať Interpret + Title → zobraz ako skladbu
    if [[ -n "$Artist" || -n "$Title" ]]; then
        notify-send --urgency=normal --expire-time=10000 --icon=audio-x-generic \
        "📻 Rádio" "👤 Interpret: ${Artist:-Neznámy}\n🎶 Skladba: ${Title:-Neznáma}"
        exit 0
    fi

    # Ak nič z toho, zobraz aspoň názov rádia
    if [[ -n "$StreamTitle" ]]; then
        notify-send --urgency=normal --expire-time=10000 --icon=audio-x-generic \
        "📻 Rádio" "▶️ $StreamTitle"
        exit 0
    fi
fi
i

# Zobraz oznámenie
notify-send --urgency=normal --expire-time=10000 --icon=audio-x-generic \
"🎵 Informácie o skladbe" "👤 Interpret: $Artist\n🎶 Skladba: $Title\n💿 Album: $Album\n⏱️ Trvanie: $Duration"


