matrix-rasa

A rasa bot for matrix based on the data from matrix.org
git clone git://archive.git.mtrnord.blog/MTRNord/matrix-rasa.git
Log | Files | Refs | LICENSE

matrix_org_to_json.py (1899B)


      1 import frontmatter
      2 from pathlib import Path
      3 import json
      4 import toml
      5 
      6 BASE_PATH = Path("../../matrix.org")
      7 ECOSYSTEM_PATH = BASE_PATH / "content/ecosystem/"
      8 
      9 output_json = {"client": [], "provider": [], "sdk": [], "integration": [], "server": []}
     10 
     11 clients_path = (ECOSYSTEM_PATH / "clients").glob("*.md")
     12 id = 0
     13 for file in clients_path:
     14     filename = file.stem
     15     if filename == "_index":
     16         continue
     17     with open(file) as f:
     18         client = frontmatter.load(f)
     19         client_json = client.metadata["extra"]
     20         client_json["id"] = id
     21         client_json["name"] = filename
     22         client_json["description"] = client.content
     23         output_json["client"].append(client_json)
     24         id += 1
     25 
     26 sdks_path = ECOSYSTEM_PATH / "sdks" / "sdks.toml"
     27 sdks = toml.load(sdks_path)
     28 id = 0
     29 for sdk in sdks["sdks"]:
     30     sdk_json = sdk
     31     sdk_json["id"] = id
     32     output_json["sdk"].append(sdk_json)
     33     id += 1
     34 
     35 
     36 integrations_path = ECOSYSTEM_PATH / "integrations" / "integrations.toml"
     37 integrations = toml.load(integrations_path)
     38 id = 0
     39 for integration in integrations["integrations"]:
     40     integration_json = integration
     41     integration_json["id"] = id
     42     output_json["integration"].append(integration_json)
     43     id += 1
     44 
     45 providers_path = ECOSYSTEM_PATH / "hosting" / "providers.toml"
     46 providers = toml.load(providers_path)
     47 id = 0
     48 for provider in providers["providers"]:
     49     provider_json = provider
     50     provider_json["id"] = id
     51     del provider_json["image"]
     52     output_json["provider"].append(provider_json)
     53     id += 1
     54 
     55 servers_path = ECOSYSTEM_PATH / "servers" / "servers.toml"
     56 servers = toml.load(servers_path)
     57 id = 0
     58 for server in servers["servers"]:
     59     server_json = server
     60     server_json["id"] = id
     61     output_json["server"].append(server_json)
     62     id += 1
     63 
     64 with open("../knowledge_base_data.json", "w", encoding="utf-8") as f:
     65     json.dump(output_json, f, ensure_ascii=False, indent=4)