this repo has no description
1#!/usr/bin/env python3 2 3import json 4 5collections = { 6 'Popsky': ('app-popsky', 'pop culture hub'), 7 'PinkSea': ('com-shinolabs-pinksea', 'oekaki on atproto'), 8 'WhiteWind': ('com-whtwnd', 'markdown blog service'), 9 'Smoke Signal': ('events-smokesignal', 'manage events and RSVPs'), 10 'teal.fm': ('fm-teal', 'your music, beautifully tracked'), 11 'Frontpage': ('fyi-unravel-frontpage', 'a decentralised and federated link aggregator'), 12 'Flushes': ('im-flushing', 'The Decentralized Toilet Network of Planet Earth & Simulation 12B'), 13 'Streamplace': ('place-stream', 'live video on the AT Protocol'), 14 'Tangled': ('sh-tangled', 'tightly-knit social coding'), 15 'Spark': ('so-sprk', 'short-form video/photo app'), 16 'Statusphere': ('xyz-statusphere', 'atproto quick start'), 17 'Roomy': ('chat-roomy', 'group chat on atproto'), 18 'ATFile': ('blue-zio-atfile', 'store and retrieve files'), 19 'Blue Badge': ('blue-badge', 'badges for atproto handles'), 20 '2048': ('blue-twentyfortyeight', '2048 on atproto'), 21 'recipe.exchange': ('exchange-recipe', 'discover and share your favorite recipes'), 22 'Linkat': ('blue-linkat', 'link collections'), 23 'Rocksky': ('app-rocksky', 'decentralized music tracking and discovery platform'), 24 # 'name': ('ns-id', 'description'), 25} 26 27values = [] 28defs = [] 29 30key_func = lambda obj: str.casefold(obj[0]) 31for name, (identifier, description) in sorted(collections.items(), key=key_func): 32 nsid = identifier.replace('-', '.') 33 if identifier == 'blue-twentyfortyeight': 34 # https://atproto.com/specs/label#recommended-string-syntax 35 nsid = 'blue.2048' 36 values.append(identifier) 37 defs.append(dict( 38 blurs = 'none', 39 severity = 'inform', 40 adultOnly = False, 41 identifier = identifier, 42 defaultSetting = 'warn', 43 locales = [dict( 44 lang = 'en', 45 name = name, 46 description = f'{description} ({nsid}.*)', 47 )], 48 )) 49 50doc = { 51 'labelValues': values, 52 'labelValueDefinitions': defs, 53} 54 55print(json.dumps(doc))