|
|
|
|
@ -47,8 +47,9 @@
|
|
|
|
|
$servers_raw = file_get_contents($ROOMS_FILE);
|
|
|
|
|
$server_data = json_decode($servers_raw, true);
|
|
|
|
|
$servers = CommunityServer::from_details_array($server_data);
|
|
|
|
|
$rooms_all = CommunityServer::enumerate_rooms($servers);
|
|
|
|
|
$rooms_by_id = [];
|
|
|
|
|
foreach (CommunityServer::enumerate_rooms($servers) as $room) {
|
|
|
|
|
foreach ($rooms_all as $room) {
|
|
|
|
|
$rooms_by_id[$room->get_room_identifier()] = $room;
|
|
|
|
|
}
|
|
|
|
|
$sogs_by_pubkey = [];
|
|
|
|
|
@ -58,8 +59,13 @@
|
|
|
|
|
$listings = [];
|
|
|
|
|
foreach ($listings_raw as $id => $listing_props) {
|
|
|
|
|
$rooms = [];
|
|
|
|
|
// TODO: Blocklist option
|
|
|
|
|
if (isset($listing_props['rooms'])) {
|
|
|
|
|
foreach ($listing_props['rooms'] as $room_id) {
|
|
|
|
|
if ($room_id == '*') {
|
|
|
|
|
$rooms = $rooms_all;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
if (isset($rooms_by_id[$room_id])) {
|
|
|
|
|
$rooms[] = $rooms_by_id[$room_id];
|
|
|
|
|
} else {
|
|
|
|
|
@ -84,7 +90,7 @@
|
|
|
|
|
$listing_props['rating'],
|
|
|
|
|
$rooms
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return $listings;
|
|
|
|
|
}
|
|
|
|
|
|