#!/bin/bash

# Configuración: Reemplaza 'TU_API_KEY' con tu clave de API de Musixmatch
API_KEY="9f48b41952ed1a7808f0069395f6ed60"

# Obtener artista y título
artist=$(playerctl metadata artist 2>/dev/null)
title=$(playerctl metadata title 2>/dev/null)

# Verificar si los valores se obtuvieron correctamente
if [[ -z "$artist" || -z "$title" ]]; then
    jq -c -n --arg text "" '{"text":$text}'
    exit 0
fi

# Codificar los valores para la URL
artist_url=$(echo "$artist" | jq -s -R -r @uri)
title_url=$(echo "$title" | jq -s -R -r @uri)

# Obtener las letras usando la API de Musixmatch
response=$(curl -s "https://api.musixmatch.com/ws/1.1/matcher.lyrics.get?q_track=$title_url&q_artist=$artist_url&apikey=$API_KEY")

# Extraer las letras del JSON de respuesta
lyrics=$(echo "$response" | jq -r '.message.body.lyrics.lyrics_body')

# Manejar errores y limpiar las letras
if [[ "$lyrics" == "null" || -z "$lyrics" ]]; then
    lyrics="Letras no encontradas."
else
    # Eliminar retornos de carro y líneas vacías
    lyrics=$(echo "$lyrics" | tr -d '\r' | sed '/^[[:space:]]*$/d')
    # Eliminar la línea de uso comercial de Musixmatch
    lyrics=$(echo "$lyrics" | sed '/This Lyrics is NOT for Commercial use/d')
fi

# Generar JSON compacto y seguro
jq -c -n --arg text "🎵" --arg tooltip "$lyrics" '{"text":$text,"tooltip":$tooltip}'

