aboutsummaryrefslogtreecommitdiff
path: root/modules/ui_extra_networks.py
diff options
context:
space:
mode:
authorAarni Koskela <akx@iki.fi>2023-03-06 21:14:06 +0200
committerAarni Koskela <akx@iki.fi>2023-03-06 21:15:33 +0200
commit06f167da37cd00ea8241bd2a6a3c12d8c5fb9eaf (patch)
tree725c73d1437be27703bcd04e9e0e86a067877290 /modules/ui_extra_networks.py
parent49b1dc5e07825e76c85ac4ac078fd63aa835e8bd (diff)
Extra networks: support .txt description sidecar file
Diffstat (limited to 'modules/ui_extra_networks.py')
-rw-r--r--modules/ui_extra_networks.py15
1 files changed, 15 insertions, 0 deletions
diff --git a/modules/ui_extra_networks.py b/modules/ui_extra_networks.py
index 1a10a5df..cd61a569 100644
--- a/modules/ui_extra_networks.py
+++ b/modules/ui_extra_networks.py
@@ -1,6 +1,7 @@
import glob
import os.path
import urllib.parse
+from functools import lru_cache
from pathlib import Path
from typing import Optional
@@ -131,6 +132,7 @@ class ExtraNetworksPage:
"tabname": json.dumps(tabname),
"local_preview": json.dumps(item["local_preview"]),
"name": item["name"],
+ "description": (item.get("description") or ""),
"card_clicked": onclick,
"save_card_preview": '"' + html.escape(f"""return saveCardPreview(event, {json.dumps(tabname)}, {json.dumps(item["local_preview"])})""") + '"',
"search_term": item.get("search_term", ""),
@@ -147,6 +149,19 @@ class ExtraNetworksPage:
return self.link_preview(file)
return None
+ @lru_cache(maxsize=512)
+ def _find_description(self, path: str) -> Optional[str]:
+ """
+ Find and read a description file for a given path (without extension).
+ """
+ for file in [f"{path}.txt", f"{path}.description.txt"]:
+ try:
+ with open(file, "r", encoding="utf-8", errors="replace") as f:
+ return f.read()
+ except OSError:
+ pass
+ return None
+
def intialize():
extra_pages.clear()