From 96e24ddb7ef7dd595dbf53a9889bf32ece979a14 Mon Sep 17 00:00:00 2001 From: DistributedDoge <49067954+DistributedDoge@users.noreply.github.com> Date: Mon, 5 Feb 2024 15:39:36 +0000 Subject: [PATCH] add 'raw_discourse_categories' asset --- ggdp/assets.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/ggdp/assets.py b/ggdp/assets.py index 16594ea..e8d1b49 100644 --- a/ggdp/assets.py +++ b/ggdp/assets.py @@ -239,3 +239,30 @@ def raw_giveth_projects(): giveth = pd.DataFrame(all_projects) giveth.convert_dtypes() return giveth + + +@asset +def raw_discourse_categories(): + """ + Listing of categories from "Discourse" of various communities. + + Use 'source' column to group categories by Discourse instance. + """ + forums = { + "Gitcoin": "https://gov.gitcoin.co", + "Giveth": "https://forum.giveth.io", + "Arbitrum": "https://forum.arbitrum.foundation", + "Optimism": "https://gov.optimism.io/", + } + + data = [] + for community, forum_address in forums.items(): + catalog = read_json_with_retry(f"{forum_address}/categories.json") + catalog = catalog["category_list"]["categories"] + for category in catalog: + category["source"] = community + data.extend(catalog) + + discourse_df = pd.DataFrame(data) + discourse_df = discourse_df.convert_dtypes() + return discourse_df