Skip to content

Commit 01ec00e

Browse files
committed
untested - specific firmware update path
1 parent ee7119f commit 01ec00e

File tree

2 files changed

+61
-55
lines changed

2 files changed

+61
-55
lines changed

.github/workflows/ci.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -396,5 +396,5 @@ jobs:
396396
with:
397397
upload_url: ${{ steps.create_release.outputs.upload_url }}
398398
asset_path: ./bin/.pio/build/obspro/firmware.bin
399-
asset_name: obspro-firmware.bin
399+
asset_name: firmware-obspro.bin
400400
asset_content_type: application/x-esp32

src/configServer.cpp

+60-54
Original file line numberDiff line numberDiff line change
@@ -245,60 +245,66 @@ static const char* const backupIndex =
245245
"<input type='button' onclick=\"window.location.href='/settings/backup.json'\" class=btn value='Download' />"
246246
"<h3>Restore</h3>";
247247

248-
static const char* const updateSdIndex = R""""(
249-
<p>{description}</p>
250-
<h3>From Github (preferred)</h3>
251-
List also pre-releases<br><input type='checkbox' id='preReleases' onchange='selectFirmware()'>
252-
Ignore TLS Errors (see documentation)<br><input type='checkbox' id='ignoreSSL' onchange='selectFirmware()'>
253-
<script>
254-
let availableReleases;
255-
async function updateFirmwareList() {
256-
(await fetch('{releaseApiUrl}')).json().then(res => {
257-
availableReleases = res;
258-
selectFirmware();
259-
})
260-
}
261-
function selectFirmware() {
262-
const displayPreReleases = (document.getElementById('preReleases').checked == true);
263-
const ignoreSSL = (document.getElementById('ignoreSSL').checked == true);
264-
url = "";
265-
version = "";
266-
availableReleases.filter(r => displayPreReleases || !r.prerelease).forEach(release => {
267-
release.assets.filter(asset => asset.name.endsWith(".bin")).forEach(
268-
asset => {
269-
if (!url) {
270-
version = release.name;
271-
url = asset.browser_download_url;
272-
}
273-
}
274-
)
275-
}
276-
)
277-
if (url) {
278-
document.getElementById('version').value = "Update to " + version;
279-
document.getElementById('version').disabled = false;
280-
document.getElementById('downloadUrl').value = url;
281-
document.getElementById('directlink').href = url;
282-
} else {
283-
document.getElementById('version').value = "No version found";
284-
document.getElementById('version').disabled = true;
285-
document.getElementById('downloadUrl').value = "";
286-
document.getElementById('directlink').href = "";
287-
}
288-
if (ignoreSSL) {
289-
document.getElementById('unsafe').value = "1";
290-
} else {
291-
document.getElementById('unsafe').value = "0";
292-
}
293-
}
294-
updateFirmwareList();
295-
</script>
296-
<input type='hidden' name='downloadUrl' id='downloadUrl' value=''/>
297-
<input type='hidden' name='unsafe' id='unsafe' value='0'/>
298-
<input type='submit' name='version' id='version' class=btn value='Update' />
299-
If the upgrade via the button above does not work<br/><a id="directlink" href="">download firmware.bin</a><br/> and upload manually below.
300-
<h3>File Upload</h3>
301-
)"""";
248+
static const char* const updateSdIndex =
249+
"<p>{description}</p>\n"
250+
"<h3>From Github (preferred)</h3>\n"
251+
"List also pre-releases<br><input type='checkbox' id='preReleases' onchange='selectFirmware()'>\n"
252+
"Ignore TLS Errors (see documentation)<br><input type='checkbox' id='ignoreSSL' onchange='selectFirmware()'>\n"
253+
"<script>\n"
254+
"let availableReleases;\n"
255+
"async function updateFirmwareList() {\n"
256+
" (await fetch('{releaseApiUrl}')).json().then(res => {\n"
257+
" availableReleases = res;\n"
258+
" selectFirmware();\n"
259+
" })\n"
260+
"}\n"
261+
"function selectFirmware() {\n"
262+
" const displayPreReleases = (document.getElementById('preReleases').checked == true);\n"
263+
" const ignoreSSL = (document.getElementById('ignoreSSL').checked == true);\n"
264+
" url = \"\";\n"
265+
" version = \"\";\n"
266+
" availableReleases.filter(r => displayPreReleases || !r.prerelease).forEach(release => {\n"
267+
" release.assets.filter(asset => asset.name.endsWith(\"flash.bin\") "
268+
#ifdef OBSCLASSIC
269+
" || asset.name.endsWith(\"firmware.bin\") "
270+
#else
271+
" || asset.name.endsWith(\"firmware-obspro.bin\") "
272+
#endif
273+
" ).forEach(\n"
274+
" release.assets.filter(asset => asset.name.endsWith(\"flash.bin\") asset.name.endsWith(\"firmware.bin\")).forEach(\n"
275+
" asset => {\n"
276+
" if (!url) {\n"
277+
" version = release.name;\n"
278+
" url = asset.browser_download_url;\n"
279+
" }\n"
280+
" }\n"
281+
" )\n"
282+
" }\n"
283+
" )\n"
284+
" if (url) {\n"
285+
" document.getElementById('version').value = \"Update to \" + version;\n"
286+
" document.getElementById('version').disabled = false;\n"
287+
" document.getElementById('downloadUrl').value = url;\n"
288+
" document.getElementById('directlink').href = url;\n"
289+
" } else {\n"
290+
" document.getElementById('version').value = \"No version found\";\n"
291+
" document.getElementById('version').disabled = true;\n"
292+
" document.getElementById('downloadUrl').value = \"\";\n"
293+
" document.getElementById('directlink').href = \"\";\n"
294+
" }\n"
295+
" if (ignoreSSL) {\n"
296+
" document.getElementById('unsafe').value = \"1\";\n"
297+
" } else {\n"
298+
" document.getElementById('unsafe').value = \"0\";\n"
299+
" }\n"
300+
"}\n"
301+
"updateFirmwareList();\n"
302+
"</script>\n"
303+
"<input type='hidden' name='downloadUrl' id='downloadUrl' value=''/>\n"
304+
"<input type='hidden' name='unsafe' id='unsafe' value='0'/>\n"
305+
"<input type='submit' name='version' id='version' class=btn value='Update' />\n"
306+
"If the upgrade via the button above does not work<br/><a id=\"directlink\" href=\"\">download firmware.bin</a><br/> and upload manually below.\n"
307+
"<h3>File Upload</h3>";
302308

303309
// #########################################
304310
// Config

0 commit comments

Comments
 (0)