right install method + fixed hedgedoc bugs

This commit is contained in:
murmeldin 2025-02-09 01:11:16 +01:00
parent 8df8d6eee6
commit 665b9ba013
4 changed files with 33 additions and 13 deletions

25
shell.nix Normal file
View file

@ -0,0 +1,25 @@
{pkgs ? import <nixpkgs> {}}: let
rust-toolchain = pkgs.symlinkJoin {
name = "rust-toolchain";
paths = with pkgs; [rustc cargo rustPlatform.rustcSrc rustfmt clippy];
};
in
pkgs.mkShell {
nativeBuildInputs = with pkgs.buildPackages; [
rust-toolchain
pkg-config
xe
xz
cargo-tarpaulin
openssl
sqlite
gcc
gnumake
# dotnet-sdk_8
];
RUST_SRC_PATH = "${pkgs.rust.packages.stable.rustPlatform.rustLibSrc}";
}

View file

@ -156,9 +156,9 @@ impl HedgeDoc {
pub fn rotate(config: &KeyValueStore, is_dry_run: bool) -> Result<String, Box<dyn Error>> {
let hold_pad_id = &config["hedgedoc-next-id"];
config.set("hedgedoc-last-id", hold_pad_id);
config.set("hedgedoc-last-id", hold_pad_id)?;
let new_id = HedgeDoc::new(&config.get("hedgedoc-server-url").unwrap(), is_dry_run).create_pad()?;
config.set("hedgedoc-next-id", &new_id);
config.set("hedgedoc-next-id", &new_id)?;
Ok(new_id)
}

View file

@ -3,7 +3,7 @@
use cccron_lib::config_spec::{self, CfgField, CfgGroup, CfgSpec};
use cccron_lib::date;
use cccron_lib::email::{self, Email, SimpleEmail};
use cccron_lib::hedgedoc::{self, HedgeDoc};
use cccron_lib::hedgedoc::{self, HedgeDoc,};
use cccron_lib::is_dry_run;
use cccron_lib::key_value::{KeyValueStore as KV, KeyValueStore};
use cccron_lib::matrix::{self, MatrixClient};
@ -306,7 +306,7 @@ fn topic_count(n: usize, dative: bool) -> String {
fn get_pad_info(config: &KV, hedgedoc: &HedgeDoc) -> (String, String, String, usize) {
let current_pad_id = &config["hedgedoc-last-id"];
let pad_content = hedgedoc.download(current_pad_id).expect("Hedgedoc: Download-Fehler");
let toc = hedgedoc::summarize(pad_content.clone());
let toc = hedgedoc.summarize(pad_content.clone());
verboseln!("Zusammenfassung des aktuellen Plenum-Pads:\n{}", toc.cyan());
let n_topics = toc.lines().count();
verboseln!("(Also {}.)", topic_count(n_topics, false).cyan());
@ -436,7 +436,7 @@ fn do_protocol(
nyi!("trace/verbose annotations");
let (_current_pad_id, pad_content_without_cleanup, toc, n_topics) =
get_pad_info(config, hedgedoc);
let pad_content = hedgedoc::strip_metadata(pad_content_without_cleanup.clone());
let pad_content = HedgeDoc::strip_metadata(pad_content_without_cleanup.clone());
let ollama_enabled: bool = match &config["hedgedoc-ollama-summaries-enabled"] {
"True" => true,
"False" => false,
@ -449,12 +449,7 @@ fn do_protocol(
let ollama_port: &u16 = &config["hedgedoc-ollama-port"]
.parse::<u16>()
.expect("The ollama port wasn't given a valid u16 port, please check the config");
match hedgedoc::summarize_with_ollama(
&pad_content,
&config["hedgedoc-ollama-pre-prompt"],
&config["hedgedoc-ollama-address"],
ollama_port,
) {
match HedgeDoc::summarize_with_ollama(&pad_content, &config["hedgedoc-ollama-pre-prompt"], &config["hedgedoc-ollama-address"], ollama_port) {
Ok(ollama_summary) => ollama_summary,
Err(err) => {
eprintln!("Ollama failed, continuing with standard toc. This was the error Message: {err}");
@ -482,7 +477,7 @@ fn do_protocol(
);
let _message_id = send_email(&subject, &body, email, config)?;
mediawiki::pad_ins_wiki(pad_content, wiki, plenum_day)?;
let new_id = hedgedoc::rotate(config, is_dry_run())?;
let new_id = HedgeDoc::rotate(config, is_dry_run())?;
println!("Generated new pad with id '{}'", new_id);
config.set("state-name", &ProgramState::Logged.to_string()).ok();
} else {

View file

@ -15,5 +15,5 @@ git pull
sudo apt update
sudo apt upgrade -y
sudo apt install gcc libssl-dev pandoc pkg-config libsqlite3-dev
cargo build --release
cargo install --path .
sudo ./update_or_create_systemd_service.sh