From 532515d41a8e2ce914ac7c9e01c41044ebd62452 Mon Sep 17 00:00:00 2001 From: Louie S Date: Thu, 6 Apr 2023 21:45:07 -0700 Subject: Set correct index pages --- backend/endpoints/get_plist.py | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'backend/endpoints/get_plist.py') diff --git a/backend/endpoints/get_plist.py b/backend/endpoints/get_plist.py index 07d7b3a..ac7366e 100644 --- a/backend/endpoints/get_plist.py +++ b/backend/endpoints/get_plist.py @@ -10,6 +10,21 @@ from config import Config class Get_Plist: output = dict() + + def find_index(path): + if os.path.isfile(os.path.join(path, "index.html")): + return os.path.join(path, "index.html") + + with os.scandir(path) as it: + for entry in it: + if entry.name == "." or entry.name == "..": + continue + if(os.DirEntry.is_dir(entry)): + return Get_Plist.find_index(os.path.join(path, entry.name)) + + return False + + def find_plist(path): with os.scandir(path) as it: for entry in it: @@ -18,6 +33,15 @@ class Get_Plist: if(os.path.isfile(plist_path)): if(Get_Plist.parse_plist(plist_path)): Get_Plist.output["docsets"][-1]["docset_root"] = docset_root + Get_Plist.output["docsets"][-1]["docset_index"] = os.path.join(docset_root, Get_Plist.output["docsets"][-1]["docset_index"]) + if not os.path.isfile(Get_Plist.output["docsets"][-1]["docset_index"]): + index_loc = Get_Plist.find_index(Get_Plist.output["docsets"][-1]["docset_index"]) + if not index_loc: + del Get_Plist.output["docsets"][-1]["docset_index"] + else: + Get_Plist.output["docsets"][-1]["docset_index"] = index_loc + + for f in ["icon.png", "icon@2x.png"]: if os.path.isfile(os.path.join(docset_root, f)): Get_Plist.output["docsets"][-1][f] = os.path.join(docset_root, f) @@ -37,9 +61,15 @@ class Get_Plist: return False Get_Plist.output["docsets"].append({}) + for f in fields: Get_Plist.output["docsets"][-1][f] = pl[f] + # Find the index page + Get_Plist.output["docsets"][-1]["docset_index"] = os.path.join("Contents", "Resources", "Documents") + if "dashIndexFilePath" in pl: + Get_Plist.output["docsets"][-1]["docset_index"] = os.path.join(Get_Plist.output["docsets"][-1]["docset_index"], pl["dashIndexFilePath"]) + return True -- cgit