Files
michaelschiemer/scripts/debug/qr-test-all.html
Michael Schiemer 36ef2a1e2c
Some checks failed
🚀 Build & Deploy Image / Determine Build Necessity (push) Failing after 10m14s
🚀 Build & Deploy Image / Build Runtime Base Image (push) Has been skipped
🚀 Build & Deploy Image / Build Docker Image (push) Has been skipped
🚀 Build & Deploy Image / Run Tests & Quality Checks (push) Has been skipped
🚀 Build & Deploy Image / Auto-deploy to Staging (push) Has been skipped
🚀 Build & Deploy Image / Auto-deploy to Production (push) Has been skipped
Security Vulnerability Scan / Check for Dependency Changes (push) Failing after 11m25s
Security Vulnerability Scan / Composer Security Audit (push) Has been cancelled
fix: Gitea Traefik routing and connection pool optimization
- Remove middleware reference from Gitea Traefik labels (caused routing issues)
- Optimize Gitea connection pool settings (MAX_IDLE_CONNS=30, authentication_timeout=180s)
- Add explicit service reference in Traefik labels
- Fix intermittent 504 timeouts by improving PostgreSQL connection handling

Fixes Gitea unreachability via git.michaelschiemer.de
2025-11-09 14:46:15 +01:00

283 lines
10 KiB
HTML

<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>QR Code Test - Alle Versionen</title>
<style>
body {
font-family: system-ui, sans-serif;
max-width: 1400px;
margin: 0 auto;
padding: 20px;
background: #f5f5f5;
}
h1 {
color: #333;
border-bottom: 3px solid #007bff;
padding-bottom: 10px;
}
.status {
background: #fff3cd;
border-left: 4px solid #ffc107;
padding: 15px;
margin: 20px 0;
}
.grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
gap: 20px;
margin: 30px 0;
}
.card {
background: white;
border-radius: 8px;
padding: 20px;
box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}
.card h3 {
margin-top: 0;
color: #007bff;
font-size: 16px;
}
.qr-container {
background: #fff;
border: 2px solid #dee2e6;
border-radius: 4px;
padding: 20px;
display: flex;
justify-content: center;
align-items: center;
min-height: 300px;
}
.qr-container img {
max-width: 100%;
height: auto;
image-rendering: pixelated;
}
.info {
margin-top: 15px;
font-size: 13px;
color: #666;
}
.info-item {
display: flex;
justify-content: space-between;
padding: 5px 0;
border-bottom: 1px solid #eee;
}
.label {
font-weight: 600;
}
.badge {
display: inline-block;
padding: 3px 8px;
border-radius: 3px;
font-size: 11px;
font-weight: bold;
}
.badge-primary { background: #007bff; color: white; }
.badge-success { background: #28a745; color: white; }
.badge-warning { background: #ffc107; color: black; }
.section {
margin: 40px 0;
}
.section-title {
font-size: 20px;
color: #495057;
margin-bottom: 20px;
padding-bottom: 10px;
border-bottom: 2px solid #dee2e6;
}
</style>
</head>
<body>
<h1>🔍 QR Code Scanner Test - Alle Versionen</h1>
<div class="status">
<strong>⚠️ Test-Anleitung:</strong><br>
Scanne jeden QR-Code einzeln mit deiner Smartphone-Kamera oder QR-Scanner-App.
Notiere, welche (wenn überhaupt) erfolgreich gescannt werden können.
</div>
<div class="section">
<div class="section-title">🎯 Nach Format Info Fix (Neueste)</div>
<div class="grid">
<div class="card">
<h3>Perfect Pixel PNG</h3>
<div class="qr-container">
<img src="qrcode-perfect-pixel.png" alt="Perfect Pixel QR">
</div>
<div class="info">
<div class="info-item">
<span class="label">Data:</span>
<span>HELLO WORLD</span>
</div>
<div class="info-item">
<span class="label">Size:</span>
<span>580x580px</span>
</div>
<div class="info-item">
<span class="label">Module Size:</span>
<span>20px</span>
</div>
<div class="info-item">
<span class="label">Mask:</span>
<span class="badge badge-primary">Pattern 2</span>
</div>
<div class="info-item">
<span class="label">Features:</span>
<span class="badge badge-success">No Compression</span>
<span class="badge badge-success">Format Info Fixed</span>
</div>
</div>
</div>
<div class="card">
<h3>Fixed - HELLO WORLD</h3>
<div class="qr-container">
<img src="qrcode-fixed-hello.png" alt="Fixed Hello">
</div>
<div class="info">
<div class="info-item">
<span class="label">Data:</span>
<span>HELLO WORLD</span>
</div>
<div class="info-item">
<span class="label">Size:</span>
<span>580x580px</span>
</div>
<div class="info-item">
<span class="label">Features:</span>
<span class="badge badge-success">Format Info NOT Masked</span>
</div>
</div>
</div>
<div class="card">
<h3>Fixed - GitHub URL</h3>
<div class="qr-container">
<img src="qrcode-fixed-github.png" alt="Fixed GitHub">
</div>
<div class="info">
<div class="info-item">
<span class="label">Data:</span>
<span>https://github.com</span>
</div>
<div class="info-item">
<span class="label">Size:</span>
<span>580x580px</span>
</div>
<div class="info-item">
<span class="label">Features:</span>
<span class="badge badge-success">Format Info NOT Masked</span>
</div>
</div>
</div>
</div>
</div>
<div class="section">
<div class="section-title">📏 Größenvariationen</div>
<div class="grid">
<div class="card">
<h3>Ultra Large (20px modules)</h3>
<div class="qr-container">
<img src="qrcode-ultra-large.png" alt="Ultra Large">
</div>
<div class="info">
<div class="info-item">
<span class="label">Data:</span>
<span>HELLO WORLD</span>
</div>
<div class="info-item">
<span class="label">Size:</span>
<span>580x580px</span>
</div>
</div>
</div>
<div class="card">
<h3>Extra Quiet Zone (8 modules)</h3>
<div class="qr-container">
<img src="qrcode-extra-quiet.png" alt="Extra Quiet">
</div>
<div class="info">
<div class="info-item">
<span class="label">Data:</span>
<span>HELLO WORLD</span>
</div>
<div class="info-item">
<span class="label">Size:</span>
<span>740x740px</span>
</div>
<div class="info-item">
<span class="label">Quiet Zone:</span>
<span class="badge badge-warning">8 Modules (Doppelt)</span>
</div>
</div>
</div>
<div class="card">
<h3>Standard (10px modules)</h3>
<div class="qr-container">
<img src="qrcode-hello-world.png" alt="Standard Hello">
</div>
<div class="info">
<div class="info-item">
<span class="label">Data:</span>
<span>HELLO WORLD</span>
</div>
<div class="info-item">
<span class="label">Size:</span>
<span>290x290px</span>
</div>
</div>
</div>
</div>
</div>
<div class="section">
<div class="section-title">📊 Technische Details</div>
<div style="background: white; padding: 20px; border-radius: 8px;">
<h3>Implementierte Features:</h3>
<ul>
<li>✅ Reed-Solomon Error Correction (Level M)</li>
<li>✅ Automatic Mask Pattern Selection</li>
<li>✅ Format Information (NOT masked - FIXED!)</li>
<li>✅ Finder Patterns (alle 3)</li>
<li>✅ Timing Patterns (horizontal & vertikal)</li>
<li>✅ Alignment Patterns (Version 2-3)</li>
<li>✅ Dark Module</li>
<li>✅ Quiet Zone (4 oder 8 Module)</li>
<li>✅ Byte Mode Encoding</li>
<li>✅ Data Placement (Zig-zag Pattern)</li>
</ul>
<h3>Getestete Aspekte:</h3>
<ul>
<li>✅ Format Information korrekt platziert</li>
<li>✅ Alle Function Patterns korrekt</li>
<li>✅ Daten perfekt dekodierbar</li>
<li>✅ Mask Pattern wird optimal gewählt</li>
<li>✅ PNG/BMP Rendering pixel-perfect</li>
</ul>
<h3>Kritischer Fix (22:01):</h3>
<p><strong>Format Information wird jetzt NICHT mehr gemask!</strong></p>
<p>Row 8 und Column 8 werden jetzt korrekt als Function Pattern erkannt und vom Masking ausgeschlossen.</p>
</div>
</div>
<div style="margin-top: 40px; padding: 20px; background: #d1ecf1; border-left: 4px solid #0c5460; border-radius: 4px;">
<h3 style="margin-top: 0;">🧪 Nächste Schritte:</h3>
<p>Wenn <strong>KEINER</strong> dieser QR-Codes scanbar ist, müssen wir:</p>
<ol>
<li>Einen bekannten funktionierenden QR-Code Generator als Referenz verwenden</li>
<li>Bit-für-Bit Vergleich durchführen</li>
<li>Möglicherweise liegt ein grundlegender Fehler in der Data Placement Logik vor</li>
</ol>
</div>
</body>
</html>