diff --git a/Cargo.lock b/Cargo.lock
index 4c1d2bc..a8cbba1 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -1483,7 +1483,6 @@ dependencies = [
"colored",
"futures",
"headers",
- "lazy_static",
"lettre",
"log",
"mediawiki",
diff --git a/Cargo.toml b/Cargo.toml
index 7ed1452..7283a37 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -24,7 +24,6 @@ nom = "7.1.3"
mediawiki = "0.3.1"
ollama-rs = "0.2.1"
tokio = "1.0.0"
-lazy_static = "1.4"
[[bin]]
name = "Plenum-Bot"
diff --git a/src/email.rs b/src/email.rs
index 4698c56..790fe1f 100644
--- a/src/email.rs
+++ b/src/email.rs
@@ -46,11 +46,6 @@ pub const CONFIG: CfgGroup<'static> = CfgGroup {
description:
"Message-Id of last initial announcement to send In-Reply-To (if applicable).",
},
- CfgField::Default {
- key: "state-toc",
- default: "error: no toc saved",
- description: "Recipient of the emails sent.",
- },
],
};
diff --git a/src/key_value.rs b/src/key_value.rs
index cdfea88..9a612db 100644
--- a/src/key_value.rs
+++ b/src/key_value.rs
@@ -80,7 +80,6 @@ impl KeyValueStore {
let result = row.get(0)?;
Ok(result)
} else {
- println!(": Keinen Wert für '{key}' gefunden, bitte Datenbank überprüfen!");
Err(rusqlite::Error::QueryReturnedNoRows)
}
}
diff --git a/src/main.rs b/src/main.rs
index ca5ea33..712222b 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -59,7 +59,7 @@ const CONFIG_SPEC: CfgSpec<'static> = CfgSpec {
description: "Various strings used.",
fields: &[
CfgField::Default { key: "email-greeting",
- default: "Hallo liebe Mitreisenden,",
+ default: "Hallo liebe Mitreisende,",
description: "\"Hello\"-greeting added at the start of every email.",
},
CfgField::Default { key: "email-signature",
@@ -400,23 +400,13 @@ fn do_announcement(
"Falls ihr noch Themen ergänzen wollt ist hier der Link zum Pad:\n {}",
hedgedoc.format_url(¤t_pad_id)
);
- let mut body = format!("{line1}\n\n{line2}");
+ let body = format!("{line1}\n\n{line2}");
// send it
let message_id = send_email(&subject, &body, email, config)?;
// on success, update state (ignore write errors, they'll be checked later)
config.set("email-message-id", &message_id).ok();
config.set("state-name", &ProgramState::Announced.to_string()).ok();
- config.set("email-state-toc", &toc).ok();
- let mut matrix = MatrixClient::new(
- &config["matrix-homeserver-url"],
- &config["matrix-user-id"],
- &config["matrix-access-token"],
- &config["matrix-room-id-1"],
- &config["matrix-room-id-2"],
- is_dry_run(),
- );
- let message = format!("{}\n\n{}{}",&config["text-email-greeting"], &body, &config["text-email-signature"]);
- matrix.send_message_to_two_rooms(&message)?;
+ config.set("state-toc", &toc).ok();
Ok(())
}
@@ -427,7 +417,7 @@ fn do_reminder(
NYI!("trace/verbose annotations");
// fetch current pad contents & summarize
let (current_pad_id, _pad_content, toc, n_topics) = get_pad_info(config, hedgedoc);
- let old_toc = config.get("email-state-toc")?;
+ let old_toc = config.get("state-toc")?;
// construct email
let human_date = plenum_day.format("%d.%m.%Y");
let subject = if n_topics == 0 {
@@ -446,7 +436,7 @@ fn do_reminder(
} else {
format!("Es gab nochmal Änderungen, die aktualisierten Themen für das Plenum sind:\n\n{toc}\n\n")
};
- let mut body = if n_topics > 0 {
+ let body = if n_topics > 0 {
format!(
"{body_prefix}Die vollen Details findet ihr im Pad:\n {}\n\nBis {} um 20:00!",
hedgedoc.format_url(¤t_pad_id),
@@ -467,21 +457,9 @@ fn do_reminder(
NYI!(
"do we skip ahead to ProgramState::Logged here or do we later add a note to the wiki?"
);
- // TODO: ADD SOMETHING TO WIKI
}
-
config.set("state-name", &ProgramState::Reminded.to_string()).ok();
- config.set("email-state-toc", &toc).ok();
- let mut matrix = MatrixClient::new(
- &config["matrix-homeserver-url"],
- &config["matrix-user-id"],
- &config["matrix-access-token"],
- &config["matrix-room-id-1"],
- &config["matrix-room-id-2"],
- is_dry_run(),
- );
- let message = format!("{}\n\n{}{}",&config["text-email-greeting"], &body, &config["text-email-signature"]);
- matrix.send_message_to_two_rooms(&message)?;
+ config.set("state-toc", &toc).ok();
Ok(())
}
@@ -522,7 +500,7 @@ fn do_protocol(
let pad_content = pad_content.replace("[toc]", &toc);
let body = format!(
"Anbei das Protokoll vom {human_date}, ab sofort auch im Wiki zu finden.\n\n\
- Das Pad für das nächste Plenum ist zu finden unter <{}/{}>.\n\nDie Protokolle der letzten Plena findet ihr im wiki unter <{}/index.php?title={}>.\n\n---Protokoll:---\n{}\n-----",
+ Das Pad für das nächste Plenum ist zu finden unter <{}/{}>.\nDie Protokolle der letzten Plena findet ihr im wiki unter <{}/index.php?title={}>.\n\n---Protokoll:---\n{}\n-----",
&config["hedgedoc-server-url"],
&config["hedgedoc-next-id"],
&config["wiki-server-url"],
@@ -539,7 +517,7 @@ fn do_protocol(
let pad_content = pad_content.replace("[toc]", &toc);
let body = format!(
"Anbei das Protokoll vom {human_date}, ab sofort auch im Wiki zu finden.\n\n\
- Das Pad für das nächste Plenum ist zu finden unter {}/{}.\n\nDie Protokolle der letzten Plena findet ihr im wiki unter {}/index.php?title={}.\n\n---Protokoll:---{}",
+ Das Pad für das nächste Plenum ist zu finden unter {}/{}.\nDie Protokolle der letzten Plena findet ihr im wiki unter {}/index.php?title={}.\n\n---Protokoll:---{}",
&config["hedgedoc-server-url"],
&config["hedgedoc-next-id"],
&config["wiki-server-url"],
@@ -554,24 +532,39 @@ fn do_protocol(
&config["matrix-homeserver-url"],
&config["matrix-user-id"],
&config["matrix-access-token"],
- &config["matrix-room-id-1"],
- &config["matrix-room-id-2"],
+ &config["matrix-room-id-for-short-messages"],
+ &config["matrix-room-id-for-long-messages"],
is_dry_run(),
);
// Send the matrix room message
let human_date = plenum_day.format("%d.%m.%Y");
let pad_content = pad_content.replace("[toc]", &toc);
- let message = format!(
+ let long_message = format!(
"Anbei das Protokoll vom {human_date}, ab sofort auch im Wiki zu finden.\n\n\
- Das Pad für das nächste Plenum ist zu finden unter {}/{}.\n\nDie Protokolle der letzten Plena findet ihr im wiki unter {}/index.php?title={}.\n\n**Hier die Zusammenfassung:**\n\n{}",
+ Das Pad für das nächste Plenum ist zu finden unter {}/{}.\nDie Protokolle der letzten Plena findet ihr im wiki unter {}/index.php?title={}.\n**Hier die Zusammenfassung:**\n{}",
&config["hedgedoc-server-url"],
&config["hedgedoc-next-id"],
&config["wiki-server-url"],
&config["wiki-plenum-page"],
&summary_or_toc
);
- let full_message = format!("{}\n\n{}{}",&config["text-email-greeting"], &message, &config["text-email-signature"]);
- matrix.send_message_to_two_rooms(&full_message)?;
+ let full_long_message = format!(
+ "{}\n{}{}",
+ &config["text-email-greeting"], long_message, &config["text-email-signature"]
+ );
+ let short_message = format!(
+ "Das letzte Plenum hatte Anbei das Protokoll vom {human_date}, ab sofort auch im Wiki zu finden.\n\n\
+ Das Pad für das nächste Plenum ist zu finden unter {}/{}.\nDie Protokolle der letzten Plena findet ihr im wiki unter {}/index.php?title={}.",
+ &config["hedgedoc-server-url"],
+ &config["hedgedoc-next-id"],
+ &config["wiki-server-url"],
+ &config["wiki-plenum-page"]
+ );
+ let full_short_message = format!(
+ "{}\n{}{}",
+ &config["text-email-greeting"], short_message, &config["text-email-signature"].strip_prefix("[").unwrap_or(&config["text-email-signature"]).strip_suffix("]").unwrap_or(&config["text-email-signature"])
+ );
+ matrix.send_short_and_long_messages_to_two_rooms(&full_short_message, &full_long_message)?;
Ok(())
}
@@ -583,7 +576,7 @@ fn do_cleanup(
_wiki: &Mediawiki,
) -> Result<(), Box
+ html = html.replace("\n\n", "
");
html = html.replace("\n", "
");
+ html = html.replace("**", "");
+ html = html.replace("__", "");
+
Ok(html)
}
- pub fn pandoc_convert_text_to_md(markdown: String) -> Result