Add 'all' listing

dev
gravel 2 years ago
parent e0c5c21967
commit ca322ff7cc
Signed by: gravel
GPG Key ID: C0538F3C906B308F

@ -103,4 +103,9 @@ name=18+ Communities
rating=nsfw rating=nsfw
rooms[]=womanbodybeauty+13f6 rooms[]=womanbodybeauty+13f6
rooms[]=piao+2cd5 rooms[]=piao+2cd5
rooms[]=AINSFW+fc30 rooms[]=AINSFW+fc30
[all]
name=All Communities
rating=unsafe
rooms[]=*

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

Loading…
Cancel
Save