diff --git a/listings/listings.ini b/listings/listings.ini index 1a0c8d6..a1b3c14 100644 --- a/listings/listings.ini +++ b/listings/listings.ini @@ -103,4 +103,9 @@ name=18+ Communities rating=nsfw rooms[]=womanbodybeauty+13f6 rooms[]=piao+2cd5 -rooms[]=AINSFW+fc30 \ No newline at end of file +rooms[]=AINSFW+fc30 + +[all] +name=All Communities +rating=unsafe +rooms[]=* \ No newline at end of file diff --git a/php/generate-listings.php b/php/generate-listings.php index ed7d662..a664d80 100644 --- a/php/generate-listings.php +++ b/php/generate-listings.php @@ -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; }