# Optional: log download request (serial, IP) return send_file( file_path, as_attachment=True, download_name=LATEST_FILE, mimetype='application/octet-stream' ) @app.route('/api/verify', methods=['POST']) def verify_md5(): data = request.get_json() uploaded_md5 = data.get("md5", "").strip() return jsonify({"match": uploaded_md5 == MD5_HASH})
loadVersion(); </script> </body> </html> solid8181-updater/ ├── app.py ├── firmware/ │ └── solid8181_fw_v2.1.4.bin ├── static/ │ └── index.html └── requirements.txt requirements.txt
@app.route('/api/version', methods=['GET']) def get_version(): return jsonify({ "model": "Solid 8181", "latest_version": LATEST_VERSION, "current_stable": LATEST_VERSION, "release_date": "2025-03-20" })
@app.route('/api/download', methods=['GET']) def download_firmware(): file_path = os.path.join(FW_DIR, LATEST_FILE) if not os.path.exists(file_path): return jsonify({"error": "Firmware not found"}), 404
document.getElementById('downloadBtn').addEventListener('click', () => { const statusDiv = document.getElementById('status'); statusDiv.innerHTML = 'Starting download...'; // Trigger file download const link = document.createElement('a'); link.href = '/api/download'; link.download = ''; document.body.appendChild(link); link.click(); document.body.removeChild(link); statusDiv.innerHTML = '<span class="success">Download started. Check your Downloads folder.</span>'; });
Solid 8181 Set-top Box Software Download Link
# Optional: log download request (serial, IP) return send_file( file_path, as_attachment=True, download_name=LATEST_FILE, mimetype='application/octet-stream' ) @app.route('/api/verify', methods=['POST']) def verify_md5(): data = request.get_json() uploaded_md5 = data.get("md5", "").strip() return jsonify({"match": uploaded_md5 == MD5_HASH})
loadVersion(); </script> </body> </html> solid8181-updater/ ├── app.py ├── firmware/ │ └── solid8181_fw_v2.1.4.bin ├── static/ │ └── index.html └── requirements.txt requirements.txt Solid 8181 Set-top Box Software Download
@app.route('/api/version', methods=['GET']) def get_version(): return jsonify({ "model": "Solid 8181", "latest_version": LATEST_VERSION, "current_stable": LATEST_VERSION, "release_date": "2025-03-20" }) # Optional: log download request (serial, IP) return
@app.route('/api/download', methods=['GET']) def download_firmware(): file_path = os.path.join(FW_DIR, LATEST_FILE) if not os.path.exists(file_path): return jsonify({"error": "Firmware not found"}), 404 # Optional: log download request (serial
document.getElementById('downloadBtn').addEventListener('click', () => { const statusDiv = document.getElementById('status'); statusDiv.innerHTML = 'Starting download...'; // Trigger file download const link = document.createElement('a'); link.href = '/api/download'; link.download = ''; document.body.appendChild(link); link.click(); document.body.removeChild(link); statusDiv.innerHTML = '<span class="success">Download started. Check your Downloads folder.</span>'; });