mirror of
https://github.com/LowderPlay/cheburcheck.git
synced 2026-10-03 20:28:02 +03:00
173 lines
7.1 KiB
Plaintext
173 lines
7.1 KiB
Plaintext
{% extends 'base' %}
|
||
|
||
{% block content %}
|
||
{% include 'search-form' %}
|
||
|
||
{% set warning = whitelist and not domain %}
|
||
|
||
<div class="result-panel {% if warning %}whitelist-theme{% elif found %}blocked-theme{% else %}clean-theme{% endif %}">
|
||
<div class="result-header">
|
||
<div class="icon-box status-icon">
|
||
{% if whitelist %}
|
||
<i data-lucide="shield-alert" width="32" height="32"></i>
|
||
{% elif blocked %}
|
||
<i data-lucide="shield-x" width="32" height="32"></i>
|
||
{% else %}
|
||
<i data-lucide="shield-check" width="32" height="32"></i>
|
||
{% endif %}
|
||
</div>
|
||
{% if warning %}
|
||
<div>
|
||
<h2>Белый список</h2>
|
||
<p class="subheading text-sm">
|
||
Ресурс находится в белом списке
|
||
</p>
|
||
</div>
|
||
{% elif found %}
|
||
<div>
|
||
<h2>Заблокирован</h2>
|
||
<p class="subheading text-sm">Ресурс был найден в списках блокировок</p>
|
||
</div>
|
||
{% else %}
|
||
<div>
|
||
<h2>Доступен</h2>
|
||
<p class="subheading text-sm">Ограничений не обнаружено</p>
|
||
</div>
|
||
{% endif %}
|
||
|
||
</div>
|
||
|
||
<div class="target-info">
|
||
<div class="target-info-label">{{ target_type }}:</div>
|
||
<div class="target-value target-display">{{ target }}</div>
|
||
</div>
|
||
|
||
<div class="details-grid">
|
||
<div class="detail-section">
|
||
<h3 class="section-title">Сетевые данные</h3>
|
||
<div class="detail-row">
|
||
<span class="row-label">IP-адреса</span>
|
||
<div>
|
||
{% for ip in ips %}
|
||
<p class="row-value">{{ ip }}</p>
|
||
{% endfor %}
|
||
</div>
|
||
</div>
|
||
<div class="detail-row">
|
||
<span class="row-label">Хостинг / ISP</span>
|
||
<span class="row-value">{% if geo.organisation %}{{ geo.organisation }}{% else %}-{% endif %}</span>
|
||
</div>
|
||
<div class="detail-row">
|
||
<span class="row-label">Локация</span>
|
||
<span class="row-value">{{ geo.location }}</span>
|
||
</div>
|
||
<div class="detail-row">
|
||
<span class="row-label">ASN</span>
|
||
<span class="row-value">{% if geo.asn %}{{ geo.asn }}{% else %}-{% endif %}</span>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="detail-section">
|
||
<h3 class="reason-header">Нахождение в списках</h3>
|
||
<div class="detail-row">
|
||
<span class="row-label">CDN</span>
|
||
{% if providers %}
|
||
<p class="row-value alert">НАЙДЕН</p>
|
||
{% else %}
|
||
<span class="row-value">Не найден</span>
|
||
{% endif %}
|
||
</div>
|
||
{% if providers %}
|
||
{% for provider, networks in providers %}
|
||
<div class="detail-row">
|
||
<span class="row-label">{{ provider }}</span>
|
||
<div>
|
||
{% for network in networks %}
|
||
<p class="row-value">{{ network.cidr }}</p>
|
||
{% endfor %}
|
||
</div>
|
||
</div>
|
||
{% endfor %}
|
||
{% endif %}
|
||
|
||
{% if whitelist %}
|
||
<div class="detail-row">
|
||
<a href="/kb/whitelist" class="row-label">Белый список (?)</a>
|
||
<span class="row-value success">
|
||
НАЙДЕН - <span class="hint"
|
||
title="Дата последнего сканирования, когда данный домен был найден в белом списке">
|
||
<script>
|
||
document.write(new Date("{{ whitelist.last_ok }}").toLocaleDateString());
|
||
</script>
|
||
</span>
|
||
</span>
|
||
</div>
|
||
{% endif %}
|
||
|
||
<div class="detail-row">
|
||
<span class="row-label">Реестр РКН</span>
|
||
|
||
{% if domain %}
|
||
<span class="row-value alert">ОГРАНИЧЕН</span>
|
||
{% elif blocked_subnets %}
|
||
<span class="row-value alert hint"
|
||
title="Адреса пересекаются с подсетями заблокированных доменов (не гарантирует блокировку)">
|
||
IP-АДРЕСА
|
||
</span>
|
||
{% else %}
|
||
<span class="row-value">Не найден</span>
|
||
{% endif %}
|
||
</div>
|
||
|
||
{% if domain %}
|
||
<div class="detail-row">
|
||
<span class="row-label">Заблокированный домен</span>
|
||
<span class="row-value">{{ domain }}</span>
|
||
</div>
|
||
{% endif %}
|
||
{% if blocked_subnets %}
|
||
<div class="detail-row">
|
||
<span class="row-label">Заблокированные подсети</span>
|
||
<div>
|
||
{% for network in blocked_subnets %}
|
||
<p class="row-value">{{ network }}</p>
|
||
{% endfor %}
|
||
</div>
|
||
</div>
|
||
{% endif %}
|
||
</div>
|
||
</div>
|
||
<div class="user-feedback-section">
|
||
<p class="feedback-prompt">У вас работает этот ресурс?</p>
|
||
<div class="feedback-buttons">
|
||
<button class="feedback-btn feedback-works" onclick="sendFeedback(true)">
|
||
<i data-lucide="thumbs-up" width="16" height="16"></i>
|
||
Работает
|
||
</button>
|
||
<button class="feedback-btn feedback-not-works" onclick="sendFeedback(false)">
|
||
<i data-lucide="thumbs-down" width="16" height="16"></i>
|
||
Не работает
|
||
</button>
|
||
</div>
|
||
<div class="feedback-status hidden">
|
||
<i data-lucide="thumbs-up" width="16" height="16"></i>
|
||
<span>Спасибо за ваш отзыв!</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<script>
|
||
function sendFeedback(works) {
|
||
document.querySelector('.feedback-buttons').classList.add('hidden');
|
||
document.querySelector('.feedback-prompt').classList.add('hidden');
|
||
document.querySelector('.feedback-status').classList.remove('hidden');
|
||
|
||
fetch(`/feedback/{{ id }}/${works}`, {
|
||
method: 'POST',
|
||
});
|
||
}
|
||
</script>
|
||
|
||
|
||
{% endblock content %}
|