Compare commits
23 Commits
a3e9175ea8
...
renovate/d
| Author | SHA1 | Date | |
|---|---|---|---|
| 3c9cdea4a5 | |||
| de3262c072 | |||
| 8e88cadbb8 | |||
|
c6e34cf000
|
|||
| 3b135894eb | |||
| 14cab9d833 | |||
|
f2f4396674
|
|||
|
b60cce35ca
|
|||
|
9f1ed63011
|
|||
| 6096e625a2 | |||
| 5c42fb9480 | |||
|
d1df70a888
|
|||
| c4bc5503a5 | |||
| 16f6c97eec | |||
| cd42401280 | |||
| cc0af054f8 | |||
| aff5e1dd8d | |||
| ed9956c5a5 | |||
|
456a51bc70
|
|||
|
b9b3709bb4
|
|||
|
27168c36cf
|
|||
|
88d9c1d841
|
|||
|
d3a4114347
|
@@ -13,47 +13,47 @@ jobs:
|
||||
fmt:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||
- run: sudo apt-get update
|
||||
- run: sudo apt-get install -y cmake
|
||||
- uses: actions-rust-lang/setup-rust-toolchain@v1
|
||||
- uses: actions-rust-lang/setup-rust-toolchain@9399c7bb15d4c7d47b27263d024f0a4978346ba4 # v1
|
||||
with:
|
||||
components: rustfmt
|
||||
- name: Rustfmt Check
|
||||
uses: actions-rust-lang/rustfmt@v1
|
||||
uses: actions-rust-lang/rustfmt@559aa3035a47390ba96088dffa783b5d26da9326 # v1
|
||||
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||
- run: sudo apt-get update
|
||||
- run: sudo apt-get install -y cmake
|
||||
- uses: actions-rust-lang/setup-rust-toolchain@v1
|
||||
- uses: actions-rust-lang/setup-rust-toolchain@9399c7bb15d4c7d47b27263d024f0a4978346ba4 # v1
|
||||
- name: Build
|
||||
run: cargo build --verbose
|
||||
|
||||
test:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||
- run: sudo apt-get update
|
||||
- run: sudo apt-get install -y cmake
|
||||
- uses: actions/setup-python@v5
|
||||
- uses: actions/setup-python@42375524e23c412d93fb67b49958b491fce71c38 # v5
|
||||
with:
|
||||
python-version: '3.12'
|
||||
- name: Install yt-dlp
|
||||
run: pip install yt-dlp
|
||||
- uses: actions-rust-lang/setup-rust-toolchain@v1
|
||||
- uses: actions-rust-lang/setup-rust-toolchain@9399c7bb15d4c7d47b27263d024f0a4978346ba4 # v1
|
||||
- name: Run tests
|
||||
run: cargo test --verbose --all-features
|
||||
|
||||
clippy:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||
- run: sudo apt-get update
|
||||
- run: sudo apt-get install -y cmake
|
||||
- uses: actions-rust-lang/setup-rust-toolchain@v1
|
||||
- uses: actions-rust-lang/setup-rust-toolchain@9399c7bb15d4c7d47b27263d024f0a4978346ba4 # v1
|
||||
with:
|
||||
components: clippy
|
||||
- name: Run clippy
|
||||
@@ -62,13 +62,13 @@ jobs:
|
||||
pre-commit:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||
- run: sudo apt-get update
|
||||
- run: sudo apt-get install -y cmake
|
||||
- uses: actions/setup-python@v5
|
||||
- uses: actions/setup-python@42375524e23c412d93fb67b49958b491fce71c38 # v5
|
||||
with:
|
||||
python-version: '3.12'
|
||||
- uses: actions-rust-lang/setup-rust-toolchain@v1
|
||||
- uses: actions-rust-lang/setup-rust-toolchain@9399c7bb15d4c7d47b27263d024f0a4978346ba4 # v1
|
||||
with:
|
||||
components: rustfmt
|
||||
- uses: pre-commit/action@v3.0.1
|
||||
- uses: pre-commit/action@2c7b3805fd2a0fd8c1884dcaebf91fc102a13ecd # v3.0.1
|
||||
|
||||
@@ -13,19 +13,19 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3
|
||||
uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3
|
||||
|
||||
- name: Set up Docker BuildX
|
||||
uses: docker/setup-buildx-action@v3
|
||||
uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3
|
||||
|
||||
- name: Login to DockerHub
|
||||
uses: docker/login-action@v3
|
||||
uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # v3
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||
|
||||
- name: Build and push
|
||||
uses: docker/build-push-action@v5
|
||||
uses: docker/build-push-action@ca052bb54ab0790a636c9b5f226502c73d547a25 # v5
|
||||
with:
|
||||
platforms: |
|
||||
linux/amd64
|
||||
|
||||
32
.gitea/workflows/renovate.yaml
Normal file
32
.gitea/workflows/renovate.yaml
Normal file
@@ -0,0 +1,32 @@
|
||||
---
|
||||
# yamllint disable rule:line-length
|
||||
|
||||
name: renovate
|
||||
|
||||
on: # yamllint disable-line rule:truthy
|
||||
schedule:
|
||||
- cron: "@daily"
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
|
||||
jobs:
|
||||
renovate:
|
||||
runs-on: [nas]
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
- name: Self-hosted Renovate
|
||||
uses: renovatebot/github-action@02f4fdeb479bbb229caa7ad82cb5e691c07e80b3 # v41.0.14
|
||||
with:
|
||||
token: ${{ secrets.RENOVATE_TOKEN }}
|
||||
env-regex: "^(?:RENOVATE_\\w+|LOG_LEVEL|GITHUB_COM_TOKEN)$"
|
||||
env:
|
||||
LOG_LEVEL: "info"
|
||||
GITHUB_COM_TOKEN: ${{ secrets.CI_GITHUB_TOKEN }}
|
||||
RENOVATE_PLATFORM: "gitea"
|
||||
RENOVATE_GIT_AUTHOR: "Renovate Bot <renovate@boosted.science>"
|
||||
RENOVATE_GIT_EMAIL: "renovate@boosted.science"
|
||||
RENOVATE_ENDPOINT: "https://gitea.jheuel.boosted.science/api/v1/"
|
||||
RENOVATE_AUTODISCOVER: "true"
|
||||
RENOVATE_OPTIMIZE_FOR_DISABLED: "true"
|
||||
28
.github/workflows/ci.yml
vendored
28
.github/workflows/ci.yml
vendored
@@ -12,47 +12,47 @@ jobs:
|
||||
fmt:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||
- run: sudo apt-get update
|
||||
- run: sudo apt-get install -y cmake
|
||||
- uses: actions-rust-lang/setup-rust-toolchain@v1
|
||||
- uses: actions-rust-lang/setup-rust-toolchain@9399c7bb15d4c7d47b27263d024f0a4978346ba4 # v1
|
||||
with:
|
||||
components: rustfmt
|
||||
- name: Rustfmt Check
|
||||
uses: actions-rust-lang/rustfmt@v1
|
||||
uses: actions-rust-lang/rustfmt@559aa3035a47390ba96088dffa783b5d26da9326 # v1
|
||||
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||
- run: sudo apt-get update
|
||||
- run: sudo apt-get install -y cmake
|
||||
- uses: actions-rust-lang/setup-rust-toolchain@v1
|
||||
- uses: actions-rust-lang/setup-rust-toolchain@9399c7bb15d4c7d47b27263d024f0a4978346ba4 # v1
|
||||
- name: Build
|
||||
run: cargo build --verbose
|
||||
|
||||
test:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||
- run: sudo apt-get update
|
||||
- run: sudo apt-get install -y cmake
|
||||
- uses: actions/setup-python@v5
|
||||
- uses: actions/setup-python@42375524e23c412d93fb67b49958b491fce71c38 # v5
|
||||
with:
|
||||
python-version: '3.12'
|
||||
- name: Install yt-dlp
|
||||
run: pip install yt-dlp
|
||||
- uses: actions-rust-lang/setup-rust-toolchain@v1
|
||||
- uses: actions-rust-lang/setup-rust-toolchain@9399c7bb15d4c7d47b27263d024f0a4978346ba4 # v1
|
||||
- name: Run tests
|
||||
run: cargo test --verbose --all-features
|
||||
|
||||
clippy:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||
- run: sudo apt-get update
|
||||
- run: sudo apt-get install -y cmake
|
||||
- uses: actions-rust-lang/setup-rust-toolchain@v1
|
||||
- uses: actions-rust-lang/setup-rust-toolchain@9399c7bb15d4c7d47b27263d024f0a4978346ba4 # v1
|
||||
with:
|
||||
components: clippy
|
||||
- name: Run clippy
|
||||
@@ -61,13 +61,13 @@ jobs:
|
||||
pre-commit:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||
- run: sudo apt-get update
|
||||
- run: sudo apt-get install -y cmake
|
||||
- uses: actions/setup-python@v5
|
||||
- uses: actions/setup-python@42375524e23c412d93fb67b49958b491fce71c38 # v5
|
||||
with:
|
||||
python-version: '3.12'
|
||||
- uses: actions-rust-lang/setup-rust-toolchain@v1
|
||||
- uses: actions-rust-lang/setup-rust-toolchain@9399c7bb15d4c7d47b27263d024f0a4978346ba4 # v1
|
||||
with:
|
||||
components: rustfmt
|
||||
- uses: pre-commit/action@v3.0.1
|
||||
- uses: pre-commit/action@2c7b3805fd2a0fd8c1884dcaebf91fc102a13ecd # v3.0.1
|
||||
|
||||
714
Cargo.lock
generated
714
Cargo.lock
generated
File diff suppressed because it is too large
Load Diff
@@ -9,7 +9,7 @@ license = "MIT"
|
||||
symphonia = { version = "0.5.2", features=["all", "opt-simd"] }
|
||||
songbird = { version = "0.4.0", features = ["driver", "gateway", "twilight", "rustls", "builtin-queue"] }
|
||||
tokio = { features = ["macros", "rt-multi-thread", "signal", "sync"], version = "1" }
|
||||
sqlx = { version = "0.7", features = [ "runtime-tokio", "sqlite", "chrono", "migrate"] }
|
||||
sqlx = { version = "0.8", features = [ "runtime-tokio", "sqlite", "chrono", "migrate"] }
|
||||
regex = { version = "1", features = ["unicode-case"] }
|
||||
futures = "0.3"
|
||||
reqwest = "0.11"
|
||||
@@ -26,7 +26,7 @@ serde = { version = "1.0", features = ["derive"] }
|
||||
serde_json = "1.0"
|
||||
url = "2.5.1"
|
||||
anyhow = "1.0.86"
|
||||
dashmap = "5.5.3"
|
||||
dashmap = "6.0.0"
|
||||
async-trait = "0.1.80"
|
||||
uuid = "1.8.0"
|
||||
chrono = "0.4.38"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Build image
|
||||
FROM rust:slim-bullseye as build
|
||||
FROM rust:slim-bullseye@sha256:e94e2d2e0a9df48fdfcacb47d8b60d036abe60b7c6fa3ac3de1dd16a3d18f19a as build
|
||||
|
||||
RUN apt-get update && apt-get install -y \
|
||||
build-essential autoconf automake cmake libtool libssl-dev pkg-config
|
||||
@@ -18,7 +18,7 @@ RUN touch src/main.rs
|
||||
RUN cargo build --release --locked
|
||||
|
||||
# Release image
|
||||
FROM debian:bullseye-slim
|
||||
FROM debian:bullseye-slim@sha256:33b7c2e071c29e618182ec872c471f39d2dde3d8904d95f5b7a61acf3a592e7b
|
||||
|
||||
RUN apt-get update && apt-get install -y python3-pip
|
||||
RUN pip install -U yt-dlp
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
services:
|
||||
ohrwurm:
|
||||
container_name: ohrwurm
|
||||
image: jheuel/ohrwurm:latest
|
||||
# build: .
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- ./data:/data
|
||||
env_file:
|
||||
- .env
|
||||
25
renovate.json
Normal file
25
renovate.json
Normal file
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
|
||||
"timezone": "Europe/Berlin",
|
||||
"extends": [
|
||||
"config:recommended",
|
||||
"helpers:pinGitHubActionDigests",
|
||||
":configMigration",
|
||||
":pinDevDependencies",
|
||||
":dependencyDashboard",
|
||||
"docker:pinDigests",
|
||||
"preview:dockerCompose",
|
||||
"preview:dockerVersions"
|
||||
],
|
||||
"packageRules": [
|
||||
{
|
||||
"matchUpdateTypes": [
|
||||
"minor",
|
||||
"patch",
|
||||
"pin",
|
||||
"digest"
|
||||
],
|
||||
"automerge": true
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -59,7 +59,7 @@ pub(crate) async fn build_queue_embeds(queue: &[TrackHandle], page: usize) -> Ve
|
||||
}
|
||||
message.push('\n');
|
||||
|
||||
let n_pages = (queue.len() + TRACKS_PER_PAGE - 1) / TRACKS_PER_PAGE;
|
||||
let n_pages = queue.len().div_ceil(TRACKS_PER_PAGE);
|
||||
if n_pages > 1 {
|
||||
message.push_str(&format!("page {}/{}", 1 + page, n_pages));
|
||||
}
|
||||
@@ -146,7 +146,7 @@ pub(crate) async fn queue(
|
||||
}
|
||||
|
||||
let embeds = build_queue_embeds(&queue, 0).await;
|
||||
let n_pages = (queue.len() + TRACKS_PER_PAGE - 1) / TRACKS_PER_PAGE;
|
||||
let n_pages = queue.len().div_ceil(TRACKS_PER_PAGE);
|
||||
let action_row = build_action_row(0, n_pages);
|
||||
|
||||
state
|
||||
|
||||
@@ -112,7 +112,7 @@ impl Handler {
|
||||
let call = call_lock.lock().await;
|
||||
queue = call.queue().current_queue();
|
||||
}
|
||||
let n_pages = (queue.len() + TRACKS_PER_PAGE - 1) / TRACKS_PER_PAGE;
|
||||
let n_pages = queue.len().div_ceil(TRACKS_PER_PAGE);
|
||||
let page = page.min(n_pages - 1).max(0);
|
||||
let embeds = build_queue_embeds(&queue, page).await;
|
||||
let action_row = build_action_row(page, n_pages);
|
||||
|
||||
Reference in New Issue
Block a user