function addCommaForGrands(num) {
let str = num.toString();
let result = '';
while (str.length > 3) {
result = ',' + str.slice(-3) + result;
str = str.slice(0, -3);
}
if (str.length) result = str + result;
return result;
}
function getChannelDataFromString(s) {
if (s.length < 3) return null;
var split = s.split(";&;");
if (split.length < 5) return null;
var status_id = parseInt(split[0].trim());
var status_changed_at = new Date(split[1].trim());
var name = split[2].trim();
var tg_link = split[3].trim();
var users_cnt = parseInt(split[4].trim()) - 1;
var latitude = NaN;
var longitude = NaN;
if (split.length == 7) {
var latitude = parseFloat(split[5].trim());
var longitude = parseFloat(split[6].trim());
}
if (isNaN(status_id)) status_id = 0;
return {
status_id: status_id,
status_changed_at: status_changed_at,
link: tg_link,
title: name,
users: users_cnt,
latitude: latitude,
longitude: longitude,
}
}
function fillTGChannels(arr)
{
arr.sort((a, b) => (a.users < b.users) ? 1 : -1)
var container = document.getElementById('my_channels_container');
var block_create_own_channel = container.innerHTML; //save for later use
container.innerHTML = "";
// Loop through the array
for (var i = 0; i < arr.length; i++) {
// Get the current channel
var channel = arr[i];
// Create the HTML block
var html = '
';
side_line_color = "#dcdada";
if (channel.status_id != 0) {
side_line_color = getColorByStatus(channel.status_id);
}
html += '
';
html += '
';
var s_name = channel.title;
s_name = s_name.replace("->",'
')
var url = 'https://t.me/' + channel.link;
html += '
' + s_name + '';
var s_additional = generateStringChannelState(channel, false);
if (s_additional.length > 0) html += '
' + s_additional + '';
html += '
';
var s_users = addCommaForGrands(channel.users);
html += '
' + s_users + ' ';
html += "";
html += '';
html += ' ';
// Append the HTML block to the container
container.innerHTML += html;
}
container.innerHTML += block_create_own_channel;
}
function indexFillStats() {
var api = PYTHON_API_URL + "website";
$.get(api + "/getChannelsAndPingsCount").done(function(data){
var channels_cnt = parseInt(data.split(";")[0]);
var block = '' + channels_cnt + '
';
$("#myslider_channels_cnt").append(block);
var pings_cnt = parseInt(data.split(";")[1]);
var block_queries = '' + addCommaForGrands(pings_cnt) + '
'
$("#myslider_queries_cnt").append(block_queries);
var s_slider_queries_label = getNumbereEnding(pings_cnt, 'Оброблений запит', 'Оброблених запити', 'Оброблених запитів');
$("#myslider_queries_cnt_label").text(s_slider_queries_label);
});
$.get(api + "/getChannels").done(function(data){
var total_users_cnt = 0;
// Set the array of parameters
var tg_channels_arr = [];
var split = data.split("\n");
for (var i = 0; i < split.length; i++) {
var line = split[i];
el = getChannelDataFromString(line);
if (el == null) continue;
if (el.users <= 0) continue;
tg_channels_arr.push(el);
total_users_cnt += el.users;
}
//TG CHANNELS
fillTGChannels(tg_channels_arr);
//SLIDER USERS
var block_users = '' + total_users_cnt + '
';
$("#myslider_users_cnt").append(block_users);
var s_slider_users_label = 'Користувач' + getNumbereEnding(total_users_cnt, '', 'і', 'ів');
$("#myslider_users_cnt_label").text(s_slider_users_label);
});
}