Skip to content
Snippets Groups Projects
Verified Commit dbdcda26 authored by Andrej Ramašeuski's avatar Andrej Ramašeuski
Browse files

Informace o velikosti skupiny clenu

parent ec27806f
No related branches found
No related tags found
No related merge requests found
Pipeline #1958 passed
......@@ -3,7 +3,7 @@ image: docker:19.03.1
variables:
DOCKER_TLS_CERTDIR: "/certs"
IMAGE_TAG: $CI_REGISTRY_IMAGE
IMAGE_VER: 1.0.1
IMAGE_VER: 1.1.0
services:
- docker:19.03.1-dind
......
......@@ -3,6 +3,7 @@ package CF::Controller::Websockets;
use Mojo::Base 'Mojolicious::Controller';
use Mojo::Pg::PubSub;
use Digest::SHA qw(hmac_sha1_hex);
use POSIX qw(ceil);
use feature 'signatures';
no warnings qw{ experimental::signatures };
......@@ -44,13 +45,18 @@ sub main {
my $all = $c->schema->resultset('Socket_view')->count(
{ is_alive => 't', }
);
my $members = $c->schema->resultset('Socket_view')->count(
{ is_alive => 't', is_member => 't' }
);
my $group_size = $c->_member_group_size($members);
$c->send({json => { event => 'online_users_updated', payload => {
all => $all,
members => $members,
group_size_full => $group_size->{full},
group_size_half => $group_size->{half},
}}});
if ( $user ) {
......@@ -71,4 +77,18 @@ sub main {
});
}
sub _member_group_size ($c, $total = 0){
my $group = 2 * sqrt($total);
my $min = $total / 100;
my $max = $total / 5;
$group = $min if $group < $min;
$group = $max if $group > $max;
return {
full => ceil( $group ),
half => ceil( $group/2 ),
};
}
1;
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment