@ -1,165 +0,0 @@ |
|||
$(async function() { |
|||
RequestAPI(); |
|||
CheckProfile(); |
|||
}); |
|||
|
|||
let servers_active = ` |
|||
<div class="col text-center rounded border border-dark gy-3" style="background-color: #E2EFDE;"> |
|||
<h2>Где сейчас играют карлики</h2> |
|||
</div> |
|||
` |
|||
|
|||
let servers_inactive = ` |
|||
<div class="col text-center rounded border border-dark gy-3" style="background-color: #E2EFDE;"> |
|||
<h2>Пустуют без дела</h2> |
|||
</div> |
|||
` |
|||
|
|||
let servers_dead = ` |
|||
<div class="col text-center rounded border border-dark gy-3" style="background-color: #E2EFDE;"> |
|||
<h2>Временно выключены</h2> |
|||
</div> |
|||
` |
|||
|
|||
let invalid_captcha = ` |
|||
<div class="col" id="InvalidCaptcha"> |
|||
<br> |
|||
<h1 style="color: red">ДЯДЯ ТЫ ДУРАЧЕК, КАПЧА НЕПРАВИЛЬНАЯ, ЖМИ СНОВА НА КНОПКУ</h1> |
|||
</div> |
|||
` |
|||
|
|||
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 = ` |
|||
<div class="col border" style="background-color: #d86800"> |
|||
<a class="btn btn-link btn-lg ${w_disabled}" target="_blank" role="button" href="${data.workshop}" style="font-family: tf2build;">Workshop</a> |
|||
</div> |
|||
` |
|||
direct_url = ` |
|||
<div class="col border" style="background-color: #d86800"> |
|||
<a class="btn btn-link btn-lg ${d_disabled}" target="_blank" role="button" href="${data.direct_url}" style="font-family: tf2build;">Скачать карту</a> |
|||
</div> |
|||
` |
|||
connect_url = ` |
|||
<div class="col border" style="background-color: #d86800"> |
|||
<a class="btn btn-link btn-lg ${c_disabled}" role="button" href="steam://${data.address}" style="font-family: tf2build;">Подключиться</a> |
|||
</div> |
|||
` |
|||
|
|||
return ` |
|||
<div class="col text-center border gy-3 rounded"> |
|||
<div class="row align-items-center" style="background-color: ${data.color};"> |
|||
<div class="col align-self-center p-4" style="background-size: cover; background-image: url('${data.preview}');"> |
|||
<div class="row justify-content-md-center"> |
|||
<div class="col" style="background-color:rgba(255, 255, 255, 0.5); background-size: 100%;"> |
|||
<h1>${data.name}</h1> |
|||
<h4>${data.player_count}/${data.max_players} ${data.human_name}</h4> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div class="col row-cols-1 p-2" style="background-color: ${data.color};"> |
|||
${connect_url} |
|||
${workshop} |
|||
${direct_url} |
|||
</div> |
|||
</div> |
|||
</div> |
|||
`;
|
|||
} |
|||
|
|||
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); |
|||
} |
@ -1,60 +0,0 @@ |
|||
$(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() { |
|||
|
|||
} |
@ -3,189 +3,367 @@ |
|||
<meta charset="UTF-8"> |
|||
<title>Факты 13</title> |
|||
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-iYQeCzEYFbKjA/T2uDLTpkwGzCiq6soy8tYaI1GyVh/UjpbCx/TYkiZhlZB6+fzT" crossorigin="anonymous"> |
|||
<link href="site_content/css/shit_style.css?version=9" rel="stylesheet"> |
|||
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" integrity="sha384-u1OknCvxWvY5kfmNBILK2hRnQC3Pr17a+RTT6rIHI7NnikvbZlHgTPOOmMi466C8" crossorigin="anonymous"></script> |
|||
<link rel="stylesheet" href="shit_style.css?version=1"> |
|||
<meta http-equiv="cache-control" content="no-cache, must-revalidate, post-check=0, pre-check=0" /> |
|||
<meta http-equiv="cache-control" content="max-age=0" /> |
|||
<meta http-equiv="expires" content="0" /> |
|||
<meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT" /> |
|||
<meta http-equiv="pragma" content="no-cache" /> |
|||
<link href="site_content/favicon.ico" rel="icon" type="image/x-icon" /> |
|||
</head> |
|||
<body> |
|||
<div class="container-fluid"> |
|||
<div class="container-fluid" id="Nav_MenuButtons"> |
|||
<div class="row"> |
|||
<ul class="nav nav-pills nav-fill" style="font-family: tf2build"> |
|||
<li class="nav-item"> |
|||
<a class="nav-link active" data-toggle="tab" href="#MainSection">Факты 13</a> |
|||
</li> |
|||
<li class="nav-item"> |
|||
<a class="nav-link" data-toggle="tab" href="#RulesSection">Правила</a> |
|||
<a class="nav-link" data-toggle="tab" href="#RulesSection" id="Rules_Button">Правила</a> |
|||
</li> |
|||
<li class="nav-item"> |
|||
<a class="nav-link" data-toggle="tab" href="#ServersSection" id="MenuServersSection">Серверы</a> |
|||
</li> |
|||
<li class="nav-item"> |
|||
<a class="nav-link" data-toggle="tab" href="#ProfileSection">Профиль/Баны</a> |
|||
<a class="nav-link" data-toggle="tab" href="#ProfileSection" id="Tab_Profile_Button">Профиль/Баны</a> |
|||
</li> |
|||
<li class="nav-item"> |
|||
<a class="nav-link" data-toggle="tab" href="#VIPSection">Купить VIP</a> |
|||
<a class="nav-link" data-toggle="tab" href="#VIPSection" id="Tab_VIP_Button">Купить VIP</a> |
|||
</li> |
|||
<li class="nav-item"> |
|||
<a class="nav-link" data-toggle="tab" href="#AboutSection">О нас</a> |
|||
</li> |
|||
<a class="nav-link" data-toggle="tab" href="#AboutSection" id="Tab_About">О нас</a> |
|||
</li> |
|||
</ul> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div class="slideshow" style="background-color: darkgray;"> |
|||
<div class="container col-8"> |
|||
<div class="container-fluid" style="background-color: #ff8946; text-align: center;"> |
|||
<a href="player_api/v1/auth" style="text-decoration: none; color: black; display: inline;" id="Header_CurrentUser">Авторизируйся через стим чтоб получить больше возможностей! (тык)</a> |
|||
<a href="#" style="text-decoration: none; color: red; display: inline;" id="Header_CurrentBan" onclick="document.getElementById('Tab_Profile_Button').click();"></a> |
|||
<a href="player_api/v1/deauth" style="text-decoration: none; color: black; display: inline;" id="Header_Logout"></a> |
|||
</div> |
|||
<div class="container-fluid" style=" |
|||
background-color: #E2EFDE; |
|||
min-height: 100vh; |
|||
background-position: center center; |
|||
background-repeat: no-repeat; |
|||
background-size: cover; |
|||
transition: background-image 1s;" id="main_container"> |
|||
<div class="tab-content"> |
|||
<div class="tab-pane fade show active" id="MainSection"> |
|||
<div class="row row-cols-1"> |
|||
<div class="col gy-3"> |
|||
<div class="row justify-content-md-center"> |
|||
<div class="col-3 text-center rounded border border-dark p-3" style="background-color: #ff8946; "> |
|||
<h1>Факты 13</h1> |
|||
<div class="row justify-content-center pt-3"> |
|||
<div class="col-auto text-center rounded border border-dark" style="background-color: #ff8946; "> |
|||
<h2>Факты 13</h2> |
|||
</div> |
|||
</div> |
|||
<div class="row justify-content-center" id="Main_FunnyСharacters"> |
|||
<!--<div class="col-3"></div> |
|||
<div class="col"><img class="img-fluid" src="site_content/images/characters/pootisd.png"></div> |
|||
<div class="col"><img class="img-fluid" src="site_content/images/characters/pyro.png"></div> |
|||
<div class="col"><img class="img-fluid" src="site_content/images/characters/toilet.png"></div> |
|||
<div class="col"><img class="img-fluid" src="site_content/images/characters/engi_n.png"></div> |
|||
<div class="col"><img class="img-fluid" src="site_content/images/characters/mgesold.png"></div> |
|||
<div class="col-3"></div>--> |
|||
</div> |
|||
<div class="row justify-content-center"> |
|||
<div class="col-6 text-center rounded border border-dark" style="background-color: #ff8946; "> |
|||
<h2>Добро пожаловать на "лучший" ру-сервер ТФ2</h2> |
|||
</div> |
|||
</div> |
|||
<div class="row justify-content-center pt-3"> |
|||
<div class="col-sm-8 text-center pt-3 rounded border border-dark" style="background-color: #E2EFDE;"> |
|||
<h3>Давно искал место где можно почилить в данной мертвой игре??? Поздравляю ты его нашел!!!</h3> |
|||
<hr> |
|||
<div class="col-6 offset-3"> |
|||
<div class="row row-cols-3 align-self-center"> |
|||
<div class="col align-self-center"><h4>Сейчас играют</h4></div> |
|||
<div class="col align-self-center"><h4>Пик игроков за день</h4></div> |
|||
<div class="col align-self-center"><h4>Серверов работает</h4></div> |
|||
<div class="col align-self-center"><h2 class="rounded border border-dark" style="background-color: #ff8946;" id="current_players">~</h2></div> |
|||
<div class="col align-self-center"><h2 class="rounded border border-dark" style="background-color: #ff8946;" id="max_per_day">~</h2></div> |
|||
<div class="col align-self-center"><h2 class="rounded border border-dark" style="background-color: #ff8946;" id="servers_works">~</h2></div> |
|||
</div> |
|||
</div> |
|||
<div class="col-6 offset-3"> |
|||
<hr> |
|||
<h1 class="rounded border border-dark text-center" style="background-color: #ff8946;"> |
|||
<a class="nav-link" href="#" style="color: black" onclick="document.getElementById('MenuServersSection').click();">Подключиться к серверам</a> |
|||
</h1> |
|||
</div> |
|||
</div> |
|||
<div class="col" style="margin-top: -1%;"> |
|||
<div class="row justify-content-md-center"> |
|||
<div class="col-9 text-center rounded border border-dark p-2" style="background-color: #ff8946; "> |
|||
<h2>Добро пожаловать на "лучший" ру-сервер ТФ2</h2> |
|||
</div> |
|||
<div class="row justify-content-center pt-3"> |
|||
<div class="col-sm-8 text-center pt-3 rounded border border-dark" style="background-color: #E2EFDE;"> |
|||
<h3>Все еще сомневаешься??? Посмотри как много карликов у нас бывают!</h3> |
|||
<h6>p.s (статистика предоставлена при условии что игрок сыграл больше 5 минут)</h6> |
|||
<h6>p.s.s (уникальный = игрок зашел за данный период впервый раз)</h6> |
|||
<div class="col-6 offset-3"> |
|||
<hr> |
|||
<div class="row row-cols-3 align-self-center"> |
|||
<div class="col align-self-center"><h4>За день</h4></div> |
|||
<div class="col align-self-center"><h4>За месяц</h4></div> |
|||
<div class="col align-self-center"><h4>За год</h4></div> |
|||
<div class="col align-self-center"><h2 class="rounded border border-dark" style="background-color: #ff8946;" id="uniq_day_players">~</h2></div> |
|||
<div class="col align-self-center"><h2 class="rounded border border-dark" style="background-color: #ff8946;" id="uniq_month_players">~</h2></div> |
|||
<div class="col align-self-center"><h2 class="rounded border border-dark" style="background-color: #ff8946;" id="uniq_year_players">~</h2></div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div class="col" style="margin-top: -1%;"> |
|||
<div class="row justify-content-md-center"> |
|||
<div class="col-10 text-center rounded border border-dark" style="background-color: #fffefc; "> |
|||
<div class="row"> |
|||
<!----> |
|||
<div class="col text-center pt-3 rounded border border-dark" style="background-color: #E2EFDE;"> |
|||
<h3>Давно искал место где можно почилить в данной мертвой игре??? Поздравляю ты его нашел!!!</h3> |
|||
<hr> |
|||
<div class="col-6 offset-3"> |
|||
<div class="row row-cols-3 align-self-center"> |
|||
<div class="col align-self-center"><h4>Сейчас играют</h4></div> |
|||
<div class="col align-self-center"><h4>Пик игроков за день</h4></div> |
|||
<div class="col align-self-center"><h4>Серверов работает</h4></div> |
|||
<div class="col align-self-center"><h2 class="rounded border border-dark" style="background-color: #ff8946;" id="current_players">~</h2></div> |
|||
<div class="col align-self-center"><h2 class="rounded border border-dark" style="background-color: #ff8946;" id="max_per_day">~</h2></div> |
|||
<div class="col align-self-center"><h2 class="rounded border border-dark" style="background-color: #ff8946;" id="servers_works">~</h2></div> |
|||
</div> |
|||
</div> |
|||
<div class="col-6 offset-3"> |
|||
<hr> |
|||
<h1 class="rounded border border-dark text-center" style="background-color: #ff8946;"> |
|||
<a class="nav-link" data-toggle="tab" href="#ServersSection" style="color: black">Подключиться к серверам</a> |
|||
</h1> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div class="row justify-content-center pt-3 pb-3"> |
|||
<div class="col-sm-8 text-center rounded border border-dark" style="background-color: #E2EFDE; "> |
|||
<div class="col text-center"> |
|||
<h1>Почему стоит начать играть?</h1> |
|||
</div> |
|||
<div class="row row-cols-1"> |
|||
<div class="col text-left"> |
|||
<h4>> Все карты на сервере уникальны и сделаны нами, ты всегда можншь найти место по вкусу!</h4> |
|||
</div> |
|||
<div class="col text-left"> |
|||
<h4>> Большенство плагинов на сервере сделаны нами и добавляют некий шарм в геймплей.</h4> |
|||
</div> |
|||
<div class="col text-left"> |
|||
<h4>> Правила для вас не писаны(каканы), можете делать всё что душе угодно, но ожидайте что вам дадут пиздюлей наши модераторы.</h4> |
|||
</div> |
|||
<div class="col text-left"> |
|||
<h4>> Сервера работают на божем слове, так что шанс что проект закроется стремится к нулю. Конечно пока нам не надоест.</h4> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div class="col pt-2" style="margin-top: -0%;"> |
|||
<div class="row justify-content-md-center"> |
|||
<div class="col-10 text-center rounded border border-dark" style="background-color: #fffefc; "> |
|||
<div class="row"> |
|||
<!----> |
|||
<div class="col text-center pt-3 rounded border border-dark" style="background-color: #E2EFDE;"> |
|||
<h3>Все еще сомневаешься??? Посмотри как много карликов у нас бывают!</h3> |
|||
<h6>p.s (статистика предоставлена при условии что игрок сыграл больше 5 минут)</h6> |
|||
<h6>p.s.s (уникальный = игрок зашел за данный период впервый раз)</h6> |
|||
<br> |
|||
<div class="col-6 offset-3"> |
|||
<div class="row row-cols-3 align-self-center"> |
|||
<div class="col align-self-center"><h4>За день</h4></div> |
|||
<div class="col align-self-center"><h4>За месяц</h4></div> |
|||
<div class="col align-self-center"><h4>За год</h4></div> |
|||
<div class="col align-self-center"><h2 class="rounded border border-dark" style="background-color: #ff8946;" id="uniq_day_players">~</h2></div> |
|||
<div class="col align-self-center"><h2 class="rounded border border-dark" style="background-color: #ff8946;" id="uniq_month_players">~</h2></div> |
|||
<div class="col align-self-center"><h2 class="rounded border border-dark" style="background-color: #ff8946;" id="uniq_year_players">~</h2></div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<!--#########################################################################################################################################################--> |
|||
<div class="tab-pane fade" id="RulesSection"> |
|||
<div class="row row-cols-1" id="about_list"> |
|||
<div class="row row-cols-1 justify-content-center pt-3 pb-3" id="AboutSection_row_header"> |
|||
<div class="col-auto text-center rounded border border-dark" style="background-color: #ff8946;"> |
|||
<h2>Правила (для самых маленьких)</h2> |
|||
</div> |
|||
</div> |
|||
<!----> |
|||
<div class="col pt-2"> |
|||
<div class="row justify-content-md-center"> |
|||
<div class="col-10 text-center rounded border border-dark" style="background-color: #fffefc; "> |
|||
<div class="row"> |
|||
<div class="col"> |
|||
<div class="col text-center"> |
|||
<h1>Почему стоит начать играть?</h1> |
|||
</div> |
|||
<div class="row row-cols-1"> |
|||
<div class="col text-left"> |
|||
<h4>> Все карты на сервере уникальны и сделаны нами, ты всегда можншь найти место по вкусу!</h4> |
|||
</div> |
|||
<div class="col text-left"> |
|||
<h4>> Большенство плагинов на сервере сделаны нами и добавляют некий шарм в геймплей.</h4> |
|||
</div> |
|||
<div class="col text-left"> |
|||
<h4>> Правила для вас не писаны(каканы), можете делать всё что душе угодно, но ожидайте что вам дадут пиздюлей наши модераторы.</h4> |
|||
</div> |
|||
<div class="col text-left"> |
|||
<h4>> Сервера работают на божем слове, так что шанс что проект закроется стремится к нулю. Конечно пока нам не надоест.</h4> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div class="row justify-content-center"> |
|||
<div class="col-6 text-center rounded border border-dark" style="background-color: #E2EFDE;"> |
|||
<div class="row"> |
|||
<div class="col pt-3"> |
|||
<h4>Правила на которые ты забьёшь х*й</h4> |
|||
<h4> ᐯ ᐯ ᐯ</h4> |
|||
<hr> |
|||
</div> |
|||
</div> |
|||
<div class="row justify-content-center" id="Rules_List"> |
|||
<!----> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<!--#########################################################################################################################################################--> |
|||
<div class="tab-pane fade" id="ServersSection"> |
|||
<div class="row row-cols-1" id="servers_list"> |
|||
<div class="col text-center rounded border border-dark gy-3" style="background-color: #E2EFDE;"> |
|||
<h2>Выбери сервер на свой "ОТЛИЧНЫЙ" вкус!</h2> |
|||
<div class="row justify-content-center pt-3 pb-3"> |
|||
<div class="col-auto text-center rounded border border-dark" style="background-color: #ff8946; "> |
|||
<h2>Список серверов</h2> |
|||
</div> |
|||
</div> |
|||
<div class="row"> |
|||
<div class="col-10 offset-1 rounded border border-dark" style="background-color: #E2EFDE;" id="servers_list_container"> |
|||
<div class="row text-center pt-3"> |
|||
<div class="col-6 offset-3"> |
|||
<h5>Для подключения к серверу просто нажми на него</h5> |
|||
</div> |
|||
</div> |
|||
<div class="row justify-content-center row-cols-12" id="servers_list_v2"> |
|||
<!-- сюда сервера вставляются --> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div class="row pt-1 justify-content-center"> |
|||
<div class="col-5 rounded border border-dark text-center" style="background-color: #E2EFDE;"> |
|||
<h6 id="ServersSectionLastUpdate">Информация обновлена: </h6> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<!--#########################################################################################################################################################--> |
|||
<div class="tab-pane fade" id="VIPSection"> |
|||
<div class="row row-cols-1" id="vip_prices"> |
|||
<!--<div class="row row-cols-1" id="vip_prices"> |
|||
<div class="col text-center rounded border border-dark gy-3 p-4" style="background-color: #E2EFDE;" id="buy_vip"> |
|||
<h2>Заинтересовался покупкой? Cкорее выбирай!</h2> |
|||
<h5 id="CheckAndDelete">Цены появятся только после проверки профиля!</h5> |
|||
<h5><a data-toggle="tab" href="#ProfileSection">> Проверить <</a></h5> |
|||
</div> |
|||
</div>--> |
|||
<div class="row row-cols-1 justify-content-center pt-3 pb-3" id="Section_VIP_row_header"> |
|||
<div class="col-auto text-center rounded border border-dark" style="background-color: #ff8946;"> |
|||
<h2>Покупка VIP</h2> |
|||
</div> |
|||
</div> |
|||
<div class="row row-cols-1 justify-content-center" id="Section_VIP_row_content"> |
|||
<div class="col-6 text-center rounded border border-dark" style="background-color: #E2EFDE;" id="Section_VIP_col"> |
|||
<br> |
|||
<h3>Нагибай всех благодаря нашей випки!</h3> |
|||
<h6 style="font-family: tf2secondary;">(Смотри не перестарайся)</h6> |
|||
<h6 style="font-family: tf2secondary;" id="Section_VIP_users"></h6> |
|||
<div class="row justify-content-center"> |
|||
<div class="col-10"> |
|||
<hr> |
|||
<br> |
|||
<div class="row row-cols-3 justify-content-center" id="Section_VIP_buttons"> |
|||
<div class="col-8 justify-content-center" id="Section_VIP_check_profile"> |
|||
<a href=# onclick="document.getElementById('Tab_Profile_Button').click();"> |
|||
<h3>Чтоб увидить цены, сначала введи профиль (>ТЫК<)</h3> |
|||
</a> |
|||
</div> |
|||
<!----> |
|||
</div> |
|||
<br> |
|||
<hr> |
|||
<div class="row justify-content-center"> |
|||
<div class="col-8"> |
|||
<h6 style="font-family: tf2secondary;">Что дает випка?</h6> |
|||
<div style="text-align: left;"> |
|||
<p>- Одна випка на все наши сервера.</p> |
|||
<p>- Резервный слот и тебя не кикнет если сервер заполнится.</p> |
|||
<p>- Вас не кикнет за АФК.</p> |
|||
<p>- Хук, позволяет летать по карте используя паутину.</p> |
|||
<p>- Верёвка, позволяет висеть как говно.</p> |
|||
<p>- Раздатчик теперь играет музыку.</p> |
|||
<p>- Менять свой класс игнорируя ограничения.</p> |
|||
<p>- КД у РТД, всегда будет равным двум минутам.</p> |
|||
<p>- "Бесплатные" аньюжки, каждая на каждый сервер и на каждый клас.</p> |
|||
<br> |
|||
<p>И много еще чего... через !меню.</p> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<!--#########################################################################################################################################################--> |
|||
<div class="tab-pane fade" id="ProfileSection"> |
|||
<div class="row row-cols-1" id="profile_list"> |
|||
<div class="col text-center rounded border border-dark gy-3 p-4" style="background-color: #E2EFDE;" id="profile_check"> |
|||
<div class="row justify-content-center" id="Profile_Characters"> |
|||
<!----> |
|||
</div> |
|||
<div class="row justify-content-center pb-3 pt-3"> |
|||
<div class="col-auto text-center rounded border border-dark" style="background-color: #ff8946; "> |
|||
<h2>Профиль</h2> |
|||
</div> |
|||
</div> |
|||
<div class="row row-cols-1 justify-content-center" id="profile_list"> |
|||
<div class="col-6 text-center rounded border border-dark p-4" style="background-color: #E2EFDE;" id="profile_check"> |
|||
<h2>Проверь свой профиль на фактах!</h2> |
|||
<h6>На этой странице после ввода твоего профиля, появится вся твоя статистика на фактах, наличие банов и их история, а так-же возможность купить випку!</h6> |
|||
<span> ></span> |
|||
<form id="formProfileSectionInput" action="#check"> |
|||
<div class="row justify-content-center"> |
|||
<div class="col-4"> |
|||
<div class="row justify-content-center rounded border border-dark row-cols-1" id="formProfileSectionInputHelpText"> |
|||
<div class="col pt-2"><h6>Ссылка на профиль:</h6></div> |
|||
<div class="col"><input class="form-control" type="text" name="steamurl" id="steamurl" required/></div> |
|||
<div class="col-12 pt-2"> |
|||
<button type="button" class="btn btn-danger" id="check_profile_submit_button">Проверить профиль</button><!--data-toggle="modal" data-action="CaptchaModalHandler" data-target="#CaptchaModalHandler"--> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</form> |
|||
<!--<span> ></span> |
|||
<button type="button" class="btn btn-primary" data-toggle="modal" id="buttonCheck" data-action="CheckProfileCaptcha" data-target="#CheckProfileCaptcha">Проверить свой профиль</button> |
|||
<span> <</span> |
|||
<span> <</span>--> |
|||
</div> |
|||
</div> |
|||
<div class="row row-cols-1 justify-content-center" id="profile_stats"> |
|||
<!----> |
|||
</div> |
|||
</div> |
|||
<!--#########################################################################################################################################################--> |
|||
<div class="tab-pane fade" id="AboutSection"> |
|||
<div class="row row-cols-1" id="about_list"> |
|||
<div class="col text-center rounded border border-dark gy-3 p-4" style="background-color: #E2EFDE;"> |
|||
<h2>Здраствуйте, спасибо что выбрали факты 13 в качестве сервера, где можно весело проводить время!</h2> |
|||
<div class="row row-cols-1 justify-content-center pt-3 pb-3" id="AboutSection_row_header"> |
|||
<div class="col-auto text-center rounded border border-dark" style="background-color: #ff8946;"> |
|||
<h2>О нас всех и тебе</h2> |
|||
</div> |
|||
</div> |
|||
<div class="col text-center rounded border border-dark gy-3 p-4" style="background-color: #E2EFDE;"> |
|||
<h4>Наши "отличные" сервера выбирают, не только русские игроки, но и другие, из разных стран, например: украина</h2> |
|||
<div class="row"> |
|||
<div class="col align-self-center m-1" style="background-image: url('https://upload.wikimedia.org/wikipedia/commons/thumb/f/f3/Flag_of_Russia.svg/320px-Flag_of_Russia.svg.png'); background-size: 100% auto;" id="count_russian"><h3>~</h3></div> |
|||
<div class="col align-self-center m-1" style="background-image: url('https://upload.wikimedia.org/wikipedia/commons/thumb/4/49/Flag_of_Ukraine.svg/1280px-Flag_of_Ukraine.svg.png'); background-size: 100% auto;" id="count_ukraine"><h3>~</h3></div> |
|||
<div class="col align-self-center m-1" style="background-image: url('https://president.gov.by/content-pages/gosudarstvo/national-symbols/national-flag/image-thumb__17074__text-with-image/flag~-~media--06a35258--query.jpg'); background-size: 100% auto;" id="count_belorussia"><h3>~</h3></div> |
|||
<div class="col align-self-center m-1" style="background-image: url('https://upload.wikimedia.org/wikipedia/commons/thumb/d/d3/Flag_of_Kazakhstan.svg/1280px-Flag_of_Kazakhstan.svg.png'); background-size: 100% auto;" id="count_kazakhstan"><h3>~</h3></div> |
|||
<div class="col align-self-center m-1" style="background-image: url('https://upload.wikimedia.org/wikipedia/commons/1/11/Flag_of_the_United_Nations.png'); background-size: 100% auto;" id="count_other"><h3>~</h3></div> |
|||
<div class="row row-cols-1 justify-content-center"> |
|||
<div class="col-6 text-center rounded border border-dark" style="background-color: #E2EFDE;"> |
|||
<div class="row"> |
|||
<div class="col pt-3"> |
|||
<h4>Кто мы?</h4> |
|||
<h6 style="font-family: tf2secondary;">и что мы делаем в вашем списке серверов?</h6> |
|||
</div> |
|||
</div> |
|||
<div class="row pl-3 pr-3"> |
|||
<hr> |
|||
<div class="col-4 offset-1"> |
|||
<div class="row rounded-5"> |
|||
<div class="card"> |
|||
<img class="card-img" src="site_content/images/gameplay/gameplay_1.jpg" alt="gameplay_1"> |
|||
</div> |
|||
</div> |
|||
<br> |
|||
<div class="row rounded-5"> |
|||
<div class="card"> |
|||
<img class="card-img" src="site_content/images/gameplay/gameplay_2.jpg" alt="gameplay_2"> |
|||
</div> |
|||
</div> |
|||
<br> |
|||
<div class="row rounded-5"> |
|||
<div class="card"> |
|||
<img class="card-img" src="site_content/images/gameplay/gameplay_3.jpg" alt="gameplay_3"> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div class="col-1"></div> |
|||
<div class="col-5"> |
|||
<p style="font-family: tf2secondary; text-align: right;">Факты 13 - это дружный сервачок русского наолда, где вы можете хорошо отдохнуть со своими друзьями или тупыми рандомами после школы или завода.</p> |
|||
<hr> |
|||
<p style="font-family: tf2secondary; text-align: right;">У нас обширный список серверов, на котором стоят уникальные карты, сделанные картоделом <a href="https://steamcommunity.com/profiles/76561198141792724" target="_blank" style="font-family: tf2build;color: #ff8946;">РУССКИЙ ПУТИН</a></p> |
|||
<hr> |
|||
<p style="font-family: tf2secondary; text-align: right;">Прекрасные плагины недающие скучать и написанные таким же "прекрасным" кодером <a href="https://steamcommunity.com/profiles/76561198087598690" target="_blank" style="font-family: tf2build;color: #ff8946;">ОТДЫХАЕМ</a></p> |
|||
<hr> |
|||
<p style="font-family: tf2secondary; text-align: right;">Посмотреть наши смешные до усрачки посты можно в Дискорде или группе ВК</p> |
|||
<div style="text-align: right;"> |
|||
<a href="https://tf2.pblr-nyk.pro/discord" target="_blank" style="text-decoration: none; color: black;"><p style="font-family: tf2secondary; display: inline;" id="AboutSection_discord">0 ГЕЙмеров </p><img style="height: 1rem;" src="site_content/images/logo/discord.png?version=2"></a> |
|||
<br style="height: 1rem;"> |
|||
<a href="https://tf2.pblr-nyk.pro/vk" target="_blank" style="text-decoration: none; color: black;"><p style="font-family: tf2secondary; display: inline;" id="AboutSection_vk">0 Участников </p><img style="height: 1rem;" src="site_content/images/logo/vk.png?version=2"></a> |
|||
</div> |
|||
<hr> |
|||
<p style="font-family: tf2secondary; text-align: right;">Зачем ждать? Заходи сейчас! Если админ не разлил пиво на сервера</p> |
|||
</div> |
|||
<hr> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
</div> |
|||
</div> |
|||
<!--#########################################################################################################################################################--> |
|||
<div class="tab-pane fade" id="SecretEgg"> |
|||
<div class="row justify-content-center pt-5"> |
|||
<div class="col-6 rounded-5" style="background-color: #E2EFDE; text-align: center;"> |
|||
<div class="row p-5"> |
|||
<div class="col-12"> |
|||
<img class="img-fluid rounded-5" src="site_content/images/mge_brat.gif" alt="ЗАГРУЖАЕМ ЗАГРУЖАЕМ"> |
|||
</div> |
|||
</div> |
|||
<div class="row pb-5"> |
|||
<div class="offset-2 col-8"> |
|||
<h1>Спасибо что продолжаете играть на фактах 13!</h1> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<footer class="text-center"> |
|||
<div class="text-center" style="background-color: #ff8946;" id="Footer_Text"> |
|||
<p class="current-profile-text">2018-2022</p> |
|||
<p class="current-profile-text"> | </p> |
|||
<p class="current-profile-text">Факты 13</p> |
|||
<p class="current-profile-text"> | </p> |
|||
<p class="current-profile-text current-profile-text-color-alarm">JS:off</p> |
|||
</div> |
|||
</footer> |
|||
|
|||
<div class="modal fade" id="CheckProfileCaptcha" role="dialog" aria-hidden="true" aria-labelledby="CheckProfileCaptchaLabel" tabindex="-1"> |
|||
<div class="modal-dialog modal-dialog-centered" role="document"> |
|||
@ -221,22 +399,98 @@ |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="modal fade" id="CheckProfileMain" aria-hidden="true" aria-labelledby="CheckProfileMainLabel" tabindex="-1"> |
|||
<div class="modal-dialog modal-dialog-centered"> |
|||
<div class="modal-content"> |
|||
<div class="modal fade" id="CaptchaModalHandler" role="dialog" aria-hidden="true" aria-labelledby="CaptchaModalHandlerLabel" tabindex="-1"> |
|||
<div class="modal-dialog modal-dialog-centered" role="document"> |
|||
<div class="modal-content"> |
|||
<form id="formCaptchaHandler" action="#"> |
|||
<div class="modal-header"> |
|||
<h5 class="modal-title" id="CheckProfileMainLabel">Модалка 2</h5> |
|||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> |
|||
<h5 class="modal-title" id="CaptchaModalHandlerLabel">Проверка ICQ...</h5> |
|||
<button type="button" class="btn-close" data-dismiss="modal" aria-label="Close" id="check_captcha_close_button"></button> |
|||
</div> |
|||
<div class="modal-body"> |
|||
Скройте это модальное окно и покажите первое с помощью кнопки ниже. |
|||
<div class="row"> |
|||
<div class="col"> |
|||
<div class="row"> |
|||
<div class="col">Смещная картинка:</div> |
|||
<div class="col"><img alt="Captcha" src="" class="img-fluid" id="captcha_img"></img></div> |
|||
</div> |
|||
<div class="row"> |
|||
<div class="col">Код с картинки:</div> |
|||
<div class="col"><input class="form-control" type="text" name="captcha" id="captcha" required/></div> |
|||
</div> |
|||
<div class="row" id="InvalidCaptchaTextArea"> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div class="modal-footer"> |
|||
<button class="btn btn-primary" data-bs-dismiss="modal">Я понял, я обосрался</button> |
|||
<button type="button" class="btn btn-danger" id="check_captcha_submit_button">Проверить капчу</button> |
|||
</div> |
|||
</div> |
|||
</form> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="modal fade" id="Modal_SelectPayMethod" role="dialog" aria-hidden="true" aria-labelledby="Modal_SelectPayMethod_Label" tabindex="-1"> |
|||
<div class="modal-dialog modal-dialog-centered" role="document"> |
|||
<div class="modal-content"> |
|||
<div class="modal-header"> |
|||
<h5 class="modal-title" id="Modal_SelectPayMethod_Label">Выбери способ оплаты</h5> |
|||
<button type="button" class="btn-close" data-dismiss="modal" aria-label="Close" id="Modal_SelectPayMethod_Close"></button> |
|||
</div> |
|||
<div class="modal-body"> |
|||
<div class="row justify-content-center"> |
|||
<div class="col"> |
|||
<a href="#" target="_blank" style="text-align: center;" id="Modal_SelectPayMethod_ProfileLink"> |
|||
<h5 id="Modal_SelectPayMethod_ProfileName">Имя профиля</h5> |
|||
</a> |
|||
<br> |
|||
</div> |
|||
</div> |
|||
<div class="row justify-content-center"> |
|||
<div class="col-5"> |
|||
<div class="card"> |
|||
<img class="card-img" src="site_content/images/logo/qiwi.svg" alt="Qiwi pay"> |
|||
<div class="card-img-overlay text-center"> |
|||
<a href="" target="_blank" class="stretched-link" id="Modal_SelectPayMethod_QIWI_Button"></a> |
|||
</div> |
|||
</div> |
|||
<h5 style="text-align: center;" id="Modal_SelectPayMethod_QIWI_Value">~</h5> |
|||
</div> |
|||
<div class="col-5"> |
|||
<div class="card"> |
|||
<img class="card-img" src="site_content/images/logo/steam.png" alt="Steam pay"> |
|||
<div class="card-img-overlay text-center"> |
|||
<a href="" target="_blank" class="stretched-link" id="Modal_SelectPayMethod_STEAM_Button"></a> |
|||
</div> |
|||
</div> |
|||
<h5 style="text-align: center;" id="Modal_SelectPayMethod_STEAM_Value">~</h5> |
|||
</div> |
|||
</div> |
|||
<div class="row justify-content-center"> |
|||
<div class="col-10"> |
|||
<p style="font-family: tf2secondary; text-align: center;">После оплаты в любым способом:</p> |
|||
<p style="font-family: tf2secondary; text-align: left;">- тебя кикнет с сервера, чтоб обновить права</p> |
|||
<p style="font-family: tf2secondary; text-align: left;">- если проверить профиль, то покажет: vip куплен</p> |
|||
<p style="font-family: tf2secondary; text-align: left;">- если випка так не появилась, напиши админам</p> |
|||
</div> |
|||
</div> |
|||
<div class="row justify-content-center"> |
|||
<div class="col-10"> |
|||
<a href="#" id="Modal_SelectPayMethod_CheckVIP"> |
|||
<div style="text-align: center;"> |
|||
<h6 style="display: inline;">Проверить випку: </h6> |
|||
<h6 style="display: inline;" id="Modal_SelectPayMethod_CheckVIP_Status">(отсутствует)</h6> |
|||
<h6 style="font-family: tf2secondary;" id="Modal_SelectPayMethod_CheckVIP_EndDate"></h6> |
|||
</div> |
|||
</a> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.slim.min.js" |
|||
integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" |
|||
@ -247,9 +501,9 @@ |
|||
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.min.js" |
|||
integrity="sha384-VHvPCCyXqtD5DqJeNxl2dtTyhF78xXNXdkwX1CZeRusQfRKp+tA7hAShOK/B/fQ2" |
|||
crossorigin="anonymous"></script> |
|||
<script type="text/javascript" src="/API.js?version=3"></script> |
|||
<script type="text/javascript" src="/Player_API.js?version=1"></script> |
|||
<script type="text/javascript" src="/VIP_API.js?version=1"></script> |
|||
<script type="text/javascript" src="/SlideShow.js?version=1"></script> |
|||
<script type="text/javascript" src="site_content/js/API.js?version=6.66v4"></script> |
|||
<script type="text/javascript" src="site_content/js/Player_API.js?version=1.75"></script> |
|||
<script type="text/javascript" src="site_content/js/VIP_API.js?version=1.3"></script> |
|||
<script type="text/javascript" src="site_content/js/BackgroundSlides.js?version=9.6"></script> |
|||
</body> |
|||
</html> |
@ -1,39 +0,0 @@ |
|||
@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; |
|||
} |
@ -0,0 +1,74 @@ |
|||
@font-face { |
|||
font-family: tf2build; |
|||
src: url('site_content/fonts/tf2build.ttf'); |
|||
} |
|||
|
|||
@font-face { |
|||
font-family: tf2secondary; |
|||
src: url('site_content/fonts/tf2secondary.ttf'); |
|||
} |
|||
|
|||
h1,h2,h3,h4,h5,h6 { |
|||
font-family: tf2build; |
|||
color: #333333; |
|||
} |
|||
|
|||
p { |
|||
font-family: tf2secondary; |
|||
} |
|||
|
|||
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; |
|||
} |
|||
|
|||
.current-profile-text { |
|||
display: inline; |
|||
font-family: tf2secondary; |
|||
} |
|||
|
|||
.current-profile-bigtext { |
|||
font-size: 1.7rem; |
|||
} |
|||
|
|||
.current-profile-text-color-alarm { |
|||
color: red; |
|||
} |
|||
|
|||
.current-profile-text-color-maybe { |
|||
color: yellow; |
|||
} |
|||
|
|||
.current-profile-text-color-normal { |
|||
color: green; |
|||
} |
|||
|
|||
.vip-card-text { |
|||
color: whitesmoke; |
|||
text-align: right; |
|||
} |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 254 KiB |
After Width: | Height: | Size: 1.0 MiB |
After Width: | Height: | Size: 1.1 MiB |
After Width: | Height: | Size: 1.1 MiB |
After Width: | Height: | Size: 1.0 MiB |
After Width: | Height: | Size: 908 KiB |
After Width: | Height: | Size: 486 KiB |
After Width: | Height: | Size: 639 KiB |
After Width: | Height: | Size: 420 KiB |
After Width: | Height: | Size: 7.6 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 2.1 KiB |
After Width: | Height: | Size: 31 KiB |
After Width: | Height: | Size: 4.3 KiB |
After Width: | Height: | Size: 5.4 MiB |
After Width: | Height: | Size: 96 KiB |
After Width: | Height: | Size: 99 KiB |
After Width: | Height: | Size: 40 KiB |
After Width: | Height: | Size: 111 KiB |
After Width: | Height: | Size: 85 KiB |
After Width: | Height: | Size: 20 KiB |
After Width: | Height: | Size: 376 KiB |
After Width: | Height: | Size: 253 KiB |
After Width: | Height: | Size: 292 KiB |
@ -0,0 +1,288 @@ |
|||
/* |
|||
<div class="col-xs-8"> |
|||
<div class="row row-cols-5"> |
|||
<div class="col-xs-3 col-xl-3" > |
|||
<img style="width: 17em;" src="https://media.discordapp.net/attachments/976544929566318613/1035250528554319982/pootisd.png"> |
|||
</div> |
|||
<div class="col-xs-2 col-xl-2"> |
|||
<img style="width: 17em;" src="https://media.discordapp.net/attachments/976544929566318613/1035250528973754428/pyro.png" > |
|||
</div> |
|||
<div class="col-xs-2 col-xl-2"> |
|||
<img style="width: 17em;" src="https://media.discordapp.net/attachments/976544929566318613/1035253201563303967/toilet.png" > |
|||
</div> |
|||
<div class="col-xs-2 col-xl-2"> |
|||
<img style="width: 17em;" src="https://media.discordapp.net/attachments/976544929566318613/1035250529389002862/engi_n.png" > |
|||
</div> |
|||
<div class="col-xs-3 col-xl-3"> |
|||
<img style="width: 17em;" src="https://media.discordapp.net/attachments/976544929566318613/1035250529883918448/mgesold.png" > |
|||
</div> |
|||
</div> |
|||
</div> |
|||
*/ |
|||
|
|||
$(async function() { |
|||
$(document).on("keypress", "input", function (e) { |
|||
var code = e.keyCode || e.which; |
|||
if (code == 13) { |
|||
e.preventDefault(); |
|||
return false; |
|||
} |
|||
}); |
|||
|
|||
FillCharacters(); |
|||
FillRules(); |
|||
await CheckApi(); |
|||
await RequestAPI(); |
|||
|
|||
if(window.location.href.endsWith("#RulesSection")){ |
|||
document.getElementById('Rules_Button').click(); |
|||
} |
|||
|
|||
if(window.location.href.endsWith("#VIPSection")){ |
|||
document.getElementById('Tab_VIP_Button').click(); |
|||
} |
|||
}); |
|||
|
|||
let servers_active = ` |
|||
<div class="row text-center"> |
|||
<div class="col"> |
|||
<hr> |
|||
<h6>Где сейчас играют карлики</h6> |
|||
</div> |
|||
</div> |
|||
` |
|||
|
|||
let servers_inactive = ` |
|||
<div class="row text-center"> |
|||
<div class="col"> |
|||
<hr> |
|||
<h6>Пустую без дела</h6> |
|||
</div> |
|||
</div> |
|||
` |
|||
|
|||
let servers_dead = ` |
|||
<div class="row text-center"> |
|||
<div class="col"> |
|||
<hr> |
|||
<h6>Временно отключены</h6> |
|||
</div> |
|||
</div> |
|||
` |
|||
|
|||
let invalid_captcha = ` |
|||
<div class="col" id="InvalidCaptcha"> |
|||
<br> |
|||
<h1 style="color: red">ДЯДЯ ТЫ ДУРАЧЕК, КАПЧА НЕПРАВИЛЬНАЯ, ЖМИ СНОВА НА КНОПКУ</h1> |
|||
</div> |
|||
` |
|||
|
|||
function generate_server_card_div(data){ |
|||
return ` |
|||
<div class="col-auto justify-content-center align-self-center" style="padding: 1rem;"> |
|||
<div class="card text-right" style="width: 15rem; height: 15rem;"> |
|||
<img class="card-img" src="${data.preview}" alt="${data.name}" style="filter: blur(1px); height: 100%;"> |
|||
<div class="card-img-overlay" style="background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.02), rgba(0, 0, 0, 0.7))"><!--background-color: rgba(0, 0, 0, 0.205);--> |
|||
<a href="steam://connect/${data.address}" class="stretched-link" ${data.status ? "" : "disabled"}></a> |
|||
<h4 class="card-title" style="color: whitesmoke;">${data.name}</h4> |
|||
<p class="card-text" style="color: whitesmoke; font-family: tf2build; font-size: 3rem; text-align: center;">${data.player_count}/${data.max_players}</p> |
|||
<h4 class="card-title" style="color: whitesmoke; text-align: right;">${data.human_name}</h4> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
` |
|||
} |
|||
|
|||
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'}}
|
|||
await fetch("https://tf2.pblr-nyk.pro/api/stats", {headers: {'Cache-Control':'no-cache'}}) |
|||
.then(res => res.json()) |
|||
.then(res => { |
|||
FillServices(res); |
|||
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; |
|||
document.getElementById("ServersSectionLastUpdate").innerHTML = `Информация обновлена: ${UNIX2TIMESTAMP(res.updates.servers)}`; |
|||
document.getElementById("AboutSection_discord").innerHTML = `${res.discord_users} ГЕЙмеров `; |
|||
document.getElementById("AboutSection_vk").innerHTML = `${res.vk_users} Участников `; |
|||
document.getElementById("Section_VIP_users").innerHTML = `${res.vip_players} карликов уже имеют випку!`; |
|||
|
|||
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_v2").insertAdjacentHTML(insert_type,servers_active) |
|||
active = true; |
|||
} |
|||
document.getElementById("servers_list_v2").insertAdjacentHTML(insert_type,generate_server_card_div(res.servers[server])); |
|||
} |
|||
else if (res.servers[server].status == true && res.servers[server].player_count == 0) { |
|||
if(!inactive) { |
|||
document.getElementById("servers_list_v2").insertAdjacentHTML(insert_type,servers_inactive) |
|||
inactive = true; |
|||
} |
|||
document.getElementById("servers_list_v2").insertAdjacentHTML(insert_type,generate_server_card_div(res.servers[server])); |
|||
} |
|||
} |
|||
|
|||
for (let sort_id in sorted_servers) { |
|||
let server = sorted_servers[sort_id]; |
|||
if (res.servers[server].status == false) { |
|||
if(!dead) { |
|||
document.getElementById("servers_list_v2").insertAdjacentHTML(insert_type,servers_dead) |
|||
dead = true; |
|||
} |
|||
document.getElementById("servers_list_v2").insertAdjacentHTML(insert_type,generate_server_card_div(res.servers[server])); |
|||
} |
|||
} |
|||
}).catch((err) => { |
|||
console.log(err); |
|||
//FillFooter("", 0, 0);
|
|||
}); |
|||
|
|||
//FillFooter("", api_request_time, "");
|
|||
} |
|||
|
|||
function FillFooter(data, api_time, player_api_time){ |
|||
const text = `<p class="current-profile-text">{text}</p>`; |
|||
const text_bad = `<p class="current-profile-text current-profile-text-color-alarm">{text}</p>`; |
|||
const text_good = `<p class="current-profile-text current-profile-text-color-normal">{text}</p>`; |
|||
|
|||
while(document.getElementById("Footer_Text").firstChild) { |
|||
document.getElementById("Footer_Text").lastChild.remove(); |
|||
} |
|||
|
|||
document.getElementById("Footer_Text").insertAdjacentHTML("beforeend", text.replace("{text}", `2018-${(new Date()).getFullYear()} | `)); |
|||
document.getElementById("Footer_Text").insertAdjacentHTML("beforeend", text.replace("{text}", `Факты 13 | `)); |
|||
document.getElementById("Footer_Text").insertAdjacentHTML("beforeend", text.replace("{text}", `JS: `)); |
|||
document.getElementById("Footer_Text").insertAdjacentHTML("beforeend", text_good.replace("{text}", `on`)); |
|||
|
|||
document.getElementById("Footer_Text").insertAdjacentHTML("beforeend", text.replace("{text}", ` | API: `));//${api_time} ms
|
|||
if(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}", `${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) { |
|||
const ping_time = 90; |
|||
const text = `<p class="current-profile-text" id="{service_id}"></p>`; |
|||
|
|||
console.log(`${((new Date()).getTime() / 1000) - data.updates.qiwi_bot}`); |
|||
console.log(`${((new Date()).getTime() / 1000) - data.updates.steam_bot}`); |
|||
|
|||
if(data.updates.qiwi_bot && ((new Date()).getTime() / 1000) - data.updates.qiwi_bot < ping_time) { |
|||
document.getElementById("Footer_Text").insertAdjacentHTML("beforeend", text.replace("{service_id}","Footer_Services_QIWI")); |
|||
} |
|||
|
|||
if(data.updates.steam_bot && ((new Date()).getTime() / 1000) - data.updates.steam_bot < ping_time) { |
|||
document.getElementById("Footer_Text").insertAdjacentHTML("beforeend", text.replace("{service_id}","Footer_Services_STEAM")); |
|||
} |
|||
} |
|||
|
|||
function UNIX2TIMESTAMP(unix) { |
|||
return (new Date((unix + 3600 * 3) * 1000)).toGMTString().replace("GMT", "MSK"); |
|||
} |
|||
|
|||
function FillCharacters() { |
|||
let CharactersArray = new Array( |
|||
["site_content/images/characters/pootisd.png","site_content/sounds/pootis.mp3", ""], |
|||
["site_content/images/characters/pyro.png","site_content/sounds/alertmgs.mp3", ""], |
|||
["site_content/images/characters/toilet.png","site_content/sounds/puk.mp3", ""], |
|||
["site_content/images/characters/engi_n.png","site_content/sounds/nigger.mp3", ""], |
|||
["site_content/images/characters/mgesold.png","site_content/sounds/soldier_laughevil03.mp3", ""] |
|||
); |
|||
|
|||
let InjectCharacter = ``; |
|||
|
|||
document.getElementById("Main_FunnyСharacters").insertAdjacentHTML("beforeend", `<div class="col-3"></div>`); |
|||
for (const element in CharactersArray) { |
|||
InjectCharacter = `<div class="col"><img class="img-fluid" src="${CharactersArray[element][0]}" onclick="(new Audio('${CharactersArray[element][1]}')).play();"></div>`; |
|||
if(CharactersArray[element][2]){ |
|||
document.getElementById(CharactersArray[element][2]).insertAdjacentHTML("beforeend", `<div class="col-5"></div>`); |
|||
document.getElementById(CharactersArray[element][2]).insertAdjacentHTML("beforeend", InjectCharacter); |
|||
document.getElementById(CharactersArray[element][2]).insertAdjacentHTML("beforeend", `<div class="col-5"></div>`); |
|||
} |
|||
document.getElementById("Main_FunnyСharacters").insertAdjacentHTML("beforeend", InjectCharacter); |
|||
} |
|||
document.getElementById("Main_FunnyСharacters").insertAdjacentHTML("beforeend", `<div class="col-3"></div>`); |
|||
|
|||
} |
|||
|
|||
function FillRules() { |
|||
const rules = new Array( |
|||
{"name":"Читы", "about":"Бан навсегда сука", "image":"site_content/images/rules/cheats.jpg"}, |
|||
{"name":"Реклама серверов", "about":"Кроме мге, бан навсегда сука", "image":"site_content/images/rules/ads.jpg"}, |
|||
{"name":"Багоюз", "about":"Пиздец тебе, бан навсегда", "image":"site_content/images/rules/bug_use.jpg"}, |
|||
{"name":"Абуз команды !mir", "about":"Блокировка дверей, открытие спавна и т.д", "image":"site_content/images/rules/abuse.jpg"}, |
|||
{"name":"Абуз випки на сервере", "about":"Модеры сам решат как и за что", "image":"site_content/images/rules/abuse_vip.jpg"}, |
|||
{"name":"Делай короче чё хочешь", "about":":troll_face:", "image":"site_content/images/rules/make_everyone.jpg"} |
|||
) |
|||
|
|||
let card = ``; |
|||
//const shift = ``;//<div class="col-1 pb-4"></div>`;
|
|||
//let counter = 1
|
|||
|
|||
|
|||
for(const rule in rules) { |
|||
//if(counter == 1){document.getElementById("Rules_List").insertAdjacentHTML("beforeend", shift);}
|
|||
card = ` |
|||
<div class="col-4 pb-4"> |
|||
<div class="card" style="height: 18rem; background-image: url('${rules[rule].image}'); background-size: cover;"> |
|||
<!--<img class="card-img" src="${rules[rule].image}" alt="читы">--> |
|||
<div class="card-img-overlay d-flex flex-column" style="background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.02), rgba(0, 0, 0, 0.7));"> |
|||
<div class="mt-auto" style="text-align: right;"> |
|||
<h5 style="color: white;" >${rules[rule].name}</h5> |
|||
<hr style="color: white;"> |
|||
<p style="font-family: tf2secondary; color: white;">${rules[rule].about}</p> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div>` |
|||
document.getElementById("Rules_List").insertAdjacentHTML("beforeend", card); |
|||
|
|||
//counter++;
|
|||
//if(counter == 4){counter=1;}
|
|||
} |
|||
} |
|||
|
|||
|
@ -1,29 +1,21 @@ |
|||
$(async function() { |
|||
//вам смешно,а мне нет
|
|||
ChangeBackgoundImageRandom(); |
|||
}); |
|||
|
|||
function ChangeBackgoundImageRandom() { |
|||
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(); |
|||
ChangeBackgoundImage(images[getRandomInt(images.length-1)]); |
|||
} |
|||
|
|||
function getRandomInt(max) { |
|||
return Math.floor(Math.random() * max); |
|||
} |
|||
|
|||
function doSlideshow() |
|||
{ |
|||
if($('.slideshowimage').length!=0) |
|||
{ |
|||
$('.slideshowimage').fadeOut(500,function(){slideshowFadeIn();$(this).remove()}); |
|||
} |
|||
else |
|||
{ |
|||
slideshowFadeIn(); |
|||
} |
|||
} |
|||
function slideshowFadeIn() |
|||
{ |
|||
$('.slideshow').prepend($('<img class="slideshowimage" src="'+images[nextimage++]+'" style="display:none">').fadeIn(500,function(){setTimeout(doSlideshow,1000);})); |
|||
if(nextimage>=images.length) |
|||
nextimage=0; |
|||
} |
|||
}); |
|||
function ChangeBackgoundImage(url) { |
|||
let sample = `linear-gradient(to bottom, rgba(46, 13, 3, 0), rgba(34, 10, 3, 0.46)),url('${url}')` |
|||
document.getElementById('main_container').style.backgroundImage = sample; |
|||
} |
@ -0,0 +1,467 @@ |
|||
$(async function() { |
|||
await CheckCurrentUser(); |
|||
}) |
|||
|
|||
async function CheckCurrentUser(){ |
|||
if(!check_cookie_name("steam64")){return;} |
|||
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 { |
|||
var current_user = document.getElementById("Header_CurrentUser"); |
|||
var current_ban = document.getElementById("Header_CurrentBan"); |
|||
var logout = document.getElementById("Header_Logout"); |
|||
current_user.href = "#"; |
|||
if (response.ban) { |
|||
current_user.innerHTML = `Привет ${response.steam_data.nickname}! У меня хорошие новости!` |
|||
current_ban.innerHTML = "У тебя БАН! (нажми чтоб посмотреть его)"; |
|||
} else { |
|||
current_user.innerHTML = `Привет ${response.steam_data.nickname}!` |
|||
} |
|||
logout.innerHTML = ` (нажми чтоб выйти)` |
|||
} |
|||
}) |
|||
} |
|||
|
|||
function check_cookie_name(name) { |
|||
var match = document.cookie.match(new RegExp('(^| )' + name + '=([^;]+)')); |
|||
if (match && match[2] != "None") {return true;} |
|||
else {return false;} |
|||
} |
|||
|
|||
let captcha_error_div = `<div class="col" id="ModalCaptchaErrorText"><h6 style="color: red;" id="captcha_error">пук</h6></div>` |
|||
let ProfileLinkError_div = `<div class="col" id="ProfileLinkIsNotFull"><h6 style="color: red;" id="profile_error">Долбаеб введи ссылку на профиль!</h6></div>` |
|||
console.log("puk"); |
|||
//buttonCheckProfile
|
|||
|
|||
$('#check_captcha_close_button').click(async function(ev) { |
|||
ev.preventDefault(); |
|||
$('#CaptchaModalHandler').modal('hide'); |
|||
}); |
|||
|
|||
document.getElementById("check_profile_submit_button").addEventListener("keypress", async function(ev){ |
|||
ev.preventDefault(); |
|||
console.log(ev.key); |
|||
return false; |
|||
}); |
|||
|
|||
$('#check_profile_submit_button').click(async function(ev) { |
|||
//ev.preventDefault();
|
|||
console.log("check profile button presed"); |
|||
if (document.getElementById("ProfileLinkIsNotFull")) { |
|||
document.getElementById("ProfileLinkIsNotFull").remove(); |
|||
} |
|||
|
|||
if (!document.forms["formProfileSectionInput"].steamurl.value.startsWith("https://")) { |
|||
document.getElementById("formProfileSectionInputHelpText").insertAdjacentHTML("beforeend",ProfileLinkError_div); |
|||
//document.getElementById("profile").innerHTML = "Долбаеб введи ссылку на профиль!";
|
|||
} else { |
|||
$('#CaptchaModalHandler').modal('show'); |
|||
} |
|||
return false; |
|||
}); |
|||
|
|||
$(document).on("show.bs.modal", "#CaptchaModalHandler", async function () { |
|||
console.log("setup captcha modal"); |
|||
let form_url = document.forms["formProfileSectionInput"]; |
|||
let form_captcha = document.forms["formCaptchaHandler"]; |
|||
let captcha_id; |
|||
|
|||
await RefreshCaptcha(); |
|||
async function RefreshCaptcha() { |
|||
await fetch("https://tf2.pblr-nyk.pro/player_api/v1/captcha", {method:'POST'}) |
|||
.then(response => response.json()) |
|||
.then(response => { |
|||
console.log("captcha id: " + response.id); |
|||
captcha_id = response.id; |
|||
form_captcha.captcha_img.src = "https://tf2.pblr-nyk.pro/player_api/v1/captcha?id=" + response.id; |
|||
}); |
|||
} |
|||
|
|||
$('#check_captcha_submit_button').click(async function (ev) { |
|||
//ev.preventDefault();
|
|||
if ($('#ModalCaptchaErrorText')) { $('#ModalCaptchaErrorText').remove();} |
|||
await CheckAndFill(ev); |
|||
return false; |
|||
}); |
|||
|
|||
async function CheckAndFill(event) { |
|||
if(form_captcha.captcha.value.length == 0){ |
|||
if(!document.getElementById("captcha_error")){ |
|||
document.getElementById("InvalidCaptchaTextArea").insertAdjacentHTML("beforeend",captcha_error_div); |
|||
} |
|||
document.getElementById("captcha_error").innerHTML = "Капчу введи!"; |
|||
return; |
|||
} |
|||
|
|||
$("#check_captcha_close_button").prop("disabled", true); |
|||
$("#check_captcha_submit_button").prop("disabled", true); |
|||
if(document.getElementById("current_profile")){ |
|||
document.getElementById("current_profile").remove(); |
|||
} |
|||
console.log(new Date()); |
|||
await fetch("https://tf2.pblr-nyk.pro/player_api/v1/player?steam_url=" + form_url.steamurl.value + "&captcha_id=" + captcha_id + "&captcha_code=" + form_captcha.captcha.value) |
|||
.then(response => response.json()) |
|||
.then(response => { |
|||
$("#check_captcha_close_button").removeAttr("disabled"); |
|||
$("#check_captcha_submit_button").removeAttr("disabled"); |
|||
/////////////////////////////////////////////////////////
|
|||
if ("error" in response) { |
|||
console.log(`id: ${captcha_id} error: ${response}`); |
|||
if(!document.getElementById("captcha_error")){ |
|||
document.getElementById("InvalidCaptchaTextArea").insertAdjacentHTML("beforeend",captcha_error_div); |
|||
} |
|||
if (response.error == "incorrect captcha") { |
|||
document.getElementById("captcha_error").innerHTML = "Капча невалидна, попробуй снова!"; |
|||
} else { |
|||
document.getElementById("captcha_error").innerHTML = "Ошибка: " + response.error; |
|||
} |
|||
RefreshCaptcha(); |
|||
} else if ("detail" in response) { |
|||
if(!document.getElementById("captcha_error")){ |
|||
document.getElementById("InvalidCaptchaTextArea").insertAdjacentHTML("beforeend",captcha_error_div); |
|||
} |
|||
document.getElementById("captcha_error").innerHTML = "Ошибка: " + response.detail[0].msg; |
|||
RefreshCaptcha(); |
|||
} else { |
|||
console.log(response); |
|||
document.getElementById("profile_stats").insertAdjacentHTML("beforeend",FillPlayerInfo(response)); |
|||
ReconstructVipSection(response); |
|||
$('#check_captcha_close_button').click(); |
|||
} |
|||
form_captcha.captcha.value = ''; |
|||
}); |
|||
}}); |
|||
|
|||
function CalculateVipEndDate(permition) { |
|||
return new Date((permition["UNIX_TIMESTAMP(`reg_date`)"] + permition.amount) * 1000); |
|||
} |
|||
|
|||
function FillPlayerInfo(data) { |
|||
|
|||
let player_ban_div = ""; |
|||
|
|||
if(data.ban) { |
|||
let player_ban_length; |
|||
if (data.ban.ban_length > 0){ |
|||
let player_ban_end = new Date((new Date(data.ban.timestamp)).getTime() + (data.ban.ban_length * 60 * 1000)).toLocaleString(); |
|||
player_ban_length = `<p class="current-profile-text">Дата окончания: </p><p class="current-profile-text">${player_ban_end}</p>` |
|||
} else { |
|||
player_ban_length = '<p class="current-profile-text">Дата окончания: </p><p class="current-profile-text current-profile-text-color-alarm">Навсегда в бане</p>' |
|||
} |
|||
|
|||
player_ban_div = ` |
|||
<div id="ban_section"> |
|||
<hr> |
|||
<p class="current-profile-text current-profile-bigtext">Статус бана: </p> |
|||
<p class="current-profile-text current-profile-bigtext current-profile-text-color-alarm">Забанен</p> |
|||
<br> |
|||
<p class="current-profile-text">ID бана: </p> |
|||
<p class="current-profile-text">${data.ban.id}</p> |
|||
<br> |
|||
<p class="current-profile-text">Причина бана: </p> |
|||
<p class="current-profile-text">${data.ban.ban_reason}</p> |
|||
<br> |
|||
<p class="current-profile-text">Кто выдал бан: </p> |
|||
<p class="current-profile-text">${data.ban.banned_by ? data.ban.banned_by : 'bot'}</p> |
|||
<!----> |
|||
<a href="${data.ban.admin_info.steam_url}" target="_blank" class="current-profile-text"><img style="height: 1.0rem;" class="rounded-1" src="site_content/images/logo/steam.png"></a> |
|||
<a href="https://vk.me/id${data.ban.admin_info.vk_id}" target="_blank" class="current-profile-text"><img style="height: 1.0rem;" class="rounded-1" src="site_content/images/logo/vk.png"></a> |
|||
<a href="#" class="current-profile-text" onclick="alert('Пиши в дискорд сюда: ${data.ban.admin_info.discord_name}');"><img style="height: 1.0rem;" class="rounded-1" src="site_content/images/logo/discord.png?version=2"></a> |
|||
<!----> |
|||
<br> |
|||
${player_ban_length} |
|||
</div> |
|||
` |
|||
} |
|||
|
|||
let player_permition_div; |
|||
let player_permition_length = ""; |
|||
|
|||
let player_permition_continue = `(купить)`; |
|||
|
|||
if(data.permition) { |
|||
let player_permition_status; |
|||
if (data.permition.status == "VIP"){ |
|||
let player_permition_end_date = `бесконечны`; |
|||
let player_permition_end_date_color_status = `current-profile-text-color-normal`; |
|||
|
|||
if(data.permition.amount){ |
|||
player_permition_continue = `(продлить)`; |
|||
let date = CalculateVipEndDate(data.permition);// new Date((data.permition["UNIX_TIMESTAMP(`reg_date`)"] + data.permition.amount) * 1000);
|
|||
player_permition_end_date = date.toLocaleString(); |
|||
document.getElementById("Modal_SelectPayMethod_CheckVIP_EndDate").innerHTML = `До: ${player_permition_end_date}`; |
|||
if(date.getTime() - new Date().getTime() > 604800000){ |
|||
player_permition_end_date_color_status = `current-profile-text-color-normal`; |
|||
} else if (date.getTime() - new Date().getTime() > 259200000){ |
|||
player_permition_end_date_color_status = `current-profile-text-color-maybe`; |
|||
} else { |
|||
player_permition_end_date_color_status = `current-profile-text-color-alarm`; |
|||
} |
|||
} |
|||
|
|||
player_permition_length = ` |
|||
<br> |
|||
<p class="current-profile-text">Дата окончания ${data.permition.status}: </p><p class="current-profile-text">${player_permition_end_date}</p> |
|||
`;
|
|||
|
|||
player_permition_status = ` |
|||
<p class="current-profile-text current-profile-bigtext">Статус ${data.permition.status}: </p> |
|||
<p class="current-profile-text current-profile-bigtext">Имеется </p><a href="#" onclick="document.getElementById('Tab_VIP_Button').click();" class="current-profile-text current-profile-bigtext ${player_permition_end_date_color_status}">${player_permition_continue}</a> |
|||
` |
|||
|
|||
|
|||
} else { |
|||
player_permition_status = ` |
|||
<p class="current-profile-text current-profile-bigtext">Статус ${data.permition.status}: </p> |
|||
<p class="current-profile-text current-profile-bigtext">Имеется</p> |
|||
` |
|||
} |
|||
|
|||
document.getElementById("Modal_SelectPayMethod_CheckVIP_Status").innerHTML = "(имеется)"; |
|||
document.getElementById("Modal_SelectPayMethod_CheckVIP_Status").style += "color: green;"; |
|||
|
|||
player_permition_div = ` |
|||
<div id="vip_section"> |
|||
<hr> |
|||
${player_permition_status} |
|||
${player_permition_length} |
|||
<br> |
|||
</div> |
|||
` |
|||
} else { |
|||
player_permition_div = ` |
|||
<div id="vip_section"> |
|||
<hr> |
|||
<p class="current-profile-text current-profile-bigtext">Статус VIP: </p> |
|||
<p class="current-profile-text current-profile-bigtext">Отсутствует </p><a href="#" onclick="document.getElementById('Tab_VIP_Button').click();" class="current-profile-text current-profile-bigtext current-profile-text-color-alarm">${player_permition_continue}</a> |
|||
<br> |
|||
<div> |
|||
`;
|
|||
} |
|||
|
|||
let player_statistic_div = ""; |
|||
let total_gametime = 0; |
|||
/* |
|||
<div id="statistic_section"> |
|||
<hr> |
|||
<p class="current-profile-text current-profile-bigtext">Статистика карт</p> |
|||
<br> |
|||
<p class="current-profile-text">zavod_3_jirikupdate - 1 день 2:19:13</p> |
|||
<br> |
|||
<p class="current-profile-text">zavod_3_jirik - 1 день 2:19:13</p> |
|||
<br> |
|||
<p class="current-profile-text">zavod_3 - 1 день 2:19:13</p> |
|||
</div> |
|||
*/ |
|||
if(data.gametime){ |
|||
player_statistic_div = `<div id="statistic_section">
|
|||
<hr> |
|||
<p class="current-profile-text current-profile-bigtext">Статистика карт</p> |
|||
`;
|
|||
|
|||
for(const srv in data.gametime) { |
|||
for(const map_name in data.gametime[srv]){ |
|||
//<a href="${data.ban.admin_info.steam_url}" target="_blank" class="current-profile-text"><img style="height: 1.0rem;" class="rounded-1" src="site_content/images/logo/steam.png"></a>
|
|||
//<img style="height: 1.0rem;" class="rounded-1" src="${return_last_api_response().servers[srv].preview}">
|
|||
let map = map_name.replace("workshop/", "").split(".ugc", 1)[0]; |
|||
player_statistic_div += `<br><p class="current-profile-text">${map} - ${UNIX2FACTI_TIME(data.gametime[srv][map_name])}</p>`; |
|||
total_gametime += data.gametime[srv][map_name]; |
|||
} |
|||
} |
|||
player_statistic_div += "</div>" |
|||
} |
|||
|
|||
let player_data_div = ` |
|||
<div class="col-md-8 col-sm-6 col-lg-6 col-xl-5 rounded border border-dark gy-3 p-4" style="background-color: #E2EFDE;" id="current_profile"> |
|||
<div class="row"> |
|||
<div class="col-6 offset-3"> |
|||
<hr> |
|||
</div> |
|||
</div> |
|||
<div class="row" id="player_data"> |
|||
<div class="col" id="player_data_window"> |
|||
<div class="row"> |
|||
<div class="col" style="text-align: left;"> |
|||
<h2>${data.steam_data.nickname}</h2> |
|||
${player_ban_div} |
|||
${player_permition_div} |
|||
${player_statistic_div} |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div class="col-4"> |
|||
<img class="img-fluid w-100 rounded-5" src="${data.steam_data.avatar}"> |
|||
<p></p> |
|||
<!--<p>Убийств: 20</p> |
|||
<p>Смертей: 582</p>--> |
|||
<p>Наиграно: ${UNIX2FACTI_TIME(total_gametime)}</p> |
|||
<div class="row"> |
|||
<div class="col justify-content-end"> |
|||
<a href="${data.steamids.community_url}" target="_blank"><img class="img-fluid w-25" src="site_content/images/logo/steam.png"></a> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
` |
|||
return player_data_div; |
|||
} |
|||
|
|||
function UNIX2FACTI_TIME(u_time){ |
|||
const divmod = (x, y) => [Math.floor(x / y), x % y]; |
|||
|
|||
let s = divmod(u_time, 60)[1]; |
|||
let m = divmod(u_time, 60)[0]; |
|||
let h = divmod(m, 60)[0]; |
|||
m = divmod(m, 60)[1]; |
|||
let d = divmod(h, 24)[0]; |
|||
h = divmod(h, 24)[1]; |
|||
//бля простите я тупой
|
|||
|
|||
if(!s&!m&!h&!d){ |
|||
return "не играл"; |
|||
} |
|||
|
|||
let time = `${h>9?h:'0'+h}:${m>9?m:'0'+m}:${s>9?s:'0'+s}`; |
|||
|
|||
if (!d) { |
|||
return time; |
|||
} else if (d<2){ |
|||
return `${d} день ${time}`; |
|||
} else { |
|||
return `${d} дней ${time}`; |
|||
} |
|||
} |
|||
|
|||
function ReconstructVipSection(data){ |
|||
$('#Modal_SelectPayMethod_Close').click(async function(ev) { |
|||
ev.preventDefault(); |
|||
$('#Modal_SelectPayMethod').modal('hide'); |
|||
}); |
|||
|
|||
$('#Modal_SelectPayMethod_CheckVIP').click(async function(ev) { |
|||
ev.preventDefault(); |
|||
await fetch("https://tf2.pblr-nyk.pro/player_api/v1/player/permitions?steam_url=" + document.forms["formProfileSectionInput"].steamurl.value) |
|||
.then(response => response.json()) |
|||
.then(response => { |
|||
if(response.permition){ |
|||
document.getElementById("Modal_SelectPayMethod_CheckVIP_Status").innerHTML = "(имеется)"; |
|||
document.getElementById("Modal_SelectPayMethod_CheckVIP_Status").style += "color: green;"; |
|||
if(response.permition.amount){ |
|||
document.getElementById("Modal_SelectPayMethod_CheckVIP_EndDate").innerHTML = `До: ${CalculateVipEndDate(response.permition).toLocaleString()}`; |
|||
} else { |
|||
document.getElementById("Modal_SelectPayMethod_CheckVIP_EndDate").innerHTML = `бесконечность не предел`; |
|||
} |
|||
} else { |
|||
document.getElementById("Modal_SelectPayMethod_CheckVIP_Status").innerHTML = "(отсутствует)"; |
|||
document.getElementById("Modal_SelectPayMethod_CheckVIP_Status").style += "color: red;"; |
|||
document.getElementById("Modal_SelectPayMethod_CheckVIP_EndDate").innerHTML = `Время проверки: ${new Date().toLocaleString()}`; |
|||
} |
|||
}); |
|||
}); |
|||
|
|||
//document.getElementById("Section_VIP_check_profile")?document.getElementById("Section_VIP_check_profile").remove():null;
|
|||
while(document.getElementById("Section_VIP_buttons").firstChild) { |
|||
document.getElementById("Section_VIP_buttons").lastChild.remove(); |
|||
} |
|||
|
|||
const STEAM_TRADE = "https://steamcommunity.com/tradeoffer/new/?partner=47239992&token=8gNFVl7h"; |
|||
const QIWI_TRADE = "https://qiwi.com/payment/form/99?currency=643&amount=(AMOUNT)&extra%5B%27comment%27%5D=(COMMENT)&extra%5B%27account%27%5D=79207516287&blocked%5B0%5D=sum&blocked%5B1%5D=account&blocked%5B2%5D=comment"; |
|||
//STEAM_0%3A0%3A54354355
|
|||
//"https://qiwi.com/payment/form/99?currency=643&amount=(AMOUNT)&extra%%5B%%27comment%%27%%5D=(COMMENT)&extra%%5B%%27account%%27%%5D=%%2B79207516287&blocked%%5B0%%5D=account";
|
|||
|
|||
document.getElementById("Modal_SelectPayMethod_ProfileLink").href = data.steamids.community_url; |
|||
document.getElementById("Modal_SelectPayMethod_ProfileName").innerHTML = "Вип будет выдан: " + data.steam_data.nickname; |
|||
|
|||
let price_array = new Array( |
|||
["VIP (1 месяц)", 150, "1 ключ", "site_content/images/vip/VIP_1_MOUNTH.jpg", "month"], |
|||
["VIP (1 неделя)", 75, "20 рефов", "site_content/images/vip/VIP_7_DAYS.jpg", "seven_day"], |
|||
["VIP (1 день)", 20, "5 рефов", "site_content/images/vip/VIP_1_DAY.jpg", "day"] |
|||
); |
|||
|
|||
let vip_select; |
|||
for(const select in price_array) { |
|||
vip_select = ` |
|||
<div class="col"> |
|||
<div class="card"> |
|||
<img class="card-img" src="${price_array[select][3]}" alt="${price_array[select][0]}"> |
|||
<div class="card-img-overlay d-flex flex-column" style="background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.02), rgba(0, 0, 0, 0.7))"> |
|||
<a href="#" class="stretched-link" id="Section_VIP_buttons_${price_array[select][4]}"></a> |
|||
<div class="mt-auto"> |
|||
<h5 class="vip-card-text">${price_array[select][0]}</h5> |
|||
<hr class="vip-card-text"> |
|||
<h6 class="vip-card-text">${price_array[select][1]} Рублей</h6> |
|||
<h6 class="vip-card-text">${price_array[select][2]}</h6> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
` |
|||
document.getElementById("Section_VIP_buttons").insertAdjacentHTML("beforeend", vip_select); |
|||
$(`#Section_VIP_buttons_${price_array[select][4]}`).click(async function(ev) { |
|||
ev.preventDefault(); |
|||
document.getElementById('Modal_SelectPayMethod_QIWI_Button').href = QIWI_TRADE.replace("(AMOUNT)", price_array[select][1]).replace("(COMMENT)",data.steamids.steam2.replace(":","%3A")); |
|||
document.getElementById('Modal_SelectPayMethod_QIWI_Value').innerHTML = `${price_array[select][1]} Рублей`; |
|||
document.getElementById('Modal_SelectPayMethod_STEAM_Button').href = STEAM_TRADE; |
|||
document.getElementById('Modal_SelectPayMethod_STEAM_Value').innerHTML = price_array[select][2]; |
|||
$('#Modal_SelectPayMethod').modal('show'); |
|||
return false; |
|||
}); |
|||
} |
|||
} |
|||
|
|||
/* |
|||
//Section_VIP_buttons
|
|||
let vip_select_sample = ` |
|||
<div class="col"> |
|||
<div class="card"> |
|||
<img class="card-img" src="site_content/images/vip/VIP_1_MOUNTH.jpg" alt="Вип на месяц"> |
|||
<div class="card-img-overlay d-flex flex-column" style="background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.02), rgba(0, 0, 0, 0.7))"> |
|||
<a href="#" class="stretched-link" id="Section_VIP_buttons_month"></a> |
|||
<div class="mt-auto"> |
|||
<h5 class="vip-card-text">VIP (1 месяц)</h5> |
|||
<hr class="vip-card-text"> |
|||
<h6 class="vip-card-text">150 Рублей</h6> |
|||
<h6 class="vip-card-text">1 Ключ</h6> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
`;
|
|||
|
|||
|
|||
$('#Section_VIP_buttons_month').click(async function(ev) { |
|||
ev.preventDefault(); |
|||
console.log("vip button presed"); |
|||
document.getElementById('Modal_SelectPayMethod_QIWI_Button').href = QIWI_TRADE; |
|||
document.getElementById('Modal_SelectPayMethod_QIWI_Value').innerHTML = "150 Рублей"; |
|||
document.getElementById('Modal_SelectPayMethod_STEAM_Button').href = STEAM_TRADE; |
|||
document.getElementById('Modal_SelectPayMethod_STEAM_Value').innerHTML = "1 Ключ"; |
|||
$('#Modal_SelectPayMethod').modal('show'); |
|||
return false; |
|||
}); |
|||
*/ |
|||
|
|||
//secret egg
|
|||
let konami_code = ""; |
|||
let activated = false; |
|||
document.addEventListener('keypress', (event) => { |
|||
if(activated){return;} |
|||
|
|||
konami_code += event.key; |
|||
if(konami_code.length == 6 || event.key == "-"){ |
|||
if(konami_code == "nigger"){ |
|||
activated = true; |
|||
document.getElementById("Tab_About").href="#SecretEgg"; |
|||
$('.nav-pills a[href="#SecretEgg"]').tab('show'); |
|||
(new Audio("site_content/sounds/sunboy-ledi-night-16.mp3")).play(); |
|||
document.getElementById("Nav_MenuButtons").remove() |
|||
ChangeBackgoundImage("site_content/images/background/hasbik_dance.jpg"); |
|||
//$('Tab_Secret_Egg').click();
|
|||
} |
|||
konami_code = "" |
|||
} |
|||
}); |