diff --git a/get_online_session_communities.php b/get_online_session_communities.php index 3ebf8d0..81cb5bc 100644 --- a/get_online_session_communities.php +++ b/get_online_session_communities.php @@ -85,7 +85,7 @@ // print_r($rooms); // print_r($pubkeys); // print_r($addr_assignments); -// print_r($room_assignments); //TODO: We also assigned empty room arrays. Should probably be fixed +// print_r($room_assignments); // print_r($final_join_links); // write output to disk @@ -256,12 +256,6 @@ } } - /*$counter = 0; - foreach($rooms as $room_arr) { - $counter = $counter + count($room_arr); - } - echo("Found " . $counter . " rooms, but there could be duplicates." . PHP_EOL);*/ - // print_r($failed_arr); return $rooms; @@ -270,7 +264,7 @@ /* * TODO: Description */ - function query_single_servers_for_rooms($server_url, $failed_arr = null) { + function query_single_servers_for_rooms($server_url, &$failed_arr = null) { $result = array(); $endpoint = "/rooms"; $json_url = $server_url . $endpoint; @@ -286,10 +280,15 @@ if($json_obj) { foreach($json_obj as $json_room) { $token = $json_room->token; // room "name" + $users_per_second = $json_room->active_users / $json_room->active_users_cutoff; + $seconds_in_a_week = 604800; + $weekly_active_users = floor($users_per_second * $seconds_in_a_week); +// echo($token . " has " . $users_per_second . " UPS." . PHP_EOL); +// echo($token . " has " . $weekly_active_users . " WAU. (" . $json_room->active_users . ")" . PHP_EOL); $room_array = array( "token" => $token, "name" => $json_room->name, - "active_users" => $json_room->active_users, + "active_users" => $weekly_active_users, "description" => $json_room->description ); @@ -300,7 +299,7 @@ } else { $failed = true; -// echo($json_url . " failed to decode" . PHP_EOL); +// echo($json_url . " failed to decode" . PHP_EOL); } } else { @@ -309,18 +308,22 @@ if($failed) { // 404 - could mean it's a legacy server that doesn't provide /room endpoint - if($failed_arr) { +// echo("Failed json_url: " . $json_url . PHP_EOL); + if(!is_null($failed_arr)) { // if $failed_arr has been used as parameter, add failed URL to it $failed_arr[] = $server_url; +// echo("Failed: " . $server_url . PHP_EOL); } $legacy_rooms = query_homepage_for_rooms($server_url); if($legacy_rooms) { $result = $legacy_rooms; } else { - return null; + $result = null; } } +// print_r($failed_arr); + return $result; } @@ -532,12 +535,34 @@ } /* - * TODO: Description + * Returns an array that uses the public key as the index + * and assigns an array that has the server URL as index [0], + * and an array with all the room arrays as index[1] + * Example: + * [49ac5595058829c961eea6f60c44914cd08ea9b4c463d657fc82904eb2a89623] => Array ( + * [0] => https://2hu-ch.org + * [1] => Array ( + * [animu] => Array ( + * [token] => animu + * [name] => animu + * [active_users] => 34 + * [description] => + * ) + * [cryptography] => Array ( + * [token] => cryptography + * [name] => cryptography + * [active_users] => 14 + * [description] => + * ) + *)) */ function assign_rooms_to_address_assignments($addr_assignments_arr, $rooms_arr) { $result = array(); foreach($addr_assignments_arr as $pubkey => $address) { - $result[$pubkey] = array($address, $rooms_arr[$address]); + // only assign room array when one can be found in $rooms_arr + if($rooms_arr[$address]) { + $result[$pubkey] = array($address, $rooms_arr[$address]); + } } return $result;