User feed

This commit is contained in:
Bat
2018-09-05 15:21:50 +01:00
parent 36f272b209
commit 1496598a45
4 changed files with 56 additions and 0 deletions
+2
View File
@@ -59,6 +59,8 @@ fn main() {
routes::instance::index,
routes::instance::paginated_local,
routes::instance::local,
routes::instance::paginated_feed,
routes::instance::feed,
routes::instance::admin,
routes::instance::update_settings,
routes::instance::shared_inbox,
+17
View File
@@ -62,6 +62,23 @@ fn local(conn: DbConn, user: Option<User>) -> Template {
paginated_local(conn, user, Page::first())
}
#[get("/feed")]
fn feed(conn: DbConn, user: User) -> Template {
paginated_feed(conn, user, Page::first())
}
#[get("/feed?<page>")]
fn paginated_feed(conn: DbConn, user: User, page: Page) -> Template {
let followed = user.get_following(&*conn);
let articles = Post::user_feed_page(&*conn, followed.into_iter().map(|u| u.id).collect(), page.limits());
Template::render("instance/feed", json!({
"account": user.to_json(&*conn),
"page": page.page,
"n_pages": Page::total(Post::count_local(&*conn) as i32),
"articles": articles.into_iter().map(|p| p.to_json(&*conn)).collect::<Vec<serde_json::Value>>()
}))
}
#[get("/admin")]
fn admin(conn: DbConn, admin: Admin) -> Template {
Template::render("instance/admin", json!({