Compare commits

...

2 commits

Author SHA1 Message Date
63a365d11d
Add album art placeholder
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-08 13:56:10 +02:00
68a00bfe80
Replace all pub(crate)s with pubs 2023-05-08 11:38:07 +02:00
5 changed files with 20 additions and 18 deletions

View file

@ -5,13 +5,13 @@ use async_std::{
};
use mpdrs::lsinfo::LsInfoResponse;
pub(crate) fn host() -> String {
pub fn host() -> String {
let host = std::env::var("MPD_HOST").unwrap_or("localhost".to_string());
let port = std::env::var("MPD_PORT").unwrap_or("6600".to_string());
format!("{host}:{port}")
}
pub(crate) fn connect() -> Result<mpdrs::Client, mpdrs::error::Error> {
pub fn connect() -> Result<mpdrs::Client, mpdrs::error::Error> {
let mut client = mpdrs::Client::connect(host())?;
let password = std::env::var("MPD_PASSWORD").unwrap_or(String::new());
@ -22,7 +22,7 @@ pub(crate) fn connect() -> Result<mpdrs::Client, mpdrs::error::Error> {
Ok(client)
}
pub(crate) fn ls(path: &str) -> anyhow::Result<Vec<Entry>> {
pub fn ls(path: &str) -> anyhow::Result<Vec<Entry>> {
let info = connect()?.lsinfo(path)?;
fn filename(path: &str) -> String {
@ -54,14 +54,14 @@ pub(crate) fn ls(path: &str) -> anyhow::Result<Vec<Entry>> {
.collect())
}
pub(crate) struct QueueItem {
pub(crate) file: String,
pub(crate) title: String,
pub(crate) artist: Option<String>,
pub(crate) playing: bool,
pub struct QueueItem {
pub file: String,
pub title: String,
pub artist: Option<String>,
pub playing: bool,
}
pub(crate) fn playlist() -> anyhow::Result<Vec<QueueItem>> {
pub fn playlist() -> anyhow::Result<Vec<QueueItem>> {
let mut client = connect()?;
let current = client.status()?.song;
@ -80,7 +80,7 @@ pub(crate) fn playlist() -> anyhow::Result<Vec<QueueItem>> {
Ok(queue)
}
pub(crate) enum Entry {
pub enum Entry {
Song {
name: String,
artist: String,
@ -96,7 +96,7 @@ pub(crate) enum Entry {
},
}
pub(crate) struct Mpd {
pub struct Mpd {
stream: TcpStream,
reader: BufReader<TcpStream>,
}
@ -167,7 +167,7 @@ impl Mpd {
self.command("play").await
}
pub(crate) async fn idle(&mut self, systems: &[&str]) -> anyhow::Result<Vec<String>> {
pub async fn idle(&mut self, systems: &[&str]) -> anyhow::Result<Vec<String>> {
let mut buffer = String::new();
let systems = systems.join(" ");

BIN
static/placeholder.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

View file

@ -58,7 +58,11 @@
>
<span class="material-symbols-outlined" title="Song">music_note</span>
<div class="albumart">
<img src="/art?path={{ path|urlencode }}" onerror="this.style.visibility = 'hidden'">
<img
src="/art?path={{ path|urlencode }}"
onload="this.style.visibility = 'visible'"
alt="Album art"
>
</div>
<div class="song">
<div class="song__name">{{ name }}</div>

View file

@ -5,11 +5,10 @@
{% if let Some(song) = song %}
<div class="albumart">
<a href="/art?path={{ song.file|urlencode }}" target="_blank">
<img
<img
src="/art?path={{ song.file|urlencode }}"
onerror="this.style.opacity = 0"
onload="this.style.visibility = 'visible'"
alt="Album art"
title="Album art"
>
</a>
</div>

View file

@ -7,9 +7,8 @@
<div class="albumart">
<img
src="/art?path={{ item.file|urlencode }}"
onerror="this.style.opacity = 0"
onload="this.style.visibility = 'visible'"
alt="Album art"
title="Album art"
>
</div>
<div class="metadata">