aboutsummaryrefslogtreecommitdiffstats
path: root/pydis_site/apps/resources/utils.py
blob: 3c8571efdac8820c0e596553b5a93c70ead821d6 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import typing as t
from pathlib import Path

import yaml
from django.conf import settings

RESOURCES_PATH = Path(settings.BASE_DIR, "pydis_site", "apps", "resources", "resources")


default_categories = [
    "topics",
    "payment_tiers",
    "complexity",
    "type"
]


def get_resources_meta() -> dict:
    all_resources = get_resources()

    resource_meta_tags = {x: set() for x in default_categories}

    for resource in all_resources:
        tags = resource.get("tags")

        for tag_key, tag_values in tags.items():
            for tag_item in tag_values:
                resource_meta_tags[tag_key].add(tag_item)

    return resource_meta_tags


def get_resources() -> t.List[t.Dict]:
    """Loads resource YAMLs from provided path."""
    resources = []

    for item in RESOURCES_PATH.rglob("*.yaml"):
        resources.append(yaml.safe_load(item.read_text()))

    return resources