FROM golang:1.26.4-alpine3.23 AS builder

WORKDIR /src

ARG HTTP_PROXY
ARG HTTPS_PROXY
ENV HTTP_PROXY=${HTTP_PROXY}
ENV HTTPS_PROXY=${HTTPS_PROXY}

COPY go.mod go.sum ./
RUN go mod download
COPY . .
RUN go build -o /usr/local/bin/uptodown-bot ./cmd/bot/

FROM alpine:3.23

RUN apk add --no-cache ffmpeg yt-dlp ca-certificates tzdata py3-pip curl

# Install yt-dlp plugins (add more as needed).
# PIP_BREAK_SYSTEM_PACKAGES bypasses PEP 668 — safe in Docker.
RUN PIP_BREAK_SYSTEM_PACKAGES=1 pip3 install --root-user-action=ignore --no-cache-dir hanime-plugin

# Install Deno JS runtime (required by some yt-dlp plugins)
RUN curl -fsSL https://deno.land/install.sh | sh
ENV PATH="/root/.deno/bin:${PATH}"

# Verify Deno is available
RUN deno --version

WORKDIR /data

COPY --from=builder /usr/local/bin/uptodown-bot /usr/local/bin/uptodown-bot
VOLUME ["/data"]

CMD ["uptodown-bot"]
