mirror of
https://github.com/zvx-echo6/recon.git
synced 2026-05-20 06:34:40 +02:00
Initial commit: RECON codebase baseline
Current state of the pipeline code as of 2026-04-14 (Phase 1 scaffolding complete). Config has new_pipeline.enabled=false and crawler.sites=[] per refactor plan. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
commit
563c16bb71
59 changed files with 18327 additions and 0 deletions
53
templates/peertube/channels.html
Normal file
53
templates/peertube/channels.html
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
{% extends "base.html" %}
|
||||
{% block content %}
|
||||
<h3 class="section-title mb-16">PeerTube Channels</h3>
|
||||
|
||||
<div class="stat-grid" id="pt-stats" style="margin-bottom:24px;">
|
||||
<div class="stat-card"><div class="value" id="pt-total-ch">—</div><div class="label">Channels</div></div>
|
||||
<div class="stat-card"><div class="value" id="pt-total-vid">—</div><div class="label">Videos</div></div>
|
||||
<div class="stat-card"><div class="value" id="pt-dl-status">—</div><div class="label">Downloader</div></div>
|
||||
</div>
|
||||
|
||||
<div class="panel">
|
||||
<div class="flex gap-8" style="flex-wrap:wrap;align-items:flex-end;margin-bottom:12px;">
|
||||
<div style="flex:1;min-width:250px;">
|
||||
<label class="text-dim text-xs" style="text-transform:uppercase;display:block;margin-bottom:4px;">YouTube URL</label>
|
||||
<input type="text" id="pt-yt-url" class="search-box" placeholder="https://www.youtube.com/@ChannelName" style="margin-bottom:0;width:100%;">
|
||||
</div>
|
||||
<div style="min-width:150px;">
|
||||
<label class="text-dim text-xs" style="text-transform:uppercase;display:block;margin-bottom:4px;">Category</label>
|
||||
<input type="text" id="pt-category" list="pt-cat-list" class="search-box" placeholder="e.g. OPSEC/Privacy" style="margin-bottom:0;width:100%;">
|
||||
<datalist id="pt-cat-list"></datalist>
|
||||
</div>
|
||||
<div style="min-width:60px;">
|
||||
<label class="text-dim text-xs" style="text-transform:uppercase;display:block;margin-bottom:4px;">Priority</label>
|
||||
<select id="pt-priority" style="background:#0a0a0a;border:1px solid #333;color:#c0c0c0;padding:6px 10px;font-family:inherit;font-size:12px;width:100%;">
|
||||
<option value="M">M</option>
|
||||
<option value="H">H</option>
|
||||
<option value="L">L</option>
|
||||
</select>
|
||||
</div>
|
||||
<button class="btn" id="pt-add-btn" onclick="addChannel()">Add Channel</button>
|
||||
</div>
|
||||
<div id="pt-feedback" style="font-size:12px;min-height:18px;"></div>
|
||||
</div>
|
||||
|
||||
<div style="background:#111;border:1px solid #222;overflow-x:auto;">
|
||||
<table style="width:100%;border-collapse:collapse;font-size:12px;" id="pt-channel-table">
|
||||
<thead>
|
||||
<tr style="border-bottom:1px solid #222;">
|
||||
<th style="text-align:left;padding:10px;">Channel</th>
|
||||
<th style="text-align:center;padding:10px;">Videos</th>
|
||||
<th style="text-align:left;padding:10px;">Category</th>
|
||||
<th style="text-align:center;padding:10px;">Pri</th>
|
||||
<th style="text-align:center;padding:10px;">Status</th>
|
||||
<th style="text-align:center;padding:10px;width:60px;"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="pt-channel-tbody"><tr><td colspan="6" style="text-align:center;padding:20px;color:#555;">Loading...</td></tr></tbody>
|
||||
</table>
|
||||
</div>
|
||||
{% endblock %}
|
||||
{% block scripts %}
|
||||
<script src="/static/js/channels.js"></script>
|
||||
{% endblock %}
|
||||
53
templates/peertube/dashboard.html
Normal file
53
templates/peertube/dashboard.html
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
{% extends "base.html" %}
|
||||
{% block content %}
|
||||
<div id="pt-dashboard">
|
||||
<div class="stat-grid" style="grid-template-columns:repeat(6, 1fr);">
|
||||
<div class="stat-card"><div class="label">Published</div><div class="value" id="pt-published">—</div></div>
|
||||
<div class="stat-card"><div class="label">In Pipeline</div><div class="value" id="pt-in-pipeline">—</div></div>
|
||||
<div class="stat-card"><div class="label">Failed</div><div class="value" id="pt-failed">—</div></div>
|
||||
<div class="stat-card"><div class="label">Import Rate</div><div class="value" id="pt-import-rate">—</div><div class="sublabel">/hour</div></div>
|
||||
<div class="stat-card"><div class="label">GPU Util</div><div class="value" id="pt-gpu-util">—</div><div class="sublabel">%</div></div>
|
||||
<div class="stat-card"><div class="label">GPU Temp</div><div class="value" id="pt-gpu-temp">—</div><div class="sublabel">°C</div></div>
|
||||
</div>
|
||||
|
||||
<div class="mb-24">
|
||||
<div class="flex-between" style="margin-bottom:4px;font-size:11px;color:#888;">
|
||||
<span>Pipeline Flow</span>
|
||||
<span id="pt-pipeline-summary"></span>
|
||||
</div>
|
||||
<div id="pt-pipeline-bar" class="pipeline-bar"></div>
|
||||
<div id="pt-pipeline-legend" class="pipeline-legend"></div>
|
||||
</div>
|
||||
|
||||
<div class="svc-row">
|
||||
<div class="svc-item"><span class="svc-dot unknown" id="svc-downloader"></span>Downloader</div>
|
||||
<div class="svc-item"><span class="svc-dot unknown" id="svc-importer"></span>Importer</div>
|
||||
<div class="svc-item"><span class="svc-dot unknown" id="svc-transcoder"></span>Transcoder</div>
|
||||
<div class="svc-item"><span class="svc-dot unknown" id="svc-runner"></span>Runner</div>
|
||||
</div>
|
||||
|
||||
<div id="pt-gpu-panel" class="panel" style="display:none;">
|
||||
<h3 class="section-title" style="margin-bottom:8px;">GPU Status</h3>
|
||||
<div id="pt-gpu-detail" class="text-small text-muted"></div>
|
||||
</div>
|
||||
|
||||
<div id="pt-chart-container" class="panel" style="display:none;">
|
||||
<h3 class="section-title" style="margin-bottom:8px;">Pipeline Activity (24h)</h3>
|
||||
<canvas id="pt-chart" width="800" height="200" style="width:100%;height:200px;"></canvas>
|
||||
</div>
|
||||
|
||||
<div id="pt-storage" class="panel">
|
||||
<h3 class="section-title" style="margin-bottom:12px;">Pipeline Storage</h3>
|
||||
<div id="pt-storage-content" class="text-small text-muted">Loading...</div>
|
||||
</div>
|
||||
|
||||
<details id="pt-errors-panel" class="errors-panel panel">
|
||||
<summary>Recent Errors (<span id="pt-error-count">0</span>)</summary>
|
||||
<div id="pt-errors-content" style="margin-top:8px;"></div>
|
||||
</details>
|
||||
</div>
|
||||
{% endblock %}
|
||||
{% block scripts %}
|
||||
<script src="/static/js/charts.js"></script>
|
||||
<script src="/static/js/peertube.js"></script>
|
||||
{% endblock %}
|
||||
Loading…
Add table
Add a link
Reference in a new issue