From 27baf0ab8005eed210a34d87a1c1f10b3f351d75 Mon Sep 17 00:00:00 2001 From: cel 🌸 Date: Tue, 20 Jun 2023 16:02:12 +0100 Subject: add is_live check --- src/live.rs | 21 +++++++++++++++++++++ src/main.rs | 15 ++++++++++----- 2 files changed, 31 insertions(+), 5 deletions(-) create mode 100644 src/live.rs (limited to 'src') diff --git a/src/live.rs b/src/live.rs new file mode 100644 index 0000000..4efb0d9 --- /dev/null +++ b/src/live.rs @@ -0,0 +1,21 @@ +use reqwest::Client; +use serde::Deserialize; + +use crate::Result; + +#[derive(Deserialize, Default)] +#[serde(rename_all = "camelCase")] +pub struct LiveStatus { + pub online: bool, + pub viewer_count: u32, +} + +pub async fn get_live_status(client: &Client) -> Result { + let endpoint = "https://weirdstar.stream/api/status"; + Ok(client + .get(endpoint) + .send() + .await? + .json::() + .await?) +} 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 = std::result::Result; struct Clients { listenbrainz: listenbrainz::raw::Client, skinnyverse: mastodon_async::Mastodon, + reqwest: reqwest::Client, } #[macro_use] extern crate rocket; #[get("/")] -async fn home(clients: &State) -> Result