aboutsummaryrefslogtreecommitdiffstats
path: root/pydis_site/apps/resources/utils.py
diff options
context:
space:
mode:
authorGravatar ChrisJL <[email protected]>2021-05-16 18:42:50 +0100
committerGravatar GitHub <[email protected]>2021-05-16 18:42:50 +0100
commit8c7c3b137fb6c60818d29ac3d14ebb397357ee0e (patch)
treefec5581d5e27fc860db6424f7c1d6a3a71565693 /pydis_site/apps/resources/utils.py
parentResolve conflicts (diff)
parentMerge pull request #501 from python-discord/update/sir-lancebot-env-vars (diff)
Merge branch 'main' into fix_327
Diffstat (limited to 'pydis_site/apps/resources/utils.py')
-rw-r--r--pydis_site/apps/resources/utils.py42
1 files changed, 42 insertions, 0 deletions
diff --git a/pydis_site/apps/resources/utils.py b/pydis_site/apps/resources/utils.py
new file mode 100644
index 00000000..1855fc80
--- /dev/null
+++ b/pydis_site/apps/resources/utils.py
@@ -0,0 +1,42 @@
+import typing as t
+from pathlib import Path
+
+import yaml
+
+
+def get_resources(path: Path) -> t.List[t.Dict]:
+ """Loads resource YAMLs from provided path."""
+ resources = []
+
+ for item in path.iterdir():
+ if item.is_file() and item.suffix == ".yaml" and item.name != "_category_info.yaml":
+ resources.append(yaml.safe_load(item.read_text()))
+
+ return resources
+
+
+def get_subcategories(path: Path) -> t.List[t.Dict]:
+ """Loads resources subcategories with their resources by provided path."""
+ subcategories = []
+
+ for item in path.iterdir():
+ if item.is_dir() and item.joinpath("_category_info.yaml").exists():
+ subcategories.append({
+ "category_info": {
+ **yaml.safe_load(
+ item.joinpath("_category_info.yaml").read_text()
+ ),
+ "raw_name": item.name
+ },
+ "resources": [
+ yaml.safe_load(subitem.read_text())
+ for subitem in item.iterdir()
+ if (
+ subitem.is_file()
+ and subitem.suffix == ".yaml"
+ and subitem.name != "_category_info.yaml"
+ )
+ ]
+ })
+
+ return subcategories