#!/usr/bin/env python3 # SPDX-License-Identifier: CC0-1.0 from mako.template import Template import json def mxc2url(mxc): serverName = mxc.split('/')[2] mediaId = mxc.split('/')[3] return "https://matrix.org/_matrix/media/v3/download/" + serverName + "/" + mediaId def render(spaces, template): appTemplate = Template(filename=template) print(appTemplate.render(s=spaces)) def make_hierarchy(room, loops, depth=0): try: print(' ' * depth + '- ' + room['name']) if room['children_state'] and room['room_id'] not in loops: for child in room['children_state']: make_hierarchy(ROOMS[child['state_key']], loops, depth+1) except: # missing or no name print(' ' * depth + ' Skip ' + room['room_id']) if __name__ == '__main__': with open('libregamingspaces.json') as f: data = json.load(f) # render(data, './spaces.html') ROOMS = {room['room_id'] : room for room in data} make_hierarchy(ROOMS['!IdUUdKALNzBLKEjvbP:matrix.org'], ['!JTpfWshTKZpZiUASvP:hacklab.fi'])