Compare commits
6 Commits
2f626d7982
...
74978a8ae4
Author | SHA1 | Date |
---|---|---|
Rampoina | 74978a8ae4 | |
Rampoina | d0bda2688b | |
Phil Morrell | a0ff199506 | |
Phil Morrell | e451a10bf3 | |
Phil Morrell | 585fde2898 | |
Phil Morrell | f103ce8649 |
File diff suppressed because it is too large
Load Diff
|
@ -1,19 +1,42 @@
|
|||
#!/usr/bin/env python3
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
|
||||
from mako.template import Template
|
||||
import json
|
||||
import itertools
|
||||
import argparse
|
||||
|
||||
|
||||
def mxc2url(mxc):
|
||||
serverName = mxc.split('/')[2]
|
||||
mediaId = mxc.split('/')[3]
|
||||
return "https://matrix.org/_matrix/media/v3/download/" + serverName + "/" + mediaId
|
||||
|
||||
appTemplate = Template(filename='./spaces.html')
|
||||
f = open('libregamingspaces.json')
|
||||
spaces=json.load(f)
|
||||
|
||||
print(appTemplate.render(s=spaces))
|
||||
def render(spaces, loops, template):
|
||||
appTemplate = Template(filename=template)
|
||||
print(appTemplate.render(s=spaces,loops=loops))
|
||||
|
||||
def make_hierarchy(space, room, loops):
|
||||
try:
|
||||
if 'children' in space:
|
||||
space['children'].append(room)
|
||||
else:
|
||||
space['children'] = [room]
|
||||
|
||||
if 'children_state' in room:
|
||||
for child in room['children_state']:
|
||||
if ROOMS[child['state_key']]['room_id'] not in loops:
|
||||
make_hierarchy(room,ROOMS[child['state_key']], loops)
|
||||
except:
|
||||
pass
|
||||
|
||||
if __name__ == '__main__':
|
||||
with open('libregamingspaces.json') as f:
|
||||
data = json.load(f)
|
||||
|
||||
ROOMS = {room['room_id'] : room for room in data}
|
||||
spaces={'name':"TOP"}
|
||||
loops=['!JTpfWshTKZpZiUASvP:hacklab.fi']
|
||||
make_hierarchy(spaces,ROOMS['!IdUUdKALNzBLKEjvbP:matrix.org'], loops)
|
||||
#print(spaces)
|
||||
render(spaces, loops, './spaces.html')
|
||||
|
||||
|
||||
|
||||
|
|
12
spaces.html
12
spaces.html
|
@ -10,18 +10,19 @@
|
|||
<link rel="stylesheet" href="main.css">
|
||||
</head>
|
||||
<body>
|
||||
<%def name="render(space)">
|
||||
<%def name="render(room)">
|
||||
<table>
|
||||
<tbody>
|
||||
% for room in space:
|
||||
<tr>
|
||||
% if 'avatar_url' in room:
|
||||
<td><img class="avatar roomAvatar" src=${mxc2url(room['avatar_url'])}></td>
|
||||
% endif
|
||||
% if 'room_type' in room and room['room_type'] == "m.space":
|
||||
<td><div> Subspace: ${room['name']} </div></td>
|
||||
% if 'children' in room:
|
||||
<td><div>${room['name']} </div></td>
|
||||
</tr>
|
||||
<tr><td>${render(room['children_state'])}</td></tr>
|
||||
% for subroom in room['children']:
|
||||
<tr><td>${render(subroom)}</td></tr>
|
||||
% endfor
|
||||
% else:
|
||||
|
||||
% if 'room_id' in room:
|
||||
|
@ -35,7 +36,6 @@
|
|||
% endif
|
||||
</tr>
|
||||
% endif
|
||||
% endfor
|
||||
</tbody>
|
||||
</table>
|
||||
</%def>
|
||||
|
|
Loading…
Reference in New Issue