Include description field (if it is under 150 chars)
This commit is contained in:
parent
1751035334
commit
d92de61d9c
2 changed files with 10 additions and 1 deletions
10
src/crawl.rs
10
src/crawl.rs
|
@ -50,6 +50,7 @@ pub async fn crawl(
|
||||||
pub struct InstanceDetails {
|
pub struct InstanceDetails {
|
||||||
pub domain: String,
|
pub domain: String,
|
||||||
pub name: String,
|
pub name: String,
|
||||||
|
pub description: Option<String>,
|
||||||
pub version: String,
|
pub version: String,
|
||||||
pub icon: Option<String>,
|
pub icon: Option<String>,
|
||||||
pub online_users: i32,
|
pub online_users: i32,
|
||||||
|
@ -99,7 +100,7 @@ async fn fetch_instance_details(domain: &str) -> Result<InstanceDetails, Error>
|
||||||
let node_info: NodeInfo = node_info.json().await?;
|
let node_info: NodeInfo = node_info.json().await?;
|
||||||
let site_info_v2 = site_info_v2.json::<GetSiteResponse>().await.ok();
|
let site_info_v2 = site_info_v2.json::<GetSiteResponse>().await.ok();
|
||||||
let site_info_v3 = site_info_v3.json::<GetSiteResponse>().await.ok();
|
let site_info_v3 = site_info_v3.json::<GetSiteResponse>().await.ok();
|
||||||
let site_info: GetSiteResponse = if let Some(site_info_v2) = site_info_v2 {
|
let mut site_info: GetSiteResponse = if let Some(site_info_v2) = site_info_v2 {
|
||||||
site_info_v2
|
site_info_v2
|
||||||
} else if let Some(site_info_v3) = site_info_v3 {
|
} else if let Some(site_info_v3) = site_info_v3 {
|
||||||
site_info_v3
|
site_info_v3
|
||||||
|
@ -107,6 +108,12 @@ async fn fetch_instance_details(domain: &str) -> Result<InstanceDetails, Error>
|
||||||
return Err(anyhow!("Failed to read site_info"));
|
return Err(anyhow!("Failed to read site_info"));
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if let Some(description) = &site_info.site_view.site.description {
|
||||||
|
if description.len() > 150 {
|
||||||
|
site_info.site_view.site.description = None;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
let linked_instances = site_info
|
let linked_instances = site_info
|
||||||
.federated_instances
|
.federated_instances
|
||||||
.map(|f| f.linked)
|
.map(|f| f.linked)
|
||||||
|
@ -114,6 +121,7 @@ async fn fetch_instance_details(domain: &str) -> Result<InstanceDetails, Error>
|
||||||
Ok(InstanceDetails {
|
Ok(InstanceDetails {
|
||||||
domain: domain.to_owned(),
|
domain: domain.to_owned(),
|
||||||
name: site_info.site_view.site.name,
|
name: site_info.site_view.site.name,
|
||||||
|
description: site_info.site_view.site.description,
|
||||||
version: node_info.software.version,
|
version: node_info.software.version,
|
||||||
icon: site_info.site_view.site.icon,
|
icon: site_info.site_view.site.icon,
|
||||||
online_users: site_info.online as i32,
|
online_users: site_info.online as i32,
|
||||||
|
|
|
@ -23,4 +23,5 @@ pub struct SiteView {
|
||||||
pub struct Site {
|
pub struct Site {
|
||||||
pub name: String,
|
pub name: String,
|
||||||
pub icon: Option<String>,
|
pub icon: Option<String>,
|
||||||
|
pub description: Option<String>,
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue