1
0
Fork 1

Normalize users to WAU. Also fix debugging output.

pull/1/head
mdPlusPlus 1 year ago
parent 7717a77e62
commit 6b44bb80b0

@ -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;