From b3e4b7bfaee4ed03abf1229e811c5721d3c1e0d1 Mon Sep 17 00:00:00 2001
From: spikecodes <19519553+spikecodes@users.noreply.github.com>
Date: Tue, 6 Apr 2021 10:23:05 -0700
Subject: [PATCH] Add user following functionality
---
Cargo.toml | 2 +-
src/subreddit.rs | 23 ++++++++++++-----------
static/style.css | 2 +-
templates/settings.html | 4 ++--
templates/user.html | 12 ++++++++++++
templates/utils.html | 8 +++++++-
6 files changed, 35 insertions(+), 16 deletions(-)
diff --git a/Cargo.toml b/Cargo.toml
index 45b5d57..5c52375 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -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.9.0"
+version = "0.10.0"
authors = ["spikecodes <19519553+spikecodes@users.noreply.github.com>"]
edition = "2018"
diff --git a/src/subreddit.rs b/src/subreddit.rs
index c8763e5..c26abdc 100644
--- a/src/subreddit.rs
+++ b/src/subreddit.rs
@@ -35,18 +35,19 @@ pub async fn community(req: Request
) -> Result, String> {
let post_sort = req.cookie("post_sort").map_or_else(|| "hot".to_string(), |c| c.value().to_string());
let sort = req.param("sort").unwrap_or_else(|| req.param("id").unwrap_or(post_sort));
- let sub = req.param("sub").map_or(
- if front_page == "default" || front_page.is_empty() {
- if subscribed.is_empty() {
- "popular".to_string()
- } else {
- subscribed.to_owned()
- }
+ let sub = req.param("sub").unwrap_or(if front_page == "default" || front_page.is_empty() {
+ if subscribed.is_empty() {
+ "popular".to_string()
} else {
- front_page.to_owned()
- },
- String::from,
- );
+ subscribed.to_owned()
+ }
+ } else {
+ front_page.to_owned()
+ });
+
+ if req.param("sub").is_some() && sub.starts_with("u_") {
+ return Ok(redirect(["/user/", &sub[2..]].concat()));
+ }
let path = format!("/r/{}/{}.json?{}&raw_json=1", sub, sort, req.uri().query().unwrap_or_default());
diff --git a/static/style.css b/static/style.css
index 056d698..7f421d4 100644
--- a/static/style.css
+++ b/static/style.css
@@ -307,7 +307,7 @@ aside {
/* Subscriptions */
-#sub_subscription {
+#sub_subscription, #user_subscription {
margin-top: 20px;
}
diff --git a/templates/settings.html b/templates/settings.html
index 0038c0d..c6df265 100644
--- a/templates/settings.html
+++ b/templates/settings.html
@@ -57,10 +57,10 @@
{% if prefs.subscriptions.len() > 0 %}
-
Subscribed Subreddits
+
Subscribed Feeds
{% for sub in prefs.subscriptions %}
-
{{ sub }}
+
{% if sub.starts_with("u_") -%}{{ format!("u/{}", &sub[2..]) }}{% else -%}{{ format!("r/{}", sub) }}{% endif -%}
diff --git a/templates/user.html b/templates/user.html
index 28411c1..26ab719 100644
--- a/templates/user.html
+++ b/templates/user.html
@@ -75,6 +75,18 @@
{{ user.karma }}
{{ user.created }}
+
+ {% let name = ["u_", user.name.as_str()].join("") %}
+ {% if prefs.subscriptions.contains(name) %}
+
+ {% else %}
+
+ {% endif %}
+
diff --git a/templates/utils.html b/templates/utils.html
index 5d23902..f9c41af 100644
--- a/templates/utils.html
+++ b/templates/utils.html
@@ -58,7 +58,13 @@
{% macro post_in_list(post) -%}