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 ...@@ -3,7 +3,7 @@ image: docker:19.03.1
variables: variables:
DOCKER_TLS_CERTDIR: "/certs" DOCKER_TLS_CERTDIR: "/certs"
IMAGE_TAG: $CI_REGISTRY_IMAGE IMAGE_TAG: $CI_REGISTRY_IMAGE
IMAGE_VER: 1.0.1 IMAGE_VER: 1.1.0
services: services:
- docker:19.03.1-dind - docker:19.03.1-dind
......
...@@ -3,6 +3,7 @@ package CF::Controller::Websockets; ...@@ -3,6 +3,7 @@ package CF::Controller::Websockets;
use Mojo::Base 'Mojolicious::Controller'; use Mojo::Base 'Mojolicious::Controller';
use Mojo::Pg::PubSub; use Mojo::Pg::PubSub;
use Digest::SHA qw(hmac_sha1_hex); use Digest::SHA qw(hmac_sha1_hex);
use POSIX qw(ceil);
use feature 'signatures'; use feature 'signatures';
no warnings qw{ experimental::signatures }; no warnings qw{ experimental::signatures };
...@@ -44,13 +45,18 @@ sub main { ...@@ -44,13 +45,18 @@ sub main {
my $all = $c->schema->resultset('Socket_view')->count( my $all = $c->schema->resultset('Socket_view')->count(
{ is_alive => 't', } { is_alive => 't', }
); );
my $members = $c->schema->resultset('Socket_view')->count( my $members = $c->schema->resultset('Socket_view')->count(
{ is_alive => 't', is_member => 't' } { is_alive => 't', is_member => 't' }
); );
my $group_size = $c->_member_group_size($members);
$c->send({json => { event => 'online_users_updated', payload => { $c->send({json => { event => 'online_users_updated', payload => {
all => $all, all => $all,
members => $members, members => $members,
group_size_full => $group_size->{full},
group_size_half => $group_size->{half},
}}}); }}});
if ( $user ) { if ( $user ) {
...@@ -71,4 +77,18 @@ sub main { ...@@ -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; 1;
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment