summaryrefslogtreecommitdiff
path: root/backend/endpoints/get_plist.py
diff options
context:
space:
mode:
authorLouie S <louie@example.com>2023-04-06 21:45:07 -0700
committerLouie S <louie@example.com>2023-04-06 21:45:07 -0700
commit532515d41a8e2ce914ac7c9e01c41044ebd62452 (patch)
tree8d651a5f0cc0cedd59578bfc450126246b17b592 /backend/endpoints/get_plist.py
parentcdd588607bc63b65217f87f75ab22bad9fd0fc1c (diff)
Set correct index pagesHEADmaster
Diffstat (limited to 'backend/endpoints/get_plist.py')
-rw-r--r--backend/endpoints/get_plist.py30
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