remove thumbnail and use author feature for category

This commit is contained in:
2026-07-27 18:30:51 +02:00
parent ec707ec4a3
commit 2967e385e5
+12 -8
View File
@@ -1,5 +1,7 @@
pub mod database; pub mod database;
use std::borrow::Cow;
use crate::database::models::{NewPost, Post}; use crate::database::models::{NewPost, Post};
use crate::database::schema::posts::dsl::posts; use crate::database::schema::posts::dsl::posts;
use crate::database::Database; use crate::database::Database;
@@ -9,7 +11,9 @@ use diesel::{ExpressionMethods, OptionalExtension, QueryDsl, RunQueryDsl};
use lazy_regex::{regex, Lazy, Regex}; use lazy_regex::{regex, Lazy, Regex};
use log::{debug, error, info}; use log::{debug, error, info};
use reqwest::IntoUrl; use reqwest::IntoUrl;
use serenity::all::{CreateEmbed, CreateEmbedFooter, EditWebhookMessage, ExecuteWebhook}; use serenity::all::{
CreateEmbed, CreateEmbedAuthor, CreateEmbedFooter, EditWebhookMessage, ExecuteWebhook,
};
use serenity::http::Http; use serenity::http::Http;
use serenity::model::webhook::Webhook; use serenity::model::webhook::Webhook;
@@ -60,12 +64,12 @@ impl DisbahnClient {
input.to_string() input.to_string()
} }
fn icon_name_to_url(name: &str) -> &str { fn icon_name_to_tag(name: &str) -> Cow<'static, str> {
match name { match name {
"HIM1" => "https://upload.wikimedia.org/wikipedia/commons/thumb/a/a9/Zeichen_123_-_Arbeitsstelle%2C_StVO_2013.svg/273px-Zeichen_123_-_Arbeitsstelle%2C_StVO_2013.svg.png", "HIM1" => "\u{1F6A7} Bauarbeiten".into(),
"HIM2" => "https://upload.wikimedia.org/wikipedia/commons/thumb/0/02/Zeichen_101_-_Gefahrstelle%2C_StVO_1970.svg/273px-Zeichen_101_-_Gefahrstelle%2C_StVO_1970.svg.png", "HIM2" => "\u{26A0}\u{FE0F} Störung".into(),
"HIM3" => "https://upload.wikimedia.org/wikipedia/commons/thumb/6/6c/Strike_worker.svg/314px-Strike_worker.svg.png", "HIM3" => "\u{270A} Streik".into(),
_ => "https://upload.wikimedia.org/wikipedia/commons/thumb/5/56/Zeichen_365-61_-_Informationsstelle%2C_StVO_2013.svg/240px-Zeichen_365-61_-_Informationsstelle%2C_StVO_2013.svg.png", other => format!("\u{2139}\u{FE0F} Information ({other})").into(),
} }
} }
@@ -103,7 +107,7 @@ impl DisbahnClient {
.iter() .iter()
.find(|c| c.domain() == Some("icon")) .find(|c| c.domain() == Some("icon"))
.map_or("", |c| c.name()); .map_or("", |c| c.name());
let icon_url = Self::icon_name_to_url(icon); let tag = Self::icon_name_to_tag(icon);
let description = Self::html_to_discord_markdown( let description = Self::html_to_discord_markdown(
item.description().ok_or(anyhow!("Missing description"))?, item.description().ok_or(anyhow!("Missing description"))?,
@@ -118,7 +122,7 @@ impl DisbahnClient {
let embed = CreateEmbed::new() let embed = CreateEmbed::new()
.title(title) .title(title)
.url(link) .url(link)
.thumbnail(icon_url) .author(CreateEmbedAuthor::new(tag))
.colour(Self::icon_name_to_colour(icon)) .colour(Self::icon_name_to_colour(icon))
.description(description) .description(description)
.field("Beginn:", format!("<t:{validity_begin}:f>"), true) .field("Beginn:", format!("<t:{validity_begin}:f>"), true)