From a6bb17ef1e283260c0553c3b3dfc1e9104739ac9 Mon Sep 17 00:00:00 2001 From: DaInfLoop Date: Sun, 28 Jun 2026 18:33:25 +0100 Subject: [PATCH 1/2] feat: add related scripts section shows all scripts that have the same "owner" on script view --- generate.py | 24 ++++++++++++++++++++++-- script.py | 5 +++-- templates/script_page.html | 16 ++++++++++++++++ 3 files changed, 41 insertions(+), 4 deletions(-) diff --git a/generate.py b/generate.py index fcffd651..4430794d 100755 --- a/generate.py +++ b/generate.py @@ -134,6 +134,16 @@ def generate(game: str): index = process_scripts(data, decompiled_dir_ch) + related = {} + + for section in index.sections.values(): + if section.name == "Scripts": continue + + for entries in section.entries.values(): + names = [entry.name for entry in entries] + for entry in entries: + related[entry.name] = names + logger.info(f"['{chapter}'] Rendering index...") write_index(index, data, output_dir_ch) @@ -141,7 +151,7 @@ def generate(game: str): logger.info(f"['{chapter}'] Rendering scripts' pages...") for script in tqdm(index.text.keys(), disable=None): - rendered = render_script(script, index.text, data) + rendered = render_script(script, index.text, data, related.get(script, [])) write_script(rendered, script, output_dir_ch) @@ -157,6 +167,16 @@ def generate(game: str): index = process_scripts(data, decompiled_dir) + related = {} + + for section in index.sections.values(): + if section.name == "Scripts": continue + + for entries in section.entries.values(): + rel_entries = [entry for entry in entries] + for entry in entries: + related[entry.name] = rel_entries + logger.info('Rendering index...') write_index(index, data, output_dir) @@ -164,7 +184,7 @@ def generate(game: str): logger.info("Rendering scripts' pages...") for script in tqdm(index.text.keys(), disable=None): - rendered = render_script(script, index.text, data) + rendered = render_script(script, index.text, data, related.get(script, [])) write_script(rendered, script, output_dir) diff --git a/script.py b/script.py index 72e11094..e337afd3 100755 --- a/script.py +++ b/script.py @@ -306,7 +306,7 @@ def process_line( def render_script( - script_name: str, text: Dict[str, List[str]], data: Data + script_name: str, text: Dict[str, List[str]], data: Data, related_scripts: Optional[List[str]] = [] ) -> str: lines = [ process_line(line, script_name, text, data) @@ -320,9 +320,10 @@ def render_script( script_name=script_name, raw_url=f'/raw{chapter_segment}/{script_name}.txt', lines=lines, + related_scripts=related_scripts, game=data.get_game_name(), links=data.get_game_links(), - footer=data.get_game_footer(), + footer=data.get_game_footer() ) diff --git a/templates/script_page.html b/templates/script_page.html index d33efeaa..0e3eda64 100644 --- a/templates/script_page.html +++ b/templates/script_page.html @@ -13,6 +13,22 @@

{{ game }} script viewer

← back to main script listing

{{ script_name }}

+ + {% if related_scripts is defined and related_scripts|length > 0 %} +
+ related scripts: + {% for script in related_scripts %} + {% if (script.prefix + script.suffix) == script_name %} + {{ script.suffix }} + {% else %} + {{ script.suffix }} + {% endif %} + {% if not loop.last %} • {% endif %} + {% endfor %} +
+
+ {% endif %} + (view raw script w/o annotations or w/e) From 40b944986029ce7136ec4334c0d3b2cd97d56adf Mon Sep 17 00:00:00 2001 From: DaInfLoop Date: Sun, 28 Jun 2026 18:59:54 +0100 Subject: [PATCH 2/2] chore: fix linting issues --- generate.py | 24 ++++++++++++++++++------ script.py | 7 +++++-- 2 files changed, 23 insertions(+), 8 deletions(-) diff --git a/generate.py b/generate.py index 4430794d..3e2c15c2 100755 --- a/generate.py +++ b/generate.py @@ -137,12 +137,13 @@ def generate(game: str): related = {} for section in index.sections.values(): - if section.name == "Scripts": continue + if section.name == 'Scripts': + continue for entries in section.entries.values(): names = [entry.name for entry in entries] for entry in entries: - related[entry.name] = names + related[entry.name] = names logger.info(f"['{chapter}'] Rendering index...") @@ -151,7 +152,12 @@ def generate(game: str): logger.info(f"['{chapter}'] Rendering scripts' pages...") for script in tqdm(index.text.keys(), disable=None): - rendered = render_script(script, index.text, data, related.get(script, [])) + rendered = render_script( + script, + index.text, + data, + related.get(script, []) + ) write_script(rendered, script, output_dir_ch) @@ -170,12 +176,13 @@ def generate(game: str): related = {} for section in index.sections.values(): - if section.name == "Scripts": continue + if section.name == 'Scripts': + continue for entries in section.entries.values(): rel_entries = [entry for entry in entries] for entry in entries: - related[entry.name] = rel_entries + related[entry.name] = rel_entries logger.info('Rendering index...') @@ -184,7 +191,12 @@ def generate(game: str): logger.info("Rendering scripts' pages...") for script in tqdm(index.text.keys(), disable=None): - rendered = render_script(script, index.text, data, related.get(script, [])) + rendered = render_script( + script, + index.text, + data, + related.get(script, []) + ) write_script(rendered, script, output_dir) diff --git a/script.py b/script.py index e337afd3..bb620910 100755 --- a/script.py +++ b/script.py @@ -5,7 +5,7 @@ import re import sys from pathlib import Path -from typing import Dict, List +from typing import Dict, List, Optional from jinja2 import Environment, FileSystemLoader, select_autoescape @@ -306,7 +306,10 @@ def process_line( def render_script( - script_name: str, text: Dict[str, List[str]], data: Data, related_scripts: Optional[List[str]] = [] + script_name: str, + text: Dict[str, List[str]], + data: Data, + related_scripts: Optional[List[str]] = [] ) -> str: lines = [ process_line(line, script_name, text, data)