pipeline {
    agent any

    triggers {
        // Every Friday at 21:15
        cron('15 21 * * 5')
    }

    options {
        timeout(time: 15, unit: 'MINUTES')
        timestamps()
        buildDiscarder(logRotator(numToKeepStr: '10'))
        disableConcurrentBuilds()
    }

    stages {
        stage('Install dependencies') {
            steps {
                sh """
                    python3 -m venv venv
                    . venv/bin/activate
                    pip install --upgrade pip --quiet
                    pip install --quiet atproto requests ffmpeg python-dotenv pillow
                """
            }
        }

        stage('Post Divendres') {
            steps {
                // Securely injects Jenkins credentials as environment variables
                // Note the added curly braces wrapping the sh block
                withCredentials([
                    string(credentialsId: 'BSKY_GROMENAWARE_HANDLE', variable: 'BSKY_GROMENAWARE_HANDLE'),
                    string(credentialsId: 'BSKY_GROMENAWARE_APP_PASSWORD', variable: 'BSKY_GROMENAWARE_APP_PASSWORD')
                ]) {
                    sh """
                        . venv/bin/activate
                            python3 bsky_post.py \
                            --text "DIVENDRES NIT PER FI!!!!!!!!!!!" \
                            --image media/divendres_nit.mp4 \
                            --alt "La bogeria del divendres nit" \
                            --bsky-handle "$BSKY_GROMENAWARE_HANDLE" \
                            --bsky-password "$BSKY_GROMENAWARE_APP_PASSWORD" \
                            --bsky-base-url "https://eurosky.social" \
                            --bsky-langs "ca"
                    """
                }
            }
        }
    }

    post {
        success {
            echo '✅ Divendres post published successfully.'
        }
        failure {
            echo '❌ Divendres post failed.'
        }
    }
}