#!/usr/bin/env python3 import re import orjson import requests EXCLUDED_NOUNS = [ "Fightings", "Followings", "Harassments", "Injustices", "Insults", "Outrages", "Pleas", "Poisons", "Prejudices", "Punishments", "Robberies", "Sins", "Softwares", "Steams", "Theses", ] EXCLUDED_ADVERBS = [ "Obnoxiously", "Rudely", "Ruthlessly", "Scornfully", "Selfishly", ] EXCLUDED_ADJECTIVES = [ "Cruel", "Destructive", "Dishonest", "Illegal", "Infamous", "Shocking", ] def clean_word(word: str) -> str: return word.replace("\\n", "").replace("'", "").replace("]", "").replace("[", "").strip() def run() -> None: url = "https://raw.githubusercontent.com/jitsi/js-utils/refs/heads/master/random/roomNameGenerator.ts" response = requests.get(url) content = str(response.content) raw_plural_nouns = re.findall(r"const _PLURALNOUN_.*?=\s*(.*?);", content) plural_nouns = raw_plural_nouns[0].split(",") cleaned_nouns: list[str] = [ clean_word(noun).lower() for noun in plural_nouns if clean_word(noun) not in EXCLUDED_NOUNS ] raw_adverbs = re.findall(r"const _ADVERB_.*?=\s*(.*?);", content) adverbs = raw_adverbs[0].split(",") cleaned_adverbs: list[str] = [ clean_word(adverb).lower() for adverb in adverbs if clean_word(adverb) not in EXCLUDED_ADVERBS ] raw_adjectives = re.findall(r"const _ADJECTIVE_.*?=\s*(.*?);", content) adjectives = raw_adjectives[0].split(",") cleaned_adjectives: list[str] = [ clean_word(adjective).lower() for adjective in adjectives if clean_word(adjective) not in EXCLUDED_ADJECTIVES ] word_map = { "nouns": cleaned_nouns, "adverbs": cleaned_adverbs, "adjectives": cleaned_adjectives, } file_path = "zerver/lib/demo_organization_words.json" with open(file_path, "wb+") as f: f.write( orjson.dumps( word_map, option=orjson.OPT_APPEND_NEWLINE | orjson.OPT_INDENT_2 | orjson.OPT_SORT_KEYS, ) ) if __name__ == "__main__": run()