#!/bin/bash

m3u_dir="/home/vod/m3u"
base_dir="/home/vod/downloads"
log_file="/home/vod/downloads/downloaded.log"

mkdir -p "$base_dir"
mkdir -p "$m3u_dir"
touch "$log_file"

while true; do

    for file in "$m3u_dir"/*.m3u; do

        [ -e "$file" ] || { sleep 10; continue; }

        echo "A processar: $file"

        while IFS= read -r line; do

            if [[ "$line" == \#EXTINF* ]]; then

                # Nome (tvg-name)
                nome=$(echo "$line" | grep -oP 'tvg-name="\K[^"]+')

                if [ -z "$nome" ]; then
                    nome=$(echo "$line" | sed 's/.*,//')
                fi

                # limpar nome
                nome=$(echo "$nome" | tr -cd '[:alnum:] ._-' | xargs)

                # URL
                read -r url
                url=$(echo "$url" | tr -d '\r' | xargs)

                if [[ ! "$url" =~ ^http ]]; then
                    continue
                fi

                # extensão
                ext="${url##*.}"
                [[ "$ext" == "$url" ]] && ext="mp4"

                # 🚫 evitar duplicados por URL
                if grep -q "$url" "$log_file"; then
                    echo "Já descarregado: $nome"
                    continue
                fi

                # 🎬 série ou filme
                if [[ "$nome" =~ S([0-9]+) ]]; then

                    temporada="S${BASH_REMATCH[1]}"

                    serie=$(echo "$nome" | sed -E 's/(.*) S[0-9]+.*/\1/')
                    serie=$(echo "$serie" | tr -cd '[:alnum:] ._-' | xargs)

                    pasta="$base_dir/$serie/$temporada"

                else
                    pasta="$base_dir/Filmes"
                fi

                mkdir -p "$pasta"

                destino="$pasta/$nome.$ext"

                # evitar duplicado por ficheiro
                if [ -f "$destino" ]; then
                    echo "Já existe: $destino"
                    echo "$url" >> "$log_file"
                    continue
                fi

                echo "A transferir: $destino"

                # 🚀 DOWNLOAD RÁPIDO (ARIA2)
                aria2c \
                -x 3 -s 3 
                --continue=true \
                --max-connection-per-server=6 \
                --header="User-Agent: Mozilla/5.0" \
                --header="Referer: http://vod123.site/" \
                -d "$pasta" \
                -o "$nome.$ext" \
                "$url"

                # guardar no log se OK
                if [ $? -eq 0 ]; then
                    echo "$url" >> "$log_file"
                    echo "Concluído"
                else
                    echo "Erro no download"
                fi

                echo "--------------------------"

                sleep 1
            fi

        done < "$file"

        echo "Finalizado: $file"

        mkdir -p "$m3u_dir/processed"
        mv "$file" "$m3u_dir/processed/"

    done

    sleep 10

done
