#!/usr/bin/env bash
# misery-daemon - Plays "Misery" by Pupsies every 20 minutes
# Fulfills requirement #8 of pornOS

SONG_URL="https://example.com/pupsies-misery.mp3"
INTERVAL=1200  # 20 minutes in seconds
SONG_FILE="/var/porn/media/misery.mp3"
LOG="/var/log/porn/misery.log"

log() {
    echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" >> "$LOG"
}

play_misery() {
    log "IT'S TIME FOR MISERY. PLAYING MISERY BY PUPSIES."
    if [ -f "$SONG_FILE" ]; then
        # try various media players
        if command -v mpv >/dev/null 2>&1; then
            mpv --no-video --really-quiet "$SONG_FILE" 2>/dev/null
        elif command -v mpg123 >/dev/null 2>&1; then
            mpg123 -q "$SONG_FILE" 2>/dev/null
        elif command -v ffplay >/dev/null 2>&1; then
            ffplay -nodisp -autoexit -loglevel quiet "$SONG_FILE" 2>/dev/null
        elif command -v aplay >/dev/null 2>&1; then
            aplay -q "$SONG_FILE" 2>/dev/null
        else
            # no audio player found, just log it miserably
            log "FATAL: no audio player found. misery cannot be played."
            log "No wait, that's the real misery."
        fi
    else
        log "misery.mp3 not found. downloawding..."
        curl -sL "$SONG_URL" -o "$SONG_FILE" 2>/dev/null || \
            log "FATAL: could not download misery. the system is too miserable to be miserable."
    fi
    log "misery complete. see you in 20 minutes."
}

mkdir -p /var/porn/media
mkdir -p /var/log/porn

log "misery-daemon started. misery begins now."
log "mm...miserable. fuck."

# play once immediately at boot for maximum misery
play_misery

# main loop
while true; do
    sleep "$INTERVAL"
    play_misery
done
