Sidebar about page. Closes #162

This commit is contained in:
spikecodes 2021-03-21 19:28:05 -07:00
parent 0bb1677520
commit 772d20615b
No known key found for this signature in database
GPG key ID: 004CECFF9B463BCB
3 changed files with 22 additions and 1 deletions

View file

@ -3,7 +3,7 @@ name = "libreddit"
description = " Alternative private front-end to Reddit"
license = "AGPL-3.0"
repository = "https://github.com/spikecodes/libreddit"
version = "0.6.2"
version = "0.7.0"
authors = ["spikecodes <19519553+spikecodes@users.noreply.github.com>"]
edition = "2018"

View file

@ -209,6 +209,8 @@ async fn main() {
app.at("/r/:sub/wiki").get(|r| subreddit::wiki(r).boxed());
app.at("/r/:sub/wiki/:page").get(|r| subreddit::wiki(r).boxed());
app.at("/r/:sub/about/sidebar").get(|r| subreddit::sidebar(r).boxed());
app.at("/r/:sub/:sort").get(|r| subreddit::community(r).boxed());
// Comments handler

View file

@ -151,6 +151,25 @@ pub async fn wiki(req: Request<Body>) -> Result<Response<Body>, String> {
}
}
pub async fn sidebar(req: Request<Body>) -> Result<Response<Body>, String> {
let sub = req.param("sub").unwrap_or("reddit.com".to_string());
// Build the Reddit JSON API url
let path: String = format!("/r/{}/about.json?raw_json=1", sub);
// Send a request to the url
match json(path).await {
// If success, receive JSON in response
Ok(response) => template(WikiTemplate {
sub,
wiki: rewrite_urls(&val(&response, "description_html").replace("\\", "")),
page: "Sidebar".to_string(),
prefs: Preferences::new(req),
}),
Err(msg) => error(req, msg).await,
}
}
// SUBREDDIT
async fn subreddit(sub: &str) -> Result<Subreddit, String> {
// Build the Reddit JSON API url