aboutsummaryrefslogtreecommitdiffstats
path: root/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/main.rs b/src/main.rs
index ab65f8e..57d4973 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,4 +1,5 @@
mod error;
+mod live;
mod posts;
mod scrobbles;
mod skweets;
@@ -17,27 +18,30 @@ type Result<T> = std::result::Result<T, BlossomError>;
struct Clients {
listenbrainz: listenbrainz::raw::Client,
skinnyverse: mastodon_async::Mastodon,
+ reqwest: reqwest::Client,
}
#[macro_use]
extern crate rocket;
#[get("/")]
-async fn home(clients: &State<Clients>) -> Result<Template> {
- let (listenbrainz, skweets) = tokio::join!(
+async fn home(clients: &State<Clients>) -> Template {
+ let (live, listenbrainz, skweets) = tokio::join!(
+ live::get_live_status(&clients.reqwest),
scrobbles::get_now_playing(&clients.listenbrainz),
skweets::get_recents(&clients.skinnyverse)
);
+ let is_live = live.unwrap_or_default().online;
let listenbrainz = listenbrainz.unwrap_or_default();
let skweets = skweets.unwrap_or_default();
- Ok(Template::render(
+ Template::render(
"home",
context! {
- is_live: false,
+ is_live,
listenbrainz,
skweets,
},
- ))
+ )
}
#[get("/contact")]
@@ -78,6 +82,7 @@ async fn main() -> std::result::Result<(), rocket::Error> {
.manage(Clients {
listenbrainz: listenbrainz::raw::Client::new(),
skinnyverse: mastodon_async::Mastodon::from(skinny_data),
+ reqwest: reqwest::Client::new(),
})
.attach(Template::custom(|engines| {
engines.tera.autoescape_on(vec![]);