From 21e24ebe4ee183b940cca821924998c8829d1b72 Mon Sep 17 00:00:00 2001 From: gsd Date: Thu, 27 Oct 2022 18:23:18 +0000 Subject: [PATCH] init --- API.js | 166 +++++++++++++++++++++++++++++++- Player_API.js | 61 +++++++++++- SlideShow.js | 30 +++++- SteamAuth.js | 41 +++++++- VIP_API.js | 99 ++++++++++++++++++- index.html | 256 ++++++++++++++++++++++++++++++++++++++++++++++++- shit_style.css | 40 +++++++- tf2build.ttf | Bin 48 -> 57168 bytes 8 files changed, 686 insertions(+), 7 deletions(-) mode change 120000 => 100644 API.js mode change 120000 => 100644 Player_API.js mode change 120000 => 100644 SlideShow.js mode change 120000 => 100644 SteamAuth.js mode change 120000 => 100644 VIP_API.js mode change 120000 => 100644 index.html mode change 120000 => 100644 shit_style.css mode change 120000 => 100644 tf2build.ttf diff --git a/API.js b/API.js deleted file mode 120000 index 277130b..0000000 --- a/API.js +++ /dev/null @@ -1 +0,0 @@ -/media/ssddrive0/fastdl/www-content/API.js \ No newline at end of file diff --git a/API.js b/API.js new file mode 100644 index 0000000..b5d5de0 --- /dev/null +++ b/API.js @@ -0,0 +1,165 @@ +$(async function() { + RequestAPI(); + CheckProfile(); +}); + +let servers_active = ` +
+

Где сейчас играют карлики

+
+` + +let servers_inactive = ` +
+

Пустуют без дела

+
+` + +let servers_dead = ` +
+

Временно выключены

+
+` + +let invalid_captcha = ` +
+
+

ДЯДЯ ТЫ ДУРАЧЕК, КАПЧА НЕПРАВИЛЬНАЯ, ЖМИ СНОВА НА КНОПКУ

+
+` + +function generate_working_server_div(data) { + let workshop = `` + let direct_url = `` + let connect_url = `` + ///////////////////// + let w_disabled = `` + let d_disabled = `` + let c_disabled = `` + + if (data.status == true) { + if ("workshop" in data && data.workshop != "") { + workshop = data.workshop + } else { + w_disabled = `disabled` + } + ///////////////////////////// + if ("direct_url" in data && data.direct_url != "") { + direct_url = data.direct_url + } else { + d_disabled = `disabled` + } + ///////////////////////////// + if ("address" in data && data.address != "") { + connect_url = data.address + } else { + c_disabled = `disabled` + } + } else { + w_disabled = `disabled` + d_disabled = `disabled` + c_disabled = `disabled` + } + + workshop = ` +
+ Workshop +
+` + direct_url = ` +
+ Скачать карту +
+` + connect_url = ` +
+ Подключиться +
+` + + return ` +
+
+
+
+
+

${data.name}

+

${data.player_count}/${data.max_players} ${data.human_name}

+
+
+
+
+ ${connect_url} + ${workshop} + ${direct_url} +
+
+
+`; +} + +async function RequestAPI() { + //, {headers: {'Cache-Control':'no-cache'}} + await fetch("https://tf2.pblr-nyk.pro/api/stats", {headers: {'Cache-Control':'no-cache'}}) + .then(res => res.json()) + .then(res => { + console.log(res.servers.statistic); + document.getElementById("current_players").innerHTML = res.servers.statistic.player_now; + document.getElementById("max_per_day").innerHTML = res.servers.statistic.player_max; + document.getElementById("servers_works").innerHTML = res.servers.statistic.working_servers + '/' + res.servers.statistic.total_servers; + document.getElementById("uniq_day_players").innerHTML = res.uniq.day; + document.getElementById("uniq_month_players").innerHTML = res.uniq.month; + document.getElementById("uniq_year_players").innerHTML = res.uniq.year; + + let active = false; + let inactive = false; + let dead = false; + + let insert_type = "beforeend"; + //active servers + let sorted_servers = Object.keys(res.servers).sort((a, b) => { + return res.servers[b].player_count - res.servers[a].player_count; + }); + console.log(sorted_servers); + + for (let sort_id in sorted_servers) { + let server = sorted_servers[sort_id]; + if (server == `statistic`) {continue;} + if(res.servers[server].status == true && res.servers[server].player_count > 0) { + if(!active) { + document.getElementById("servers_list").insertAdjacentHTML(insert_type,servers_active) + active = true; + } + document.getElementById("servers_list").insertAdjacentHTML(insert_type,generate_working_server_div(res.servers[server])); + } + } + + //inactive server + for (const server in res.servers) { + if (server == `statistic`) {continue;} + if(res.servers[server].status == true && res.servers[server].player_count == 0) { + if(!inactive) { + document.getElementById("servers_list").insertAdjacentHTML(insert_type,servers_inactive) + inactive = true; + } + document.getElementById("servers_list").insertAdjacentHTML(insert_type,generate_working_server_div(res.servers[server])); + } + } + + //dead server + for (const server in res.servers) { + if (server == `statistic`) {continue;} + if(res.servers[server].status == false) { + if(!dead) { + document.getElementById("servers_list").insertAdjacentHTML(insert_type,servers_dead) + dead = true; + } + document.getElementById("servers_list").insertAdjacentHTML(insert_type,generate_working_server_div(res.servers[server])); + } + } + }); +} + +function UNIX2TIMESTAMP(unix) { + return new Date(unix * 1000); +} \ No newline at end of file diff --git a/Player_API.js b/Player_API.js deleted file mode 120000 index de8453d..0000000 --- a/Player_API.js +++ /dev/null @@ -1 +0,0 @@ -/media/ssddrive0/fastdl/www-content/Player_API.js \ No newline at end of file diff --git a/Player_API.js b/Player_API.js new file mode 100644 index 0000000..ff77df0 --- /dev/null +++ b/Player_API.js @@ -0,0 +1,60 @@ +$(document).on("show.bs.modal", '#CheckProfileCaptcha', async function () { + console.log("setup captcha"); + if(document.getElementById("InvalidCaptcha")) {document.getElementById("InvalidCaptcha").remove()} + let form = document.forms["formProfileChecker"]; + let captcha_id; + + await fetch("https://tf2.pblr-nyk.pro/player_api/v1/captcha", {method:'POST'}) + .then(response => response.json()) + .then(response => { + console.log(response.id) + captcha_id = response.id; + form.captcha_img.src = "https://tf2.pblr-nyk.pro/player_api/v1/captcha?id=" + response.id; + }) + + form.addEventListener("submit", async function (ev) { + ev.preventDefault(); + $("#check_profile_submit_button").prop("disabled", true); + $("#check_profile_close_button").prop("disabled", true); + + console.log("pukkkk") + await fetch("https://tf2.pblr-nyk.pro/player_api/v1/player?steam_url=" + form.steamurl.value + "&captcha_id=" + captcha_id + "&captcha_code=" + form.captcha.value) + .then(response => response.json()) + .then(response => { + $("#check_profile_submit_button").removeAttr("disabled"); + $("#check_profile_close_button").removeAttr("disabled"); + + if ("error" in response) { + if (response.error == "incorrect captcha") { + $('#check_profile_close_button').click(); + document.getElementById("profile_list").insertAdjacentHTML("beforeend",invalid_captcha); + //await new Promise(r => setTimeout(r, 2000)); + //document.getElementById('CheckProfileCaptchaLabel').innerHTML = "НЕВЕРНАЯ КАПЧА, ПОВТОРИ ПОПЫТКУ" + //document.getElementById('CheckProfileCaptchaLabel').style.color = 'red'; + //$('#buttonCheck').click(); + return; + } else { + alert("Сервер сказал хуй: " + response.error); + $('#check_profile_close_button').click(); + return; + } + } else if ("detail" in response) { + alert("Сервер сказал хуй: " + response.detail[0].msg); + $('#check_profile_close_button').click(); + return; + } else { + console.log(response); + document.getElementById("profile_check").remove(); + document.getElementById("buy_vip").remove(); + document.getElementById("profile_list").insertAdjacentHTML("beforeend",current_vip(response.permition)); + document.getElementById("vip_prices").insertAdjacentHTML("beforeend",generate_vip_table()); + $('#check_profile_close_button').click(); + return; + } + }) + }); +}); + +async function CheckProfile() { + +} \ No newline at end of file diff --git a/SlideShow.js b/SlideShow.js deleted file mode 120000 index 2d08e3f..0000000 --- a/SlideShow.js +++ /dev/null @@ -1 +0,0 @@ -/media/ssddrive0/fastdl/www-content/SlideShow.js \ No newline at end of file diff --git a/SlideShow.js b/SlideShow.js new file mode 100644 index 0000000..419222a --- /dev/null +++ b/SlideShow.js @@ -0,0 +1,29 @@ +$(async function() { + //вам смешно,а мне нет + var images=new Array( + 'https://sun9-54.userapi.com/impf/L4gabJSytEz1NpTNLMMY4H2I0Ii2G8BZWLF43w/qYSHLfNsb7s.jpg?size=1920x1080&quality=96&proxy=1&sign=dd5b204676b475018a320a3ea4da605d&type=album', + 'https://sun9-47.userapi.com/impf/W24ZlAJv_hRsfSWo52xJuQxiYsLIBACpZrZLZQ/PloSNn9b2mQ.jpg?size=1920x1080&quality=96&proxy=1&sign=1fd9c7ede5a4824442b79bff28bcc928&type=album', + 'https://sun9-56.userapi.com/impf/gumag_-zFNTd9kxmAlDnX12T1kOzx10Nel8NBg/cQlqHiyWdxQ.jpg?size=1920x1080&quality=96&proxy=1&sign=1c348f58c41e5ebc19e49e6bd9535998&type=album'); + var nextimage=0; + return; + + doSlideshow(); + + function doSlideshow() + { + if($('.slideshowimage').length!=0) + { + $('.slideshowimage').fadeOut(500,function(){slideshowFadeIn();$(this).remove()}); + } + else + { + slideshowFadeIn(); + } + } + function slideshowFadeIn() + { + $('.slideshow').prepend($('').fadeIn(500,function(){setTimeout(doSlideshow,1000);})); + if(nextimage>=images.length) + nextimage=0; + } +}); \ No newline at end of file diff --git a/SteamAuth.js b/SteamAuth.js deleted file mode 120000 index 81c0911..0000000 --- a/SteamAuth.js +++ /dev/null @@ -1 +0,0 @@ -/media/ssddrive0/fastdl/www-content/SteamAuth.js \ No newline at end of file diff --git a/SteamAuth.js b/SteamAuth.js new file mode 100644 index 0000000..4abd61a --- /dev/null +++ b/SteamAuth.js @@ -0,0 +1,40 @@ +const http_build_query = (obj) => { + let str = "" + + for (const key in obj) { + const value = obj[key]; + str += `${key}=${value}&`; + } + + return str; +} + +const genUrl = (urlToReturnTo) => { + const params = { + 'openid.ns' : 'http://specs.openid.net/auth/2.0', + 'openid.mode' : 'checkid_setup', + 'openid.return_to' : urlToReturnTo, + 'openid.realm' : 'http://localhost:8080', + 'openid.identity' : 'http://specs.openid.net/auth/2.0/identifier_select', + 'openid.claimed_id' : 'http://specs.openid.net/auth/2.0/identifier_select', + }; + + const url = `${STEAM_LOGIN}?${http_build_query(params)}` + return url; +}; + +const search = location.search.substring(1); +const urlObj = JSON.parse('{"' + decodeURI(search).replace(/"/g, '\\"').replace(/&/g, '","').replace(/=/g,'":"') + '"}') + +const getUserId = (response) => +{ + const str = response["openid.claimed_id"]; + const res = decodeURIComponent(str) + const propsArr = res.split("\/"); + console.log(propsArr); + + return propsArr[propsArr.length-1]; +} + + +const userId = getUserId(urlObj) \ No newline at end of file diff --git a/VIP_API.js b/VIP_API.js deleted file mode 120000 index 9553b97..0000000 --- a/VIP_API.js +++ /dev/null @@ -1 +0,0 @@ -/media/ssddrive0/fastdl/www-content/VIP_API.js \ No newline at end of file diff --git a/VIP_API.js b/VIP_API.js new file mode 100644 index 0000000..8151f65 --- /dev/null +++ b/VIP_API.js @@ -0,0 +1,98 @@ +$(async function() { + await VIP_API(); +}); + +function generate_vip_table(steamid3) { + let h_size = "h4" + let table = ` +
+ <${h_size}>Если ты выбираешь оплату киви, тебе переадресует на страницу оплаты. + <${h_size}>Если оплатить через трейд бота в стиме, тебе перекинет в стим, где ты должен скинуть нужные вещички. SteamGuard с твоей стороны должен быть включен. + + + + + + + + + + + + + + + + + + + + + + + + + +
Количество днейРублями через QIWIОбмен Steam
Сутки20 Рублей5 Рефов
Неделя75 Рублей20 Рефов
Месяц150 Рублей1 Ключ
+
+` + return table; +} + +function current_vip(permition) { + + let check_vip; + if(permition == null) { + check_vip = ` +

У тебя нет випки, может стоит ее прикупить??

+
> КУПИТЬ <
+ ` + } else { + let start_vip; + if (permition["UNIX_TIMESTAMP(`reg_date`)"] == 0){ + start_vip = "с момента создания"; + } else { + start_vip = UNIX2TIMESTAMP(permition["UNIX_TIMESTAMP(`reg_date`)"]); + } + + let end_vip; + if(permition.amount == 0){ + end_vip = "бесконечны"; + } else { + end_vip = UNIX2TIMESTAMP(permition["UNIX_TIMESTAMP(`reg_date`)"] + permition.amount); + } + + check_vip = ` +

VIP права на текущий момент

+ + + + + + + + + + + + + + + + + +
Steam ID 3ДоступДата полученияДата окончания
${permition.identity}${permition.status}${start_vip}${end_vip}
+
Продлить права...
+ ` + } + + return ` +
+ ${check_vip} +
+`; +} + +async function VIP_API() { + +} \ No newline at end of file diff --git a/index.html b/index.html deleted file mode 120000 index c4df64a..0000000 --- a/index.html +++ /dev/null @@ -1 +0,0 @@ -/media/ssddrive0/fastdl/www-content/index.html \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 0000000..3830e1b --- /dev/null +++ b/index.html @@ -0,0 +1,255 @@ + + + + Факты 13 + + + + + +
+ +
+ +
+
+
+
+
+
+
+
+

Факты 13

+
+
+
+
+
+
+

Добро пожаловать на "лучший" ру-сервер ТФ2

+
+
+
+
+
+
+
+ +
+

Давно искал место где можно почилить в данной мертвой игре??? Поздравляю ты его нашел!!!

+
+
+
+

Сейчас играют

+

Пик игроков за день

+

Серверов работает

+

~

+

~

+

~

+
+
+ +
+
+
+
+
+
+
+
+
+ +
+

Все еще сомневаешься??? Посмотри как много карликов у нас бывают!

+
p.s (статистика предоставлена при условии что игрок сыграл больше 5 минут)
+
p.s.s (уникальный = игрок зашел за данный период впервый раз)
+
+
+
+

За день

+

За месяц

+

За год

+

~

+

~

+

~

+
+
+
+
+
+
+
+ +
+
+
+
+
+
+

Почему стоит начать играть?

+
+
+
+

> Все карты на сервере уникальны и сделаны нами, ты всегда можншь найти место по вкусу!

+
+
+

> Большенство плагинов на сервере сделаны нами и добавляют некий шарм в геймплей.

+
+
+

> Правила для вас не писаны(каканы), можете делать всё что душе угодно, но ожидайте что вам дадут пиздюлей наши модераторы.

+
+
+

> Сервера работают на божем слове, так что шанс что проект закроется стремится к нулю. Конечно пока нам не надоест.

+
+
+
+
+
+
+
+
+
+ +
+
+
+

Выбери сервер на свой "ОТЛИЧНЫЙ" вкус!

+
+
+
+ +
+
+
+

Заинтересовался покупкой? Cкорее выбирай!

+
Цены появятся только после проверки профиля!
+
> Проверить <
+
+
+
+ +
+
+
+

Проверь свой профиль на фактах!

+
На этой странице после ввода твоего профиля, появится вся твоя статистика на фактах, наличие банов и их история, а так-же возможность купить випку!
+ > + + < +
+
+
+ +
+
+
+

Здраствуйте, спасибо что выбрали факты 13 в качестве сервера, где можно весело проводить время!

+
+
+

Наши "отличные" сервера выбирают, не только русские игроки, но и другие, из разных стран, например: украина

+
+

~

+

~

+

~

+

~

+

~

+
+
+
+
+
+
+
+ + + + + + + + + + + + + + \ No newline at end of file diff --git a/shit_style.css b/shit_style.css deleted file mode 120000 index 3d1d622..0000000 --- a/shit_style.css +++ /dev/null @@ -1 +0,0 @@ -/media/ssddrive0/fastdl/www-content/shit_style.css \ No newline at end of file diff --git a/shit_style.css b/shit_style.css new file mode 100644 index 0000000..ed51bf3 --- /dev/null +++ b/shit_style.css @@ -0,0 +1,39 @@ +@font-face { + font-family: tf2build; + src: url('tf2build.ttf'); +} + +h1,h2,h3,h4,h5,h6 { + font-family: tf2build; + color: #333333; +} + +a { + font-family: tf2build; +} + +.nav-pills { + background-color: #d86800; +} + +.nav-link { + color: #000000; +} + +.nav-pills > li > a:hover { + color: #5a5a5a; +} + +.slideshow +{ + position: relative; + width: 350px; + height: 150px; +} +.slideshow img +{ + position: absolute; + width: 350px; + height: 150px; + z-index:-1; +} \ No newline at end of file diff --git a/tf2build.ttf b/tf2build.ttf deleted file mode 120000 index fe57436..0000000 --- a/tf2build.ttf +++ /dev/null @@ -1 +0,0 @@ -/media/ssddrive0/fastdl/www-content/tf2build.ttf \ No newline at end of file diff --git a/tf2build.ttf b/tf2build.ttf new file mode 100644 index 0000000000000000000000000000000000000000..d59eec96eaff572331da6db763b9ad4d2070be74 GIT binary patch literal 57168 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

_3!W7Hp5lf=WX+L%{g^~#;tL<`Y$|b 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

^&I(<(|UU;nfQjvIPKzf?le zE=5}zb(in%Cms;H@Ariz#*iT2_%Q#V{4YbdxetXnCK2 zeDyLRRowDjUTRP3Vbi?S!?cQ3YupFIL7TCvO{kYuoBb5kQd}~r1NF436w0TphbR)J zIHaPGia}Zg5^l-%H*H&Kb}w~5Y@8KuRJ1YKf{$AZxz8{w%BUD)vb_rzQ8<2T!HO#? zs;HQvPP92^_EtPm(L}`()t)3bS&BFvB~=sYIXk77QcZ^?HpJ4k-7+=?I)2$Ig$#Weue} zQaGe>`Rw;GHc>Z8r4;Y1P$GaF#qbotOKMxaXiy^oqoe%i8YvaElLuJdC3#!rg;uOi zkve(56{S;*PEjYt=j7j&H&y63H;1e8bSf&Rn4El^@^H#yC{JXvx1FH0#^eF(o6l3~ zFr^Mr>L8`$abZ=3he}a5c`g-kQ{Oy+j5g{riWWxE>nJ7L(8dKykD=EwG%|*6$FR&K z+%~0Z(T0x4;EFBrt0}UeSehbfioYm|rrPKkAt~(2KuJZ<a!n7lQSd@q_lQ&hSsL*v;TeSBPoMOd3A=A z^C_(*rKmmw7fG3E8`VYY_-QEvDJci2i`MS4jijgr%&d!i3#tpF7Im3K%GgCx#?aP) zwXt{G*BIQ@OUB@?_B9Ik0l2HZuci*_Ed#XPO>k!u5Nl)GY<46GGc_fvZ%egcSzG;2 zZE7-Q1NFf{I8Va)COB_PalXm4qsULPA8s=I($ZuK|AkZwo|d52d*Rne5cX*a@)rxc zB(QG@>GzXxA!Y3g^btvDyQmHqX4FC2IWR+lv?G6XQag&yC^n<9MDr5$I&nM<-m`{R z@tEXzLeHXgDh?yxyJ9d&jECT`9}WY|S(4+KtftXOx|D^cMJQt<=4|vvmr$wJLwv;s$zm>4RB2DHia-ahHGp!_(BrhiVu3-9I?Z z$(R1YahHGm!?Q~qP5BthTxK8+{?TgwUB}-`@UY&(m~jVxEAXtg