Initial commit
Some checks failed
continuous-integration/drone/push Build is failing

This commit is contained in:
2025-06-23 08:16:29 +03:00
commit 15686b146a
5 changed files with 132 additions and 0 deletions

35
.drone.yml Normal file
View File

@@ -0,0 +1,35 @@
kind: pipeline
type: docker
name: default
trigger:
branch:
- master
event:
- push
- pull_request
steps:
- name: lint
image: golangci/golangci-lint:v1.59-alpine
commands:
- golangci-lint run ./...
- name: test
image: golang:1.24-alpine
commands:
- go test -race -cover ./...
# Шаг сборки и публикации будет добавлен позже
# - name: build-and-publish
# image: plugins/docker
# settings:
# repo: gitea.mrixs.me/mrixs/yamusic-bot
# registry: gitea.mrixs.me
# username:
# from_secret: gitea_username
# password:
# from_secret: gitea_password
# auto_tag: true
# platforms:
# - linux/amd64
# - linux/arm64

23
.gitignore vendored Normal file
View File

@@ -0,0 +1,23 @@
# Binary
bot
yamusic-bot
# Data
/data/
bot.db
# Go
*.exe
*.exe~
*.dll
*.so
*.dylib
*.test
# IDEs
.idea/
.vscode/
# OS
.DS_Store
Thumbs.db

40
Dockerfile Normal file
View File

@@ -0,0 +1,40 @@
# ---- Builder Stage ----
# На этом этапе мы собираем приложение
FROM golang:1.24-alpine AS builder
# Устанавливаем рабочую директорию
WORKDIR /app
# Копируем файлы зависимостей и загружаем их
# Это позволяет кэшировать слой с зависимостями, если они не менялись
COPY go.mod go.sum ./
RUN go mod download
# Копируем исходный код
COPY . .
# Собираем статически слинкованный бинарник.
# -w -s флаги убирают отладочную информацию и символы, уменьшая размер.
# CGO_ENABLED=0 необходимо для статической линковки и использования from scratch.
# TARGETARCH будет автоматически подставлен Docker Buildx (amd64 или arm64).
ARG TARGETARCH
RUN CGO_ENABLED=0 GOOS=linux GOARCH=${TARGETARCH} go build -ldflags="-w -s" -o /app/bot ./cmd/bot
# ---- Final Stage ----
# На этом этапе мы создаем финальный образ
FROM scratch
# Устанавливаем рабочую директорию
WORKDIR /app
# Копируем только скомпилированный бинарник из builder'а
COPY --from=builder /app/bot /app/bot
# Создаем том для хранения данных, например, файла базы данных SQLite
VOLUME /data
# Указываем, что контейнер будет слушать на этом порту (если потребуется)
# EXPOSE 8080
# Команда для запуска приложения
ENTRYPOINT ["/app/bot"]

17
README.md Normal file
View File

@@ -0,0 +1,17 @@
# Yandex.Music Downloader Bot
[![Build Status](https://drone.mrixs.me/api/badges/Mrixs/yamusic-bot/status.svg)](https://drone.mrixs.me/Mrixs/yamusic-bot)
Удобный и быстрый Telegram-бот для получения аудиофайлов треков из сервиса Yandex.Music по ссылке.
## Конфигурация
_(Будет заполнено позже)_
## Запуск
_(Будет заполнено позже)_
## Использование
_(Будет заполнено позже)_

17
go.mod Normal file
View File

@@ -0,0 +1,17 @@
module gitea.mrixs.me/Mrixs/yamusic-bot
go 1.24
require (
github.com/bogem/id3v2 v1.2.1
github.com/caarlos0/env/v10 v10.0.0
github.com/go-telegram-bot-api/telegram-bot-api/v5 v5.5.1
github.com/mattn/go-sqlite3 v1.14.22
golang.org/x/sync v0.7.0
)
require (
github.com/lmittmann/tint v1.0.4 // indirect
golang.org/x/net v0.21.0 // indirect
golang.org/x/text v0.14.0 // indirect
)