Normalize users to WAU. Also fix debugging output.

docs
mdPlusPlus 3 years ago
parent 7717a77e62
commit 6b44bb80b0

@ -85,7 +85,7 @@
// print_r($rooms); // print_r($rooms);
// print_r($pubkeys); // print_r($pubkeys);
// print_r($addr_assignments); // 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); // print_r($final_join_links);
// write output to disk // 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); // print_r($failed_arr);
return $rooms; return $rooms;
@ -270,7 +264,7 @@
/* /*
* TODO: Description * 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(); $result = array();
$endpoint = "/rooms"; $endpoint = "/rooms";
$json_url = $server_url . $endpoint; $json_url = $server_url . $endpoint;
@ -286,10 +280,15 @@
if($json_obj) { if($json_obj) {
foreach($json_obj as $json_room) { foreach($json_obj as $json_room) {
$token = $json_room->token; // room "name" $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( $room_array = array(
"token" => $token, "token" => $token,
"name" => $json_room->name, "name" => $json_room->name,
"active_users" => $json_room->active_users, "active_users" => $weekly_active_users,
"description" => $json_room->description "description" => $json_room->description
); );
@ -300,7 +299,7 @@
} }
else { else {
$failed = true; $failed = true;
// echo($json_url . " failed to decode" . PHP_EOL); // echo($json_url . " failed to decode" . PHP_EOL);
} }
} }
else { else {
@ -309,18 +308,22 @@
if($failed) { if($failed) {
// 404 - could mean it's a legacy server that doesn't provide /room endpoint // 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 // if $failed_arr has been used as parameter, add failed URL to it
$failed_arr[] = $server_url; $failed_arr[] = $server_url;
// echo("Failed: " . $server_url . PHP_EOL);
} }
$legacy_rooms = query_homepage_for_rooms($server_url); $legacy_rooms = query_homepage_for_rooms($server_url);
if($legacy_rooms) { if($legacy_rooms) {
$result = $legacy_rooms; $result = $legacy_rooms;
} else { } else {
return null; $result = null;
} }
} }
// print_r($failed_arr);
return $result; 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) { function assign_rooms_to_address_assignments($addr_assignments_arr, $rooms_arr) {
$result = array(); $result = array();
foreach($addr_assignments_arr as $pubkey => $address) { 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; return $result;

Loading…
Cancel
Save