Add number format utility

This commit is contained in:
Scoder12 2020-12-07 10:32:46 -08:00
parent 6794f7d6ba
commit 9f19d729d1
3 changed files with 12 additions and 6 deletions

View File

@ -1,5 +1,5 @@
// CRATES
use crate::utils::{format_url, request, val, Comment, ErrorTemplate, Flair, Params, Post};
use crate::utils::{format_url, request, val, Comment, ErrorTemplate, Flair, Params, Post, format_num};
use actix_web::{get, http::StatusCode, web, HttpResponse, Result};
use askama::Template;
use chrono::{TimeZone, Utc};
@ -115,7 +115,7 @@ async fn parse_post(json: serde_json::Value) -> Result<Post, &'static str> {
body: markdown_to_html(post_data["data"]["selftext"].as_str().unwrap()).await,
author: val(post_data, "author").await,
url: val(post_data, "permalink").await,
score: if score > 1000 { format!("{}k", score / 1000) } else { score.to_string() },
score: format_num(score),
post_type: media.0,
media: media.1,
time: Utc.timestamp(unix_time, 0).format("%b %e %Y %H:%M UTC").to_string(),
@ -151,7 +151,7 @@ async fn parse_comments(json: serde_json::Value) -> Result<Vec<Comment>, &'stati
comments.push(Comment {
body: body,
author: val(comment, "author").await,
score: if score > 1000 { format!("{}k", score / 1000) } else { score.to_string() },
score: format_num(score),
time: Utc.timestamp(unix_time, 0).format("%b %e %Y %H:%M UTC").to_string(),
});
}

View File

@ -89,8 +89,8 @@ async fn subreddit(sub: &String) -> Result<Subreddit, &'static str> {
title: val(&res, "title").await,
description: val(&res, "public_description").await,
icon: format_url(val(&res, "icon_img").await.as_str()).await,
members: if members > 1000 { format!("{}k", members / 1000) } else { members.to_string() },
active: if active > 1000 { format!("{}k", active / 1000) } else { active.to_string() },
members: format_num(members),
active: format_num(active),
};
Ok(sub)

View File

@ -136,7 +136,7 @@ pub async fn fetch_posts(url: String, fallback_title: String) -> Result<(Vec<Pos
community: val(post, "subreddit").await,
body: val(post, "body").await,
author: val(post, "author").await,
score: if score > 1000 { format!("{}k", score / 1000) } else { score.to_string() },
score: format_score(score),
post_type: "link".to_string(),
media: img,
url: val(post, "permalink").await,
@ -202,3 +202,9 @@ pub async fn request(url: String) -> Result<serde_json::Value, &'static str> {
Ok(json)
}
}
// FORMATTING
pub fn format_num(num: i64) -> String {
return if num > 1000 { format!("{}k", num / 1000) } else { num.to_string() };
}