Skip to content

Commit 2226f9d

Browse files
committed
feat: show ing source
1 parent 88f0a6f commit 2226f9d

File tree

6 files changed

+41
-5
lines changed

6 files changed

+41
-5
lines changed

Cargo.lock

Lines changed: 12 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ serde = { version = "1.0.188", features = ["derive"] }
3232
serde_qs = "0.12.0"
3333
serde_json = "1.0.106"
3434
serde_with = "3.3.0"
35+
serde_repr = "0.1.16"
3536

3637
home = "0.5.5"
3738
chrono = "0.4.30"

src/api/ing/get_list.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use crate::api::ing::{Ing, IngType};
1+
use crate::api::ing::{Ing, IngSendFrom, IngType};
22
use crate::infra::http::{body_or_err, RequestBuilderExt};
33
use crate::infra::json;
44
use crate::infra::result::IntoResult;
@@ -31,7 +31,7 @@ pub struct IngEntry {
3131
#[serde(rename = "UserGuid")]
3232
pub user_guid: String,
3333
#[serde(rename = "SendFrom")]
34-
pub send_from: usize,
34+
pub send_from: IngSendFrom,
3535
#[serde(rename = "Icons")]
3636
pub icons: String,
3737
}

src/api/ing/mod.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ use crate::infra::result::IntoResult;
55
use anyhow::bail;
66
use lazy_static::lazy_static;
77
use regex::Regex;
8+
use serde_repr::{Deserialize_repr, Serialize_repr};
89

910
pub mod get_comment_list;
1011
pub mod get_list;
@@ -31,7 +32,8 @@ pub enum IngType {
3132
Mention = 14,
3233
}
3334

34-
#[derive(Clone, Debug)]
35+
#[derive(Clone, Debug, Serialize_repr, Deserialize_repr)]
36+
#[repr(u8)]
3537
pub enum IngSendFrom {
3638
None = 0,
3739
Ms = 1,

src/display/colorful.rs

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use crate::api::ing::get_list::{IngCommentEntry, IngEntry};
22
use crate::api::ing::{
3-
fmt_content, get_ing_at_user_tag_text, ing_star_tag_to_text, rm_ing_at_user_tag,
3+
fmt_content, get_ing_at_user_tag_text, ing_star_tag_to_text, rm_ing_at_user_tag, IngSendFrom,
44
};
55
use crate::api::news::get_list::NewsEntry;
66
use crate::api::post::get_one::PostEntry;
@@ -67,6 +67,16 @@ pub fn list_ing(ing_list: &Result<Vec<(IngEntry, Vec<IngCommentEntry>)>>, rev: b
6767
};
6868

6969
print!("{}", create_time.dimmed());
70+
let send_from_mark = match ing.send_from {
71+
IngSendFrom::Cli => Some("CLI"),
72+
IngSendFrom::CellPhone => Some("Mobile"),
73+
IngSendFrom::VsCode => Some("VSCode"),
74+
IngSendFrom::Web => Some("Web"),
75+
_ => None,
76+
};
77+
if let Some(mark) = send_from_mark {
78+
print!(" {}", mark.dimmed());
79+
}
7080
if ing.is_lucky {
7181
let star_text = ing_star_tag_to_text(&ing.icons);
7282
print!(" {}⭐", star_text.yellow());

src/display/normal.rs

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use crate::api::ing::get_list::{IngCommentEntry, IngEntry};
22
use crate::api::ing::{
3-
fmt_content, get_ing_at_user_tag_text, ing_star_tag_to_text, rm_ing_at_user_tag,
3+
fmt_content, get_ing_at_user_tag_text, ing_star_tag_to_text, rm_ing_at_user_tag, IngSendFrom,
44
};
55
use crate::api::news::get_list::NewsEntry;
66
use crate::api::post::get_one::PostEntry;
@@ -9,6 +9,7 @@ use crate::infra::iter::IteratorExt;
99
use crate::infra::time::patch_rfc3339;
1010
use anyhow::Result;
1111
use chrono::DateTime;
12+
use colored::Colorize;
1213
use std::fmt::Display;
1314
use std::ops::Not;
1415
use std::path::PathBuf;
@@ -66,6 +67,16 @@ pub fn list_ing(ing_list: &Result<Vec<(IngEntry, Vec<IngCommentEntry>)>>, rev: b
6667
};
6768

6869
print!("{}", create_time);
70+
let send_from_mark = match ing.send_from {
71+
IngSendFrom::Cli => Some("CLI"),
72+
IngSendFrom::CellPhone => Some("Mobile"),
73+
IngSendFrom::VsCode => Some("VSCode"),
74+
IngSendFrom::Web => Some("Web"),
75+
_ => None,
76+
};
77+
if let Some(mark) = send_from_mark {
78+
print!(" {}", mark.dimmed());
79+
}
6980
if ing.is_lucky {
7081
let star_text = ing_star_tag_to_text(&ing.icons);
7182
print!(" {}⭐", star_text);

0 commit comments

Comments
 (0)