Pandoc Umwandlung zu MediaWiki
This commit is contained in:
parent
19be226f11
commit
8526fa4fca
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -3,3 +3,4 @@
|
||||||
plenum_config.sqlite
|
plenum_config.sqlite
|
||||||
.direnv
|
.direnv
|
||||||
shell.nix
|
shell.nix
|
||||||
|
pandoc-output.txt
|
28
src/main.rs
28
src/main.rs
|
@ -33,7 +33,12 @@ use uuid::Uuid;
|
||||||
use reqwest::Client;
|
use reqwest::Client;
|
||||||
use std::error::Error;
|
use std::error::Error;
|
||||||
// use std::future::Future;
|
// use std::future::Future;
|
||||||
|
|
||||||
|
// For MediaWiki-conversion
|
||||||
use pandoc;
|
use pandoc;
|
||||||
|
use std::io;
|
||||||
|
use std::io::prelude::*;
|
||||||
|
use std::fs::File;
|
||||||
|
|
||||||
// use std::process::Command;
|
// use std::process::Command;
|
||||||
// use headers::ContentType;
|
// use headers::ContentType;
|
||||||
|
@ -42,6 +47,7 @@ use pandoc;
|
||||||
use lettre::{Message, SmtpTransport, Transport};
|
use lettre::{Message, SmtpTransport, Transport};
|
||||||
use lettre::message::{header, SinglePart};
|
use lettre::message::{header, SinglePart};
|
||||||
use lettre::transport::smtp::authentication::Credentials;
|
use lettre::transport::smtp::authentication::Credentials;
|
||||||
|
use pandoc::{MarkdownExtension, Pandoc, PandocError, PandocOutput};
|
||||||
// MAIL END
|
// MAIL END
|
||||||
|
|
||||||
#[derive(PartialEq)]
|
#[derive(PartialEq)]
|
||||||
|
@ -130,7 +136,7 @@ async fn main() -> Result<(), Box<dyn Error>> {
|
||||||
// let in_3_days_is_plenum = true;
|
// let in_3_days_is_plenum = true;
|
||||||
|
|
||||||
let top_anzahl: i32 = 0; // Muss noch gecodet werden
|
let top_anzahl: i32 = 0; // Muss noch gecodet werden
|
||||||
let in_1_day_is_plenum = true;
|
let yesterday_was_plenum = true; // Das ist nur zu Testzwecken, kommt noch weg
|
||||||
if in_1_day_is_plenum {
|
if in_1_day_is_plenum {
|
||||||
println!("In 1 Tag ist Plenum, deshalb wird eine Erinnerung raus geschickt!");
|
println!("In 1 Tag ist Plenum, deshalb wird eine Erinnerung raus geschickt!");
|
||||||
let pad_content = download_and_return_pad(format!("{}/download", current_pad_link.clone())).await.expect("Fehler beim Download des Pads!");
|
let pad_content = download_and_return_pad(format!("{}/download", current_pad_link.clone())).await.expect("Fehler beim Download des Pads!");
|
||||||
|
@ -171,7 +177,7 @@ async fn main() -> Result<(), Box<dyn Error>> {
|
||||||
} else if yesterday_was_plenum {
|
} else if yesterday_was_plenum {
|
||||||
// This logic breaks on 02/2034, but on every other month it works
|
// This logic breaks on 02/2034, but on every other month it works
|
||||||
let old_pad_content = download_and_return_pad(format!("{}/download", current_pad_link.clone())).await.expect("Fehler beim Download des Pads!");
|
let old_pad_content = download_and_return_pad(format!("{}/download", current_pad_link.clone())).await.expect("Fehler beim Download des Pads!");
|
||||||
generate_new_pad_for_following_date(übernächster_plenumtermin, überübernächster_plenumtermin, &config).await.expect("Fehler! Plenumspad konnte nicht generiert werden!");
|
// MUSS WIEDER REIN NACH DEM TESTEN: generate_new_pad_for_following_date(übernächster_plenumtermin, überübernächster_plenumtermin, &config).await.expect("Fehler! Plenumspad konnte nicht generiert werden!");
|
||||||
println!("DATENBANK: aktuelles-plenumspad: {:?} und zukünftiges plenumspad: {:?}", &config.get("aktuelles-plenumspad"), &config.get("zukünftiges-plenumspad"));
|
println!("DATENBANK: aktuelles-plenumspad: {:?} und zukünftiges plenumspad: {:?}", &config.get("aktuelles-plenumspad"), &config.get("zukünftiges-plenumspad"));
|
||||||
|
|
||||||
let old_pad_content_without_top_instructions = try_to_remove_top_instructions(old_pad_content);
|
let old_pad_content_without_top_instructions = try_to_remove_top_instructions(old_pad_content);
|
||||||
|
@ -343,7 +349,23 @@ fn try_to_remove_top_instructions (pad_content: String) -> String {
|
||||||
|
|
||||||
fn pad_ins_wiki(old_pad_content: String) {
|
fn pad_ins_wiki(old_pad_content: String) {
|
||||||
//Convert Markdown into Mediawiki
|
//Convert Markdown into Mediawiki
|
||||||
|
// Vanilla pandoc Befehl: pandoc --from markdown --to mediawiki --no-highlight
|
||||||
|
let mut p = pandoc::new();
|
||||||
|
p.set_input(pandoc::InputKind::Pipe(old_pad_content));
|
||||||
|
p.set_input_format(pandoc::InputFormat::Markdown, vec![]);
|
||||||
|
// p.set_output_format(Pandoc::OutputFormat::mediawiki, vec![MarkdownExtension::Smart]);
|
||||||
|
p.set_output(pandoc::OutputKind::File("./pandoc-output.txt".parse().unwrap()));
|
||||||
|
p.set_output_format(pandoc::OutputFormat::MediaWiki, vec![]);
|
||||||
|
p.execute().expect("Fehler beim Umwandeln des und speichern des Pads in eine mediawiki-Textdatei");
|
||||||
|
|
||||||
|
// Textdatei wieder einlesen
|
||||||
|
let mut file = File::open("pandoc-output.txt").expect("Fehler beim öffnen der MediaWiki-Textdatei!");
|
||||||
|
let mut contents = String::new();
|
||||||
|
file.read_to_string(&mut contents).expect("Fehler beim auslesen der MediaWiki-Textdatei!");
|
||||||
|
|
||||||
|
// Passwörter aus Datenbank lesen (ToBeDone)
|
||||||
|
let plenum_bot_user = String::from("PlenumBot@PlenumBot-PW1");
|
||||||
|
let plenum_bot_pw = String::from("**OLD_API_PW_REMOVED**");
|
||||||
|
|
||||||
let pandoc_parsed = old_pad_content; // MUSS GEÄNDERT WERDEN
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue