Compare commits

...

2 Commits
1.0.0 ... main

Author SHA1 Message Date
Jarkko Toivanen e81c37f51d Version bump 2023-04-28 03:21:24 +03:00
Jarkko Toivanen dbf817e97a Fixed: Panic if no image attached or post has newlines 2023-04-28 03:13:48 +03:00
3 changed files with 38 additions and 15 deletions

2
Cargo.lock generated
View File

@ -133,7 +133,7 @@ dependencies = [
[[package]]
name = "ets2newscord"
version = "1.0.0"
version = "1.0.1"
dependencies = [
"chrono",
"serde",

View File

@ -1,6 +1,6 @@
[package]
name = "ets2newscord"
version = "1.0.0"
version = "1.0.1"
edition = "2021"
[profile.release]

View File

@ -8,7 +8,10 @@ use std::{
io::{self, Read, Seek, Write},
};
const APPID: &str = "227300";
const APPID: &str = "227300"; // ETS2: 227300, AssettoCorsa: 244210
const CLANIMGURLBASE: &str =
"https://cdn.akamai.steamstatic.com/steamcommunity/public/images/clans/";
const LOGOURL: &str = "https://eurotrucksimulator2.com/images/logo.png";
#[derive(Deserialize)]
struct SUResp {
@ -88,32 +91,44 @@ fn main() {
.split("[img]{STEAM_CLAN_IMAGE}")
.collect();
let tmptext2: Vec<&str> = tmptext[1].split("[/img]").collect();
let imgurl = &tmptext2[0];
let imgurl = if tmptext.len() > 1 {
let splitend: Vec<&str> = tmptext[1].split("[/img]").collect();
format!("{}{}", CLANIMGURLBASE, splitend[0])
} else {
LOGOURL.to_string()
};
let whreq: String = format!(
r#"
{{
"username": "ETS2 Updates",
"avatar_url": "https://eurotrucksimulator2.com/images/logo.png",
"avatar_url": "{}",
"content": "",
"embeds": [{{
"title": "{}",
"description": "{}",
"url": "{}",
"timestamp": "{}",
"thumbnail": {{"url": "https://cdn.akamai.steamstatic.com/steamcommunity/public/images/clans/{}"}}
"thumbnail": {{"url": "{}"}}
}}]
}}
"#,
LOGOURL,
body.appnews.newsitems.post0.title,
if body.appnews.newsitems.post0.contents.len() > 250 {
format!(
"{} ...",
body.appnews.newsitems.post0.contents[..250].to_string()
body.appnews.newsitems.post0.contents[..250]
.to_string()
.replace("\n", " ")
)
} else {
body.appnews.newsitems.post0.contents.to_string()
body.appnews
.newsitems
.post0
.contents
.to_string()
.replace("\n", " ")
},
body.appnews.newsitems.post0.url,
t_str,
@ -123,15 +138,23 @@ fn main() {
let resp = ureq::post(&webhook)
.set("Content-Type", "application/json;charset=utf-8")
.send_string(&whreq);
resp.expect("Error sending Discord webhook");
match resp {
Ok(_) => {
println!("Successfully updated webhook");
f.set_len(0).expect("Cannot empty the file");
f.seek(io::SeekFrom::Start(0))
.expect("Cannot seek to file beginning");
write!(f, "{}", body.appnews.newsitems.post0.date).expect("Can't write file");
}
Err(e) => {
println!("Error updating webhook:\n{}\nRequest JSON:\n{}", e, &whreq);
}
}
fdt = body.appnews.newsitems.post0.date;
}
f.set_len(0).expect("Cannot empty the file");
f.seek(io::SeekFrom::Start(0))
.expect("Cannot seek to file beginning");
write!(f, "{}", body.appnews.newsitems.post0.date).expect("Can't write file");
println!("{}: Sleeping...", chrono::offset::Utc::now());
thread::sleep(time::Duration::from_secs(60 * 15));
}