From c7fd6f3b1776bd81155862eba363af371714658a Mon Sep 17 00:00:00 2001 From: gsd Date: Mon, 22 May 2023 14:50:01 +0300 Subject: [PATCH] =?UTF-8?q?=D0=BD=D0=BE=D0=B2=D1=8B=D0=B5=20=D0=BA=D0=BD?= =?UTF-8?q?=D0=BE=D0=BF=D0=BE=D1=87=D0=BA=D0=B8=20=D0=B8=20=D1=81=D1=82?= =?UTF-8?q?=D0=B0=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index.html | 58 ++++++++- site_content/images/preview/_default.jpg | Bin 0 -> 233898 bytes site_content/images/preview/alkashplaza.jpg | Bin 0 -> 90391 bytes site_content/images/preview/brewery.jpg | Bin 0 -> 43708 bytes .../images/preview/brewery_ultimate_open.jpg | Bin 0 -> 70721 bytes site_content/images/preview/city_faktovsk.jpg | Bin 0 -> 21967 bytes .../images/preview/city_muhosransk_v6.jpg | Bin 0 -> 88929 bytes site_content/images/preview/city_norilsk.jpg | Bin 0 -> 75243 bytes .../images/preview/city_norilsk_v5.jpg | Bin 0 -> 47276 bytes site_content/images/preview/cp_norilsk.jpg | Bin 0 -> 41551 bytes site_content/images/preview/dimon_dagger.jpg | Bin 0 -> 50334 bytes .../images/preview/dm_norilsk_b1_d.jpg | Bin 0 -> 75243 bytes .../images/preview/donbassborn_open.jpg | Bin 0 -> 41602 bytes .../images/preview/factovsk13_leto_v1_fix.jpg | Bin 0 -> 131279 bytes .../images/preview/factovsk13_lobnya.jpg | Bin 0 -> 242869 bytes site_content/images/preview/factovsk228.jpg | Bin 0 -> 45023 bytes site_content/images/preview/factovsk666.jpg | Bin 0 -> 242869 bytes site_content/images/preview/iwantmge.jpg | Bin 0 -> 91876 bytes .../images/preview/koth_sneed_plaza.jpg | Bin 0 -> 28270 bytes site_content/images/preview/mge_facti_v1.url | 1 + .../images/preview/mvm_ghost_town.url | 1 + site_content/images/preview/tf_muhosransk.jpg | Bin 0 -> 88929 bytes .../images/preview/world_of_korbal.jpg | Bin 0 -> 42580 bytes .../images/preview/zavod_1_pivoupdate.jpg | Bin 0 -> 39918 bytes .../images/preview/zavod_3_jirikupdate_v4.jpg | Bin 0 -> 40151 bytes .../preview/zavod_446241_finalupdate.url | 1 + .../preview/zavod_4_obnovaupdate_v2.jpg | Bin 0 -> 162105 bytes site_content/images/preview/zavodpipis.jpg | Bin 0 -> 51348 bytes site_content/js/API.js | 89 ++++++------- site_content/js/Player_API.js | 121 +++++++++++------- 30 files changed, 174 insertions(+), 97 deletions(-) create mode 100644 site_content/images/preview/_default.jpg create mode 100644 site_content/images/preview/alkashplaza.jpg create mode 100644 site_content/images/preview/brewery.jpg create mode 100644 site_content/images/preview/brewery_ultimate_open.jpg create mode 100644 site_content/images/preview/city_faktovsk.jpg create mode 100644 site_content/images/preview/city_muhosransk_v6.jpg create mode 100644 site_content/images/preview/city_norilsk.jpg create mode 100644 site_content/images/preview/city_norilsk_v5.jpg create mode 100644 site_content/images/preview/cp_norilsk.jpg create mode 100644 site_content/images/preview/dimon_dagger.jpg create mode 100644 site_content/images/preview/dm_norilsk_b1_d.jpg create mode 100644 site_content/images/preview/donbassborn_open.jpg create mode 100644 site_content/images/preview/factovsk13_leto_v1_fix.jpg create mode 100644 site_content/images/preview/factovsk13_lobnya.jpg create mode 100644 site_content/images/preview/factovsk228.jpg create mode 100644 site_content/images/preview/factovsk666.jpg create mode 100644 site_content/images/preview/iwantmge.jpg create mode 100644 site_content/images/preview/koth_sneed_plaza.jpg create mode 100644 site_content/images/preview/mge_facti_v1.url create mode 100644 site_content/images/preview/mvm_ghost_town.url create mode 100644 site_content/images/preview/tf_muhosransk.jpg create mode 100644 site_content/images/preview/world_of_korbal.jpg create mode 100644 site_content/images/preview/zavod_1_pivoupdate.jpg create mode 100644 site_content/images/preview/zavod_3_jirikupdate_v4.jpg create mode 100644 site_content/images/preview/zavod_446241_finalupdate.url create mode 100644 site_content/images/preview/zavod_4_obnovaupdate_v2.jpg create mode 100644 site_content/images/preview/zavodpipis.jpg diff --git a/index.html b/index.html index 0e0789a..8727da0 100644 --- a/index.html +++ b/index.html @@ -39,9 +39,9 @@
- Авторизируйся через стим чтоб получить больше возможностей! (тык) + Авторизируйся через стим чтоб получить больше возможностей! (тык) - +
- +
+
+
+
+

О нашем сервере...

+
Мы используем современные и крутые технологии и любой желающий может принять участие в их совершенствовании!
+
+
+
+
+
+

Версия сборки жопы: СЕГОДНЯ БЛЯТЬ

+
+
+
+

Донаты через QIWI: исходник

+
+
+
+

Донаты через Steam: исходник

+
+
+
+

Наш Discord бот: исходник

+
+
+
+
@@ -494,6 +521,26 @@ transition: background-image 1s;" id="main_container">
+ + + ` } +function human_name_impl(data){ + let number = Math.abs(data.player_count) % 100; + let number_post = number % 10; + if (number > 10 && number < 20) { return data.naming[2]; } + if (number_post > 1 && number_post < 5) { return data.naming[1]; } + if (number_post == 1) { return data.naming[0] } + return data.naming[2]; +} + function bind_ServerAboutClose(){ $('#Modal_ServerAbout_Close').click(async function (ev) { ev.preventDefault(); @@ -131,22 +140,12 @@ function bind_ServerAboutReportPlayer_Close(){ if($('#Modal_ServerAboutReportPlayer_reason').val().length < 32){ $("#Modal_ServerAboutReportPlayer_error").html("У тебя причина говно, сделай ее более красочной. Опиши подробнее где тебя трогали."); } else { - fetch("https://tf2.pblr-nyk.pro/player_api/v1/report", {headers: {'Cache-Control':'no-cache'}, method:"GET"}) - .then(res => res.json()) - .then(res => { - if ("error" in res && "allow" in res) { - $("#Modal_ServerAboutReportPlayer_error").html(`Следующий репорт доступен через ${res.kd} секунд!`); - } else if ("error" in res) { - $("#Modal_ServerAboutReportPlayer_error").html(res.error); - return; - } else if ("allow" in res && res.allow == true) { - fetch(`https://tf2.pblr-nyk.pro/player_api/v1/report?server=${$('#Modal_ServerAboutReportPlayer_srv').text()}&id=${$('#Modal_ServerAboutReportPlayer_id').text()}&text=${$('#Modal_ServerAboutReportPlayer_reason').val()}`, {headers: {'Cache-Control':'no-cache'}, method:"POST"}) + fetch(`https://tf2.pblr-nyk.pro/api/profile/current/report?steam64=${$('#Modal_ServerAboutReportPlayer_id').text()}&text=${$('#Modal_ServerAboutReportPlayer_reason').val()}`, {headers: {'Cache-Control':'no-cache'}, method:"POST"}) .then(res => res.json()) .then(res => { - $("#Modal_ServerAboutReportPlayer_error").html("Донос отправлен!"); - }); - } - }) + if (res > 0) $("#Modal_ServerAboutReportPlayer_error").html("Донос отправлен!"); + else $("#Modal_ServerAboutReportPlayer_error").html(`Подожди еще ${res*-1} секунд!`); + }) .catch(err => {$("#Modal_ServerAboutReportPlayer_error").html("Ошибка получения");}); } //$("#Modal_ServerAboutReportPlayer_error").html("ЛОХ"); @@ -157,16 +156,17 @@ function bind_ServerAboutReportPlayerButton(id){ $(id).click(async function (ev) { ev.preventDefault(); $('#Modal_ServerAbout').modal('hide'); - let data = ev.currentTarget.dataset.id.replaceAll("_",".").split("|", 2); - Modal_Fill_Report(data[0], data[1]); + let data = ev.currentTarget.dataset.id//.replaceAll("_",".").split("|", 2); + Modal_Fill_Report(data); $('#Modal_ServerAboutReportPlayer').modal('show'); }); } -function Modal_Fill_Report(srv, player_id){ - $(`#Modal_ServerAboutReportPlayer_name`).html(api_response.servers[srv].players[player_id].name); - $(`#Modal_ServerAboutReportPlayer_srv`).html(srv); - $(`#Modal_ServerAboutReportPlayer_id`).html(api_response.servers[srv].players[player_id].id); +function Modal_Fill_Report(player_id){ + //$(`#Modal_ServerAboutReportPlayer_name`).html(api_response.servers[srv].players[player_id].name); + //$(`#Modal_ServerAboutReportPlayer_srv`).html(srv); + //$(`#Modal_ServerAboutReportPlayer_id`).html(api_response.servers[srv].players[player_id].id); + $(`#Modal_ServerAboutReportPlayer_id`).html(player_id); } function bind_ServerAboutButton(srv_name){ @@ -258,13 +258,14 @@ function Modal_Fill_Choiced(srv){ return api_response.servers[srv].players[b].score - api_response.servers[srv].players[a].score; }); for (const player_id in sorted_players) { + if (api_response.servers[srv].players[sorted_players[player_id]].id == 0) continue; let player = api_response.servers[srv].players[sorted_players[player_id]]; modal_body += ` - ${player.name} + ${player.name} ${player.score ? player.score : 0} ${player.duration} - ${allow_report?`report`:''} + ${allow_report?`report`:''} `; } @@ -288,45 +289,33 @@ function Modal_Fill_Choiced(srv){ if(allow_report && api_response.servers[srv].status && api_response.servers[srv].player_count > 0) { for (const player_id in api_response.servers[srv].players) { player = api_response.servers[srv].players[player_id]; - bind_ServerAboutReportPlayerButton(`#Modal_ReportButton_${srv.replaceAll(".","_")}_${player.id}`); + bind_ServerAboutReportPlayerButton(`#Modal_ReportButton_${player.steam.steam64}`); } } } -async function CheckApi() { - let api_request_time = (new Date).getTime(); - await fetch("https://tf2.pblr-nyk.pro/api", {headers: {'Cache-Control':'no-cache'}}) - .then(res => res.text()) - .then(res => {api_request_time = (new Date).getTime() - api_request_time}) - .catch(err => {api_request_time = 0}); - //////////////////////////////////////////// - let player_api_request_time = (new Date).getTime(); - await fetch("https://tf2.pblr-nyk.pro/player_api/v1/ping", {headers: {'Cache-Control':'no-cache'}}) - .then(res => res.text()) - .then(res => {player_api_request_time = (new Date).getTime() - player_api_request_time}) - .catch(err => {player_api_request_time = 0}); - //////////////////////////////////////////// - FillFooter("", api_request_time, player_api_request_time); -} - async function RequestAPI() { //let api_request_time = (new Date).getTime(); //, {headers: {'Cache-Control':'no-cache'}} + let api_request_time = (new Date).getTime(); await fetch("https://tf2.pblr-nyk.pro/api/stats", {headers: {'Cache-Control':'no-cache'}}) .then(res => res.json()) .then(res => { + api_request_time = (new Date).getTime() - api_request_time + FillFooter("", api_request_time, "disabled"); api_response = res; FillServices(res); - // $('#current_players').text(res.servers.statistic.player_now) - $("#current_players").html(res.servers.statistic.player_now); - $("#max_per_day").html(res.servers.statistic.player_max); - $("#servers_works").html(`${res.servers.statistic.working_servers}/${res.servers.statistic.total_servers}`); + // $('#current_players').text(res.statistic.player_now) + $("#current_players").html(res.statistic.player_now); + $("#max_per_day").html(res.statistic.player_max); + $("#servers_works").html(`${res.statistic.working_servers}/${res.statistic.total_servers}`); $("#uniq_day_players").html(res.uniq.day); $("#uniq_month_players").html(res.uniq.month); $("#uniq_year_players").html(res.uniq.year); $("#ServersSectionLastUpdate").html(`Информация обновлена: ${UNIX2TIMESTAMP(res.updates.servers)}`); $("#AboutSection_discord").html(`${res.discord_users} ГЕЙмеров `); $("#AboutSection_vk").html(`${res.vk_users} Участников `); + $("#AboutSection_BuildDate").html(`${UNIX2TIMESTAMP(parseInt(res.builddate))}`); $("#Section_VIP_users").html(`${res.vip_players} карликов уже имеют випку!`); let active = false; @@ -377,6 +366,12 @@ async function RequestAPI() { //FillFooter("", 0, 0); }); + await fetch("https://tf2.pblr-nyk.pro/api/external/vip", {headers: {'Cache-Control':'no-cache'}}) + .then(res => res.json()) + .then(res => { + api_prices = res; + }) + //FillFooter("", api_request_time, ""); } @@ -395,13 +390,13 @@ function FillFooter(data, api_time, player_api_time){ } else { document.getElementById("Footer_Text").insertAdjacentHTML("beforeend", text_good.replace("{text}", `${api_time} ms`)); } - + /* document.getElementById("Footer_Text").insertAdjacentHTML("beforeend", text.replace("{text}", ` | Player API: `)); if(player_api_time == 0) { document.getElementById("Footer_Text").insertAdjacentHTML("beforeend", text_bad.replace("{text}", `not work`)); } else { document.getElementById("Footer_Text").insertAdjacentHTML("beforeend", text_good.replace("{text}", `${player_api_time} ms`)); - } + }*/ } function FillServices(data) { diff --git a/site_content/js/Player_API.js b/site_content/js/Player_API.js index cb5c1ed..a267a77 100644 --- a/site_content/js/Player_API.js +++ b/site_content/js/Player_API.js @@ -5,11 +5,21 @@ class CurrentUser { } fill_user() { - fetch("https://tf2.pblr-nyk.pro/player_api/v1/current_user", { credentials: "same-origin", headers: { 'Cache-Control': 'no-cache' } }) + fetch("https://tf2.pblr-nyk.pro/api/profile/current", { credentials: "same-origin", headers: { 'Cache-Control': 'no-cache' } }) .then(response => response.json()) + .catch(err => { + if (err.code == 429) { + $("#Header_CurrentUser").html("Слишком частые запросы с беку, обнови позднее позже!!"); + $("#Header_Logout").html(""); + return; + } + $("#Header_CurrentUser").html("Ошибка получения данных профиля! "); + $("#Header_Logout").html("(Обнови страницу для релога)"); + return; + }) .then(response => { - if ("error" in response) { - console.log(response.error); + if (response == null || "error" in response) { + //console.log(response.error); $("#Header_CurrentUser").html("Ошибка получения данных профиля! "); $("#Header_Logout").html("(Обнови страницу для релога)") return; @@ -37,30 +47,6 @@ class CurrentUser { if (check_cookie_name("steam64")) { var current_user = new CurrentUser(); } -/* -async function CheckCurrentUser() { - if (!check_cookie_name("steam64")) { return; } - //$("#Header_CurrentUser").html(`Получение данных профиля с сервера... ПОДОЖДИ`); - /*await fetch("https://tf2.pblr-nyk.pro/player_api/v1/current_user", { credentials: "same-origin", headers: { 'Cache-Control': 'no-cache' } }) - .then(response => response.json()) - .then(response => { - if ("error" in response) { - console.log(response.error); - } else { - $("#Header_CurrentUser").attr("href", "#"); - if (response.ban) { - $("#Header_CurrentUser").html(`Привет ${response.steam_data.nickname}! У меня хорошие новости!`); - $("#Header_CurrentBan").html("У тебя БАН! (нажми чтоб посмотреть его)"); - } else { - $("#Header_CurrentUser").html(`Привет ${response.steam_data.nickname}!`); - } - $("#Header_Logout").html(` (нажми чтоб выйти)`); - $("#profile_list").remove(); - $(FillPlayerInfo(response)).appendTo("#profile_stats"); - ReconstructVipSection(response); - } - }) -}*/ function check_cookie_name(name) { var match = document.cookie.match(new RegExp('(^| )' + name + '=([^;]+)')); @@ -72,7 +58,7 @@ let captcha_error_div = `
Долбаеб введи ссылку на профиль!
`; function CalculateVipEndDate(permition) { - return new Date((permition["UNIX_TIMESTAMP(`reg_date`)"] + permition.amount) * 1000); + return new Date((permition.u_timestamp + permition.amount) * 1000); } function FillPlayerInfo(data) { @@ -272,6 +258,15 @@ function UNIX2FACTI_TIME(u_time) { } } +function human_name_impl_2(count, naming){ + let number = Math.abs(count) % 100; + let number_post = number % 10; + if (number > 10 && number < 20) { return naming[2]; } + if (number_post > 1 && number_post < 5) { return naming[1]; } + if (number_post == 1) { return naming[0] } + return naming[2]; +} + function ReconstructVipSection(data) { $('#Modal_SelectPayMethod_Close').click(async function (ev) { ev.preventDefault(); @@ -280,7 +275,7 @@ function ReconstructVipSection(data) { $('#Modal_SelectPayMethod_CheckVIP').click(async function (ev) { ev.preventDefault(); - await fetch("https://tf2.pblr-nyk.pro/player_api/v1/player/permitions", { credentials: "same-origin", headers: { 'Cache-Control': 'no-cache' } }) + await fetch("https://tf2.pblr-nyk.pro/api/profile/current?requests=permition", { credentials: "same-origin", headers: { 'Cache-Control': 'no-cache' } }) .then(response => response.json()) .then(response => { if (response.permition) { @@ -307,43 +302,66 @@ function ReconstructVipSection(data) { $("#Modal_SelectPayMethod_ProfileLink").attr("href", data.steamids.community_url); $("#Modal_SelectPayMethod_ProfileName").html(`Вип будет выдан: ${data.steam_data.nickname}`); - let price_array = new Array( + /*let price_array = new Array( ["1 месяц", 150, "1 ключ", "site_content/images/vip/VIP_1_MOUNTH.jpg", "month"], - ["1 неделя", 75, "20 рефов", "site_content/images/vip/VIP_7_DAYS.jpg", "seven_day"], + ["1 неделя", 75, "20 рефов", "site_content/images/vip/VIP_7_DAYS.jpg", "week"], ["1 день", 20, "5 рефов", "site_content/images/vip/VIP_1_DAY.jpg", "day"], ["1 день", 0, "бесплатно", "site_content/images/vip/freevip.jpg", "free"] - ); + );*/ let vip_select; - for (const select in price_array) { + for (let price in api_prices) { + price = api_prices[price]; vip_select = `
- ${price_array[select][0]} + ${price.human_duration}
- +
-
${price_array[select][0]}
-
${price_array[select][1]} Рублей
-
${price_array[select][2]}
+
${price.human_duration}
+
${price.money_price} Рублей
+
${price.item_price}
` $(vip_select).appendTo("#Section_VIP_buttons"); - $(`#Section_VIP_buttons_${price_array[select][4]}`).click(async function (ev) { + $(`#Section_VIP_buttons_${price.period}`).click(async function (ev) { ev.preventDefault(); - if(price_array[select][4] != "free"){ + if(price.period != "free"){ $("#Modal_SelectPayMethod_PayButtons").show(0); $("#Modal_SelectPayMethod_GetFreeButtons").hide(0); - $("#Modal_SelectPayMethod_QIWI_Button").attr("href", QIWI_TRADE.replace("(AMOUNT)", price_array[select][1]).replace("(COMMENT)", data.steamids.steam2.replace(":", "%3A"))); - $("#Modal_SelectPayMethod_QIWI_Value").html(`${price_array[select][1]} Рублей`); + $("#Modal_SelectPayMethod_QIWI_Button").attr("href", QIWI_TRADE.replace("(AMOUNT)", price.money_price).replace("(COMMENT)", data.steamids.steam2.replace(":", "%3A"))); + $("#Modal_SelectPayMethod_QIWI_Value").html(`${price.money_price} Рублей`); $("#Modal_SelectPayMethod_STEAM_Button").attr("href", STEAM_TRADE); - $("#Modal_SelectPayMethod_STEAM_Value").html(price_array[select][2]); + $("#Modal_SelectPayMethod_STEAM_Value").html(price.item_price); + try { + let value_qiwi = price.period in api_response.donate.month.statistic.qiwi? api_response.donate.month.statistic.qiwi[price.period] : 0; + let value_name_1 = human_name_impl_2(value_qiwi, ["раз", "раза", "раз"]) + $("#Modal_SelectPayMethod_DonateStatsValue_qiwi").html(`${value_qiwi} ${value_name_1}`); + let value_steam = price.period in api_response.donate.month.statistic.steam? api_response.donate.month.statistic.steam[price.period] : 0; + let value_name_2 = human_name_impl_2(value_steam, ["раз", "раза", "раз"]) + $("#Modal_SelectPayMethod_DonateStatsValue_steam").html(`${value_steam} ${value_name_2}`); + $("#Modal_SelectPayMethod_DonateStatsText_FREE").hide(0); + $("#Modal_SelectPayMethod_DonateStatsValue").show(0); + $("#Modal_SelectPayMethod_DonateStatsText").show(0); + } catch { + $("#Modal_SelectPayMethod_DonateStatsValue").hide(0); + $("#Modal_SelectPayMethod_DonateStatsText").hide(0); + } } else { + $("#Modal_SelectPayMethod_DonateStatsValue").hide(0); + $("#Modal_SelectPayMethod_DonateStatsText").hide(0); + $("#Modal_SelectPayMethod_PayButtons").hide(0); $("#Modal_SelectPayMethod_GetFreeButtons").show(0); + + let value_free = "day" in api_response.donate.month.statistic.free? api_response.donate.month.statistic.free.day : 0; + let value_free_naming = human_name_impl_2(value_free, ["раз", "раза", "раз"]) + $("#Modal_SelectPayMethod_DonateStatsValue_free").html(`${value_free} ${value_free_naming}`); + $("#Modal_SelectPayMethod_DonateStatsText_FREE").show(0); } $('#Modal_SelectPayMethod').modal('show'); return false; @@ -353,7 +371,22 @@ function ReconstructVipSection(data) { $("#Modal_SelectPayMethod_GetFreeButton_Check").click(async function (ev) { ev.preventDefault(); - alert("пошел нахуй"); + await fetch("https://tf2.pblr-nyk.pro/api/profile/current/freevip", { credentials: "same-origin", headers: { 'Cache-Control': 'no-cache' }, method:"POST"}) + .then(response => response.json()) + .then(response => { + if (response == 0) $("#Modal_SelectPayMethod_GetFreeButton_Text").html("У тебя уже есть права!"); + else if (response == 1) $("#Modal_SelectPayMethod_GetFreeButton_Text").html("Права выданы! Балдей!"); + else if (response > 1) $("#Modal_SelectPayMethod_GetFreeButton_Text").html(`Ты не можешь получить вип бесплатно, вернись через ${UNIX2FACTI_TIME(response)}`); + else if (response < 0) $("#Modal_SelectPayMethod_GetFreeButton_Text").html(`Наиграй на сервере еще ${UNIX2FACTI_TIME(response * -1)}`); + else $("#Modal_SelectPayMethod_GetFreeButton_Text").html("Сегодня не твой день"); + }) + .catch(err => { + if (err.code == 429) { + $("#Modal_SelectPayMethod_GetFreeButton_Text").html("Помедленее друг, не так сильно"); + } else { + $("#Modal_SelectPayMethod_GetFreeButton_Text").html("Сегодня не твой день, друг..."); + } + }); }); //secret egg