Put render novel into separate function
This commit is contained in:
parent
8b2d44d574
commit
7a4b5b9908
1
Cargo.lock
generated
1
Cargo.lock
generated
@ -170,6 +170,7 @@ dependencies = [
|
||||
"data-stream",
|
||||
"dialogi",
|
||||
"header-config",
|
||||
"indexmap",
|
||||
"maud",
|
||||
"percent-encoding",
|
||||
"pukram2html",
|
||||
|
||||
@ -12,3 +12,4 @@ dialogi = "0.3.1"
|
||||
vn-settings = "0.1.0"
|
||||
threadpool = "1.8.1"
|
||||
header-config = "0.1.5"
|
||||
indexmap = "2.9.0"
|
||||
|
||||
22
src/main.rs
22
src/main.rs
@ -21,6 +21,7 @@ use data_stream::{
|
||||
use dialog::parse_map;
|
||||
use dialogi::DialogParameter;
|
||||
use header_config::parse_config;
|
||||
use indexmap::IndexMap;
|
||||
use maud::html;
|
||||
use percent_encoding::percent_decode_str;
|
||||
use pukram2html::{Settings, convert, convert_extended, convert_subheader};
|
||||
@ -604,7 +605,12 @@ fn handle_relative_connection(
|
||||
.map(|parent| parse_config(&parent.with_extension("vng")).ok())
|
||||
.unwrap_or_default();
|
||||
|
||||
if let Some(mut config_map) = config_map {
|
||||
fn render_novel(
|
||||
mut config_map: IndexMap<Box<str>, Box<str>>,
|
||||
pk_path: &Path,
|
||||
stream: &mut TcpStream,
|
||||
start_level: usize,
|
||||
) -> std::result::Result<(), dialogi::ParsingError> {
|
||||
let mut player_settings = PlayerSettings {
|
||||
colors: ColorSettings::common(),
|
||||
timing: TimingSettings::common(),
|
||||
@ -646,10 +652,7 @@ fn handle_relative_connection(
|
||||
}
|
||||
}
|
||||
|
||||
let Ok(dialogs) = parse_map(file_paths.pk, &mut settings_context) else {
|
||||
fail(stream);
|
||||
return;
|
||||
};
|
||||
let dialogs = parse_map(pk_path, &mut settings_context)?;
|
||||
|
||||
let mut sections = Vec::new();
|
||||
|
||||
@ -885,6 +888,15 @@ fn handle_relative_connection(
|
||||
};
|
||||
|
||||
let _ = write!(stream, "{}", html.into_string());
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
if let Some(config_map) = config_map {
|
||||
if render_novel(config_map, file_paths.pk, &mut stream, start_level).is_err() {
|
||||
fail(stream);
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
let Ok(pk_file) = File::open(file_paths.pk) else {
|
||||
unreachable!();
|
||||
|
||||
Loading…
Reference in New Issue
Block a user