29 lines
905 B
Python
Executable File
29 lines
905 B
Python
Executable File
#!/usr/bin/env python3
|
|
# SPDX-License-Identifier: CC0-1.0
|
|
|
|
from mako.template import Template
|
|
import json
|
|
|
|
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'])
|