diff options
author | Louie S <louie@example.com> | 2023-04-06 21:45:07 -0700 |
---|---|---|
committer | Louie S <louie@example.com> | 2023-04-06 21:45:07 -0700 |
commit | 532515d41a8e2ce914ac7c9e01c41044ebd62452 (patch) | |
tree | 8d651a5f0cc0cedd59578bfc450126246b17b592 /backend/endpoints/get_plist.py | |
parent | cdd588607bc63b65217f87f75ab22bad9fd0fc1c (diff) |
Diffstat (limited to 'backend/endpoints/get_plist.py')
-rw-r--r-- | backend/endpoints/get_plist.py | 30 |
1 files changed, 30 insertions, 0 deletions
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 |