Compare commits

..

30 commits

Author SHA1 Message Date
422e21aaf1
nix: setup sccache
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I375e0d41d42939b63a01a59d41b3fd426a6a6964
2026-03-22 17:58:53 +03:00
cee172fcc3
pinakes-server: add more route tests
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ief16a2b3181bfa50193fb69a5ad4a9166a6a6964
2026-03-22 17:58:52 +03:00
db2d02a323
meta: configure gitattributes; don't diff churn
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I9d22892a5f90a95c29fa8979512b13646a6a6964
2026-03-22 17:58:51 +03:00
ec2487fb5f
various: autofix Clippy warnings
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ia355e5626b5db7760c8dbb571cb552c46a6a6964
2026-03-22 17:58:50 +03:00
76cb98375c
pinakes-ui: use system player for HLS streams
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I0255e79e25cde100a063476de2c8fe0d6a6a6964
2026-03-22 17:58:49 +03:00
30041c40c0
pinakes-server: add more integration tests
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I7c6c8eaad569404c7a13cfa8114d84516a6a6964
2026-03-22 17:58:48 +03:00
fd11b2b7c4
pinakes-server: fix subtitle list response and registration
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I22c7237877862acbf931ce4c662bd2816a6a6964
2026-03-22 17:58:47 +03:00
5e29de82eb
pinakes-ui: update styles for media widgets
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ia380cb749d3aafc15ffc242e43eefa106a6a6964
2026-03-22 17:58:46 +03:00
651b9ef3f0
pinakes-ui: playlists view and settings updates
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I7f39eca04360e78cd76c7cb43c2ad2776a6a6964
2026-03-22 17:58:45 +03:00
cabead92cf
pinakes-ui: add rustdoc to ApiClient types and methods
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I4b25ba66e695a870a753bdc6276c113d6a6a6964
2026-03-22 17:58:44 +03:00
7d886d2c24
pinakes-ui: add playlists; expand detail/settings/player components
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ifb9c9da6fec0a9152b54ccf48705088e6a6a6964
2026-03-22 17:58:43 +03:00
8129c5a6e7
pinakes-tui: cover more API routes in the TUI crate
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Id14b6f82d3b9f3c27bee9c214a1bdedc6a6a6964
2026-03-22 17:58:42 +03:00
c18edc9146
chore: add cargo xtask alias
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Iaf5e1365e825e88a6cde49a50624c7736a6a6964
2026-03-22 17:58:41 +03:00
7a0a009ced
docs: auto-generate API route documentation
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Id0d1f9769b7ccdbf83d5fa78adef62e46a6a6964
2026-03-22 17:58:40 +03:00
625077f341
pinakes-server: add utoipa annotations to all routes; fix tests
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I28cf5b7b7cff8e90e123d624d97cf9656a6a6964
2026-03-22 17:58:39 +03:00
8bde7f8fc2
pinakes-server: add utoipa annotations; manage embedded subtitle data
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I30d4b23f09113628dea245404b0a31bd6a6a6964
2026-03-22 17:58:38 +03:00
1f966ad020
pinakes-core: fix minor clippy warnings; add toggle for Swagger UI generation
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ie33a5d17b774289023e3855789d3adc86a6a6964
2026-03-22 17:58:37 +03:00
349b51e76c
pinakes-core: initial subtitle management
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Id2f9b87b1cc903462539ab8ea47099696a6a6964
2026-03-22 17:58:36 +03:00
6233b46f70
pinakes-core: add error variants for external tool calls and subtitle ops
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I9c9f4a7de065e176e16b108411c3d44b6a6a6964
2026-03-22 17:58:35 +03:00
7d8ec5ffc1
pinakes-server: expand test coverage for server features
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ia09d2d3ad7f6613e21d20321e0877bc16a6a6964
2026-03-22 17:58:34 +03:00
4a2136439f
pinakes-plugin-api: suppress enum_variant_names lint
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I01367dea28dd7b47cf765b6f33782a5e6a6a6964
2026-03-22 17:58:33 +03:00
957bc06f11
pinakes-plugin-api: suppress struct_field_names lint; minor doc tweaks
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I90f1cc46303564a61bdefe76d21045066a6a6964
2026-03-22 17:58:32 +03:00
84288c9660
pinakes-server: consolidate helpers for the tests
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ifbc07ced09014391bc264a36be27dc8c6a6a6964
2026-03-22 17:58:31 +03:00
e40c66e399
pinakes-plugin-api: fix hasher usage in tests
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I8ee475aef2d1f81cf6af6f5e247f5e386a6a6964
2026-03-22 17:58:30 +03:00
54fffa3c96
pinakes-core: fix hasher usage in tests
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ied03277d450e39299470667ef479c3526a6a6964
2026-03-22 17:58:29 +03:00
72f06a4f2a
pinakes-core: clarify backup support for postgresql
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I7f7d5dcb1d973c8615aacbfc0a5a44576a6a6964
2026-03-22 17:58:28 +03:00
a2d233ed6d
migrations/postgres: add missing sequence counter for sqlite parity
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Iaf993250bff02b3d02aece62876b5ee56a6a6964
2026-03-22 17:58:27 +03:00
f831e58723
treewide: replace std hashers with rustc_hash alternatives; fix clippy
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I766c36cb53d3d7f9e85b91a67c4131a66a6a6964
2026-03-22 17:58:27 +03:00
d73bb4580d
meta: ignore Nix build results properly
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Iccbf2928b43e8b519d84884e801e4f206a6a6964
2026-03-22 17:58:26 +03:00
24b681453e
chore: enforce rustc_hash over std hashers
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I228093b5da57d6fa3a6249e06de2f5776a6a6964
2026-03-22 17:58:25 +03:00
4 changed files with 39 additions and 2 deletions

BIN
Cargo.lock generated

Binary file not shown.

View file

@ -38,3 +38,6 @@ default = ["web"]
web = ["dioxus/web"]
desktop = ["dioxus/desktop"]
mobile = ["dioxus/mobile"]
[build-dependencies]
grass = "0.13"

View file

@ -0,0 +1,33 @@
#![expect(
clippy::expect_used,
reason = "build scripts conventionally panic on failure; there is no caller \
to propagate errors to"
)]
use std::{fs, path::Path};
fn main() {
// Compile SCSS to CSS
let scss_dir = Path::new("assets/styles");
let css_dir = Path::new("assets/css");
// Create CSS output directory if it doesn't exist
fs::create_dir_all(css_dir).expect("Failed to create CSS directory");
// Compile main.scss
let scss_input = scss_dir.join("main.scss");
let css_output = css_dir.join("main.css");
if scss_input.exists() {
let css = grass::from_path(
&scss_input,
&grass::Options::default().style(grass::OutputStyle::Compressed),
)
.expect("Failed to compile SCSS");
fs::write(&css_output, css).expect("Failed to write CSS");
// Tell cargo to rerun if SCSS files change
println!("cargo:rerun-if-changed=assets/styles");
}
}

View file

@ -1,7 +1,8 @@
//! Styles module for Pinakes UI
//!
//! Exports the SCSS asset for use with Dioxus.
//! Exports the CSS asset for use with Dioxus.
//! SCSS files are compiled to CSS via build.rs.
use dioxus::prelude::*;
pub static STYLES: Asset = asset!("/assets/styles/main.scss");
pub static STYLES: Asset = asset!("/assets/css/main.css");