Initial commit: UV-K5 firmware site with flasher

This commit is contained in:
ua1zbe
2026-04-16 15:11:33 +03:00
commit e461752581
1426 changed files with 261828 additions and 0 deletions

32
templates/base.html Normal file
View File

@@ -0,0 +1,32 @@
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{% block title %}UV-K5 Firmware{% endblock %} - UA1ZBE</title>
<link rel="stylesheet" href="{{ url_for('static', filename='css/style.css') }}">
</head>
<body>
<header>
<div class="container">
<h1>UV-K5 Firmware</h1>
<nav>
<a href="{{ url_for('index') }}">Главная</a>
<a href="{{ url_for('downloads') }}">Загрузки</a>
<a href="{{ url_for('flasher') }}">Прошивка</a>
<a href="{{ url_for('docs') }}">Документация</a>
<a href="{{ url_for('info') }}">Информация</a>
</nav>
</div>
</header>
<main>
{% block content %}{% endblock %}
</main>
<footer>
<p>UV-K5 Open Firmware by UA1ZBE &copy; 2026</p>
<p>Прошивка для радиостанции UV-K5 (K5, K4, K6)</p>
</footer>
</body>
</html>

17
templates/doc_page.html Normal file
View File

@@ -0,0 +1,17 @@
{% extends "base.html" %}
{% block title %}{{ title }}{% endblock %}
{% block content %}
<div class="card">
<h2>{{ title }}</h2>
</div>
<div class="card">
<a href="{{ url_for('docs') }}">&larr; К списку документации</a>
</div>
<div class="card markdown-content">
{{ content|safe }}
</div>
{% endblock %}

17
templates/docs_list.html Normal file
View File

@@ -0,0 +1,17 @@
{% extends "base.html" %}
{% block title %}Документация{% endblock %}
{% block content %}
<div class="card">
<h2>Документация</h2>
</div>
<div class="card">
<ul class="doc-list">
{% for page_id, page_title in pages.items() %}
<li><a href="{{ url_for('doc_page', page=page_id) }}">{{ page_title }}</a></li>
{% endfor %}
</ul>
</div>
{% endblock %}

46
templates/downloads.html Normal file
View File

@@ -0,0 +1,46 @@
{% extends "base.html" %}
{% block title %}Загрузки{% endblock %}
{% block content %}
<div class="card">
<h2>Загрузки прошивок</h2>
<p>Скачайте последнюю версию прошивки для вашей радиостанции</p>
</div>
<div class="card">
<h3>Последняя версия</h3>
<table class="downloads">
<thead>
<tr>
<th>Версия</th>
<th>Дата</th>
<th>Размер</th>
<th>Файл</th>
</tr>
</thead>
<tbody>
{% for release in releases %}
<tr>
<td>
<span class="release-version">{{ release.version }}</span>
{% if loop.first %}
<span class="version-badge">LATEST</span>
{% endif %}
</td>
<td>{{ release.date }}</td>
<td>{{ release.size }}</td>
<td>
<a href="{{ url_for('download', filename=release.filename) }}" class="btn">Скачать</a>
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
<div class="card">
<h3>История изменений</h3>
<div class="changelog">{{ releases[0].changelog }}</div>
</div>
{% endblock %}

34
templates/flasher.html Normal file
View File

@@ -0,0 +1,34 @@
{% extends "base.html" %}
{% block title %}Прошивка{% endblock %}
{% block content %}
<div class="card hero">
<h2>Flasher</h2>
<p>Загрузка прошивки на радиостанцию</p>
</div>
<div class="card">
<h3>Выберите файл прошивки</h3>
<input type="file" id="firmwareFile" accept=".bin">
<div id="fileInfo"></div>
</div>
<div class="card">
<button id="flashBtn" class="btn btn-download" disabled>Прошить устройство</button>
<div id="status"></div>
</div>
<div class="card">
<h3>Инструкция</h3>
<ol>
<li>Выберите файл прошивки .bin</li>
<li>Подключите радиостанцию к компьютеру</li>
<li>Нажмите "Прошить устройство"</li>
<li>Дождитесь завершения</li>
</ol>
<p class="note">Основано на <a href="https://github.com/whosmatt/uvmod">https://github.com/whosmatt/uvmod</a></p>
</div>
<script src="{{ url_for('static', filename='js/flasher.js') }}"></script>
{% endblock %}

63
templates/index.html Normal file
View File

@@ -0,0 +1,63 @@
{% extends "base.html" %}
{% block title %}Главная{% endblock %}
{% block content %}
<div class="card hero">
<h2>UV-K5 Open Firmware</h2>
<p>Альтернативная прошивка для радиостанций UV-K5, K4, K6 и их клонов с расширенным функционалом</p>
<a href="{{ url_for('downloads') }}" class="btn btn-download">
<span>Скачать прошивку</span>
</a>
</div>
<div class="card">
<h3>Последняя версия: {{ latest.version }}</h3>
<p class="release-date">Дата: {{ latest.date }} | Размер: {{ latest.size }}</p>
<div class="feature-tags">
{% for feature in latest.features %}
<span class="tag">{{ feature }}</span>
{% endfor %}
</div>
</div>
<div class="card">
<h3>Возможности прошивки</h3>
<div class="features-grid">
<div class="feature-item">
<h3>FM Радио</h3>
<p>Встроенный FM-приёмник 88-108 МГц</p>
</div>
<div class="feature-item">
<h3>Анализатор спектра</h3>
<p>Сканирование эфира и отображение сигналов</p>
</div>
<div class="feature-item">
<h3>Расширенный RX</h3>
<p>Приём от 50 до 10800 МГц</p>
</div>
<div class="feature-item">
<h3>RSSI индикатор</h3>
<p>Отображение уровня сигнала на экране</p>
</div>
<div class="feature-item">
<h3>POCSAG</h3>
<p>Декодирование POCSAG пейджинга</p>
</div>
<div class="feature-item">
<h3>DCS/CTCSS</h3>
<p>Полная поддержка DCS/CTCSS кодов</p>
</div>
</div>
</div>
<div class="card">
<h3>Поддерживаемые модели</h3>
<ul>
<li>UV-K5 / K4 / K6</li>
<li>Baofeng K5 (K5 Plus)</li>
<li>Luiton LT-7255</li>
<li>П compatible devices</li>
</ul>
</div>
{% endblock %}

29
templates/info.html Normal file
View File

@@ -0,0 +1,29 @@
{% extends "base.html" %}
{% block title %}Информация{% endblock %}
{% block content %}
<div class="card">
<h2>Информация о проекте</h2>
</div>
<div class="card">
<h3>О прошивке</h3>
<p>UV-K5 Open Firmware - альтернативная прошивка с открытым исходным кодом для радиостанций UV-K5 и совместимых моделей.</p>
</div>
<div class="card">
<h3>Автор</h3>
<p>UA1ZBE</p>
</div>
<div class="card">
<h3>Версия</h3>
<p>v1.0-beta (12.04.2026)</p>
</div>
<div class="card">
<h3>Отказ от ответственности</h3>
<p>Прошивка устанавливается на свой страх и риск. Автор не несёт ответственности за возможные повреждения устройства.</p>
</div>
{% endblock %}