feat: initial implementation of uptodownbot

Telegram bot for downloading media from any site using yt-dlp.
Supports audio/video/both, quality selection, language picker,
container format selection, playlist pagination, progress updates,
per-user quotas, user preferences, download history, cancel at any step,
polling and webhook modes, proxy support, and SQLite persistence.
This commit is contained in:
2026-06-25 14:22:48 +03:30
commit 05fcdf7458
26 changed files with 3302 additions and 0 deletions

24
Dockerfile Normal file
View File

@@ -0,0 +1,24 @@
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
WORKDIR /data
COPY --from=builder /usr/local/bin/uptodown-bot /usr/local/bin/uptodown-bot
VOLUME ["/data"]
CMD ["uptodown-bot"]