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); }); }