Updated webConverter for new files

This commit is contained in:
Spacehuhn
2020-07-15 21:47:15 +02:00
parent 04feef1298
commit e4cb8f8f31
3 changed files with 134 additions and 115 deletions

2
.gitignore vendored
View File

@@ -6,3 +6,5 @@
*.map
.DS_Store
*.pyc

View File

@@ -185,7 +185,7 @@ namespace wifi {
void sendProgmem(const char* ptr, size_t size, const char* type) {
server.sendHeader("Content-Encoding", "gzip");
server.sendHeader("Cache-Control", "max-age=86400");
server.sendHeader("Cache-Control", "max-age=3600");
server.send_P(200, str(type).c_str(), ptr, size);
}
@@ -212,11 +212,11 @@ namespace wifi {
String getMode() {
switch (mode) {
case wifi_mode_t::off:
return W_MODE_OFF;
return "OFF";
case wifi_mode_t::ap:
return W_MODE_AP;
return "AP";
case wifi_mode_t::st:
return W_MODE_ST;
return "ST";
default:
return String();
}
@@ -267,100 +267,117 @@ namespace wifi {
server.on("/list", HTTP_GET, handleFileList); // list directory
// ================================================================
// post here the output of the webConverter.py
#ifdef USE_PROGMEM_WEB_FILES
if (!settings::getWebSettings().use_spiffs) {
server.on("/", HTTP_GET, [] () {
sendProgmem(indexhtml, sizeof(indexhtml), W_HTML);
});
server.on("/attack.html", HTTP_GET, [] () {
sendProgmem(attackhtml, sizeof(attackhtml), W_HTML);
});
server.on("/index.html", HTTP_GET, [] () {
sendProgmem(indexhtml, sizeof(indexhtml), W_HTML);
});
server.on("/info.html", HTTP_GET, [] () {
sendProgmem(infohtml, sizeof(infohtml), W_HTML);
});
server.on("/scan.html", HTTP_GET, [] () {
sendProgmem(scanhtml, sizeof(scanhtml), W_HTML);
});
server.on("/ap_settings.html", HTTP_GET, [] () {
sendProgmem(settingshtml, sizeof(settingshtml), W_HTML);
});
server.on("/ssids.html", HTTP_GET, [] () {
sendProgmem(ssidshtml, sizeof(ssidshtml), W_HTML);
});
server.on("/style.css", HTTP_GET, [] () {
sendProgmem(stylecss, sizeof(stylecss), W_CSS);
});
server.on("/js/attack.js", HTTP_GET, [] () {
sendProgmem(attackjs, sizeof(attackjs), W_JS);
});
server.on("/js/scan.js", HTTP_GET, [] () {
sendProgmem(scanjs, sizeof(scanjs), W_JS);
});
server.on("/js/ap_settings.js", HTTP_GET, [] () {
sendProgmem(settingsjs, sizeof(settingsjs), W_JS);
});
server.on("/js/site.js", HTTP_GET, [] () {
sendProgmem(sitejs, sizeof(sitejs), W_JS);
});
server.on("/js/ssids.js", HTTP_GET, [] () {
sendProgmem(ssidsjs, sizeof(ssidsjs), W_JS);
});
server.on("/lang/cn.lang", HTTP_GET, [] () {
sendProgmem(cnlang, sizeof(cnlang), W_JSON);
});
server.on("/lang/cs.lang", HTTP_GET, [] () {
sendProgmem(cslang, sizeof(cslang), W_JSON);
});
server.on("/lang/de.lang", HTTP_GET, [] () {
sendProgmem(delang, sizeof(delang), W_JSON);
});
server.on("/lang/en.lang", HTTP_GET, [] () {
sendProgmem(enlang, sizeof(enlang), W_JSON);
});
server.on("/lang/es.lang", HTTP_GET, [] () {
sendProgmem(eslang, sizeof(eslang), W_JSON);
});
server.on("/lang/fi.lang", HTTP_GET, [] () {
sendProgmem(filang, sizeof(filang), W_JSON);
});
server.on("/lang/fr.lang", HTTP_GET, [] () {
sendProgmem(frlang, sizeof(frlang), W_JSON);
});
server.on("/lang/it.lang", HTTP_GET, [] () {
sendProgmem(itlang, sizeof(itlang), W_JSON);
});
server.on("/lang/ru.lang", HTTP_GET, [] () {
sendProgmem(rulang, sizeof(rulang), W_JSON);
});
server.on("/lang/tlh.lang", HTTP_GET, [] () {
sendProgmem(tlhlang, sizeof(tlhlang), W_JSON);
});
}
server.on(str(W_DEFAULT_LANG).c_str(), HTTP_GET, [] () {
if (!settings::getWebSettings().use_spiffs) {
if (String(settings::getWebSettings().lang) == String(F("cn"))) sendProgmem(cnlang, sizeof(cnlang), W_JSON);
else if (String(settings::getWebSettings().lang) == String(F("cs"))) sendProgmem(cslang, sizeof(cslang), W_JSON);
else if (String(settings::getWebSettings().lang) == String(F("de"))) sendProgmem(delang, sizeof(delang), W_JSON);
else if (String(settings::getWebSettings().lang) == String(F("en"))) sendProgmem(enlang, sizeof(enlang), W_JSON);
else if (String(settings::getWebSettings().lang) == String(F("es"))) sendProgmem(eslang, sizeof(eslang), W_JSON);
else if (String(settings::getWebSettings().lang) == String(F("fi"))) sendProgmem(filang, sizeof(filang), W_JSON);
else if (String(settings::getWebSettings().lang) == String(F("fr"))) sendProgmem(frlang, sizeof(frlang), W_JSON);
else if (String(settings::getWebSettings().lang) == String(F("it"))) sendProgmem(itlang, sizeof(itlang), W_JSON);
else if (String(settings::getWebSettings().lang) == String(F("ru"))) sendProgmem(rulang, sizeof(rulang), W_JSON);
else if (String(settings::getWebSettings().lang) == String(F("tlh"))) sendProgmem(tlhlang, sizeof(tlhlang), W_JSON);
else handleFileRead(String(F("/web/lang/")) + String(settings::getWebSettings().lang) + String(F(".lang")));
} else {
handleFileRead(String(F("/web/lang/")) + String(settings::getWebSettings().lang) + String(F(".lang")));
}
});
#endif /* ifdef USE_PROGMEM_WEB_FILES */
// ================================================================
// paste here the output of the webConverter.py
if(!settings::getWebSettings().use_spiffs){
server.on("/", HTTP_GET, [](){
sendProgmem(indexhtml, sizeof(indexhtml), W_HTML);
});
server.on("/index.html", HTTP_GET, [](){
sendProgmem(indexhtml, sizeof(indexhtml), W_HTML);
});
server.on("/scan.html", HTTP_GET, [](){
sendProgmem(scanhtml, sizeof(scanhtml), W_HTML);
});
server.on("/info.html", HTTP_GET, [](){
sendProgmem(infohtml, sizeof(infohtml), W_HTML);
});
server.on("/ssids.html", HTTP_GET, [](){
sendProgmem(ssidshtml, sizeof(ssidshtml), W_HTML);
});
server.on("/attack.html", HTTP_GET, [](){
sendProgmem(attackhtml, sizeof(attackhtml), W_HTML);
});
server.on("/settings.html", HTTP_GET, [](){
sendProgmem(settingshtml, sizeof(settingshtml), W_HTML);
});
server.on("/style.css", HTTP_GET, [](){
sendProgmem(stylecss, sizeof(stylecss), W_CSS);
});
server.on("/js/ssids.js", HTTP_GET, [](){
sendProgmem(ssidsjs, sizeof(ssidsjs), W_JS);
});
server.on("/js/site.js", HTTP_GET, [](){
sendProgmem(sitejs, sizeof(sitejs), W_JS);
});
server.on("/js/attack.js", HTTP_GET, [](){
sendProgmem(attackjs, sizeof(attackjs), W_JS);
});
server.on("/js/scan.js", HTTP_GET, [](){
sendProgmem(scanjs, sizeof(scanjs), W_JS);
});
server.on("/js/settings.js", HTTP_GET, [](){
sendProgmem(settingsjs, sizeof(settingsjs), W_JS);
});
server.on("/lang/ja.lang", HTTP_GET, [](){
sendProgmem(jalang, sizeof(jalang), W_JSON);
});
server.on("/lang/fi.lang", HTTP_GET, [](){
sendProgmem(filang, sizeof(filang), W_JSON);
});
server.on("/lang/cn.lang", HTTP_GET, [](){
sendProgmem(cnlang, sizeof(cnlang), W_JSON);
});
server.on("/lang/ru.lang", HTTP_GET, [](){
sendProgmem(rulang, sizeof(rulang), W_JSON);
});
server.on("/lang/de.lang", HTTP_GET, [](){
sendProgmem(delang, sizeof(delang), W_JSON);
});
server.on("/lang/it.lang", HTTP_GET, [](){
sendProgmem(itlang, sizeof(itlang), W_JSON);
});
server.on("/lang/en.lang", HTTP_GET, [](){
sendProgmem(enlang, sizeof(enlang), W_JSON);
});
server.on("/lang/fr.lang", HTTP_GET, [](){
sendProgmem(frlang, sizeof(frlang), W_JSON);
});
server.on("/lang/ro.lang", HTTP_GET, [](){
sendProgmem(rolang, sizeof(rolang), W_JSON);
});
server.on("/lang/ptbr.lang", HTTP_GET, [](){
sendProgmem(ptbrlang, sizeof(ptbrlang), W_JSON);
});
server.on("/lang/cs.lang", HTTP_GET, [](){
sendProgmem(cslang, sizeof(cslang), W_JSON);
});
server.on("/lang/tlh.lang", HTTP_GET, [](){
sendProgmem(tlhlang, sizeof(tlhlang), W_JSON);
});
server.on("/lang/es.lang", HTTP_GET, [](){
sendProgmem(eslang, sizeof(eslang), W_JSON);
});
server.on("/lang/th.lang", HTTP_GET, [](){
sendProgmem(thlang, sizeof(thlang), W_JSON);
});
}
server.on("/lang/default.lang", HTTP_GET, [](){
if(!settings::getWebSettings().use_spiffs){
if(String(settings::getWebSettings().lang) == "ja") sendProgmem(jalang, sizeof(jalang), W_JSON);
else if(String(settings::getWebSettings().lang) == "fi") sendProgmem(filang, sizeof(filang), W_JSON);
else if(String(settings::getWebSettings().lang) == "cn") sendProgmem(cnlang, sizeof(cnlang), W_JSON);
else if(String(settings::getWebSettings().lang) == "ru") sendProgmem(rulang, sizeof(rulang), W_JSON);
else if(String(settings::getWebSettings().lang) == "de") sendProgmem(delang, sizeof(delang), W_JSON);
else if(String(settings::getWebSettings().lang) == "it") sendProgmem(itlang, sizeof(itlang), W_JSON);
else if(String(settings::getWebSettings().lang) == "en") sendProgmem(enlang, sizeof(enlang), W_JSON);
else if(String(settings::getWebSettings().lang) == "fr") sendProgmem(frlang, sizeof(frlang), W_JSON);
else if(String(settings::getWebSettings().lang) == "ro") sendProgmem(rolang, sizeof(rolang), W_JSON);
else if(String(settings::getWebSettings().lang) == "ptbr") sendProgmem(ptbrlang, sizeof(ptbrlang), W_JSON);
else if(String(settings::getWebSettings().lang) == "cs") sendProgmem(cslang, sizeof(cslang), W_JSON);
else if(String(settings::getWebSettings().lang) == "tlh") sendProgmem(tlhlang, sizeof(tlhlang), W_JSON);
else if(String(settings::getWebSettings().lang) == "es") sendProgmem(eslang, sizeof(eslang), W_JSON);
else if(String(settings::getWebSettings().lang) == "th") sendProgmem(thlang, sizeof(thlang), W_JSON);
else handleFileRead("/web/lang/"+String(settings::getWebSettings().lang)+".lang");
} else {
handleFileRead("/web/lang/"+String(settings::getWebSettings().lang)+".lang");
}
});
// ================================================================
#endif /* ifdef USE_PROGMEM_WEB_FILES */
server.on("/run", HTTP_GET, [] () {
server.send(200, str(W_TXT), str(W_OK).c_str());

View File

@@ -89,8 +89,8 @@ for file in html_files:
hex_formatted_content += "0x" + char + ", "
hex_formatted_content = hex_formatted_content[:-2]
progmem_definitions += "const char " + array_name + "[] PROGMEM = {" + hex_formatted_content + "};\n"
copy_files_function += ' if(!LittleFS.exists(String(F("/web/' + base_file + '.gz"))) || force) progmemToSpiffs(' + array_name + ', sizeof(' + array_name + '), String(F("/web/' + base_file + '.gz")));\n'
webserver_events += 'server.on(String(F("/' + base_file + '")).c_str(), HTTP_GET, [](){\n sendProgmem(' + array_name + ', sizeof(' + array_name + '), W_HTML);\n});\n'
copy_files_function += ' if(!LittleFS.exists("/web/' + base_file + '.gz") || force) progmemToSpiffs(' + array_name + ', sizeof(' + array_name + '), "/web/' + base_file + '.gz");\n'
webserver_events += 'server.on("/' + base_file + '", HTTP_GET, [](){\n sendProgmem(' + array_name + ', sizeof(' + array_name + '), W_HTML);\n});\n'
for file in css_files:
base_file = os.path.basename(str(file))
@@ -117,8 +117,8 @@ for file in css_files:
hex_formatted_content += "0x" + char + ", "
hex_formatted_content = hex_formatted_content[:-2]
progmem_definitions += "const char " + array_name + "[] PROGMEM = {" + hex_formatted_content + "};\n"
copy_files_function += ' if(!LittleFS.exists(String(F("/web/' + base_file + '.gz"))) || force) progmemToSpiffs(' + array_name + ', sizeof(' + array_name + '), String(F("/web/' + base_file + '.gz")));\n'
webserver_events += 'server.on(String(F("/' + base_file + '")).c_str(), HTTP_GET, [](){\n sendProgmem(' + array_name + ', sizeof(' + array_name + '), W_CSS);\n});\n'
copy_files_function += ' if(!LittleFS.exists("/web/' + base_file + '.gz") || force) progmemToSpiffs(' + array_name + ', sizeof(' + array_name + '), "/web/' + base_file + '.gz");\n'
webserver_events += 'server.on("/' + base_file + '", HTTP_GET, [](){\n sendProgmem(' + array_name + ', sizeof(' + array_name + '), W_CSS);\n});\n'
for file in js_files:
q = PurePath('js')
@@ -149,8 +149,8 @@ for file in js_files:
hex_formatted_content += "0x" + char + ", "
hex_formatted_content = hex_formatted_content[:-2]
progmem_definitions += "const char " + array_name + "[] PROGMEM = {" + hex_formatted_content + "};\n"
copy_files_function += ' if(!LittleFS.exists(String(F("/web/js/' + base_file + '.gz"))) || force) progmemToSpiffs(' + array_name + ', sizeof(' + array_name + '), String(F("/web/js/' + base_file + '.gz")));\n'
webserver_events += 'server.on(String(F("/js/' + base_file + '")).c_str(), HTTP_GET, [](){\n sendProgmem(' + array_name + ', sizeof(' + array_name + '), W_JS);\n});\n'
copy_files_function += ' if(!LittleFS.exists("/web/js/' + base_file + '.gz") || force) progmemToSpiffs(' + array_name + ', sizeof(' + array_name + '), "/web/js/' + base_file + '.gz");\n'
webserver_events += 'server.on("/js/' + base_file + '", HTTP_GET, [](){\n sendProgmem(' + array_name + ', sizeof(' + array_name + '), W_JS);\n});\n'
for file in lang_files:
q = PurePath('lang')
@@ -179,12 +179,12 @@ for file in lang_files:
hex_formatted_content += "0x" + char + ", "
hex_formatted_content = hex_formatted_content[:-2]
progmem_definitions += "const char " + array_name + "[] PROGMEM = {" + hex_formatted_content + "};\n"
copy_files_function += ' if(!LittleFS.exists(String(F("/web/lang/' + base_file + '.gz"))) || force) progmemToSpiffs(' + array_name + ', sizeof(' + array_name + '), String(F("/web/lang/' + base_file + '.gz")));\n'
webserver_events += 'server.on(String(F("/lang/' + base_file + '")).c_str(), HTTP_GET, [](){\n sendProgmem(' + array_name + ', sizeof(' + array_name + '), W_JSON);\n});\n'
copy_files_function += ' if(!LittleFS.exists("/web/lang/' + base_file + '.gz") || force) progmemToSpiffs(' + array_name + ', sizeof(' + array_name + '), "/web/lang/' + base_file + '.gz");\n'
webserver_events += 'server.on("/lang/' + base_file + '", HTTP_GET, [](){\n sendProgmem(' + array_name + ', sizeof(' + array_name + '), W_JSON);\n});\n'
if(len(load_lang) > 0):
load_lang += ' else if(settings::getLang() == String(F("'+lang_name+'"))) sendProgmem(' + array_name + ', sizeof(' + array_name + '), W_JSON);\n'
load_lang += ' else if(String(settings::getWebSettings().lang) == "'+lang_name+'") sendProgmem(' + array_name + ', sizeof(' + array_name + '), W_JSON);\n'
else:
load_lang += ' if(settings::getLang() == String(F("'+lang_name+'"))) sendProgmem(' + array_name + ', sizeof(' + array_name + '), W_JSON);\n'
load_lang += ' if(String(settings::getWebSettings().lang) == "'+lang_name+'") sendProgmem(' + array_name + ', sizeof(' + array_name + '), W_JSON);\n'
base_file = os.path.basename(license_file_path)
new_file = str(os.path.join(str(compressed), str("LICENSE")))
@@ -206,7 +206,7 @@ for char in hex_content:
hex_formatted_content += "0x" + char + ", "
hex_formatted_content = hex_formatted_content[:-2]
progmem_definitions += "const char " + array_name + "[] PROGMEM = {" + hex_formatted_content + "};\n"
copy_files_function += ' if(!LittleFS.exists(String(F("/web/' + base_file + '.gz"))) || force) progmemToSpiffs(' + array_name + ', sizeof(' + array_name + '), String(F("/web/' + base_file + '.gz")));\n'
copy_files_function += ' if(!LittleFS.exists("/web/' + base_file + '.gz") || force) progmemToSpiffs(' + array_name + ', sizeof(' + array_name + '), "/web/' + base_file + '.gz");\n'
print("[+] Saving everything into webfiles.h...")
f = open(arduino_file_path, 'w')
@@ -232,19 +232,19 @@ f.write("#endif")
f.close()
print("\n[+] Done, happy uploading :)")
print("Here are the updated functions for wifi.h, in case you added or removed files:")
print("Here are the updated functions for wifi.cpp, in case you added or removed files:")
print();
print('if(!settings::getWebSpiffs()){')
print(' server.on(String(SLASH).c_str(), HTTP_GET, [](){')
print('if(!settings::getWebSettings().use_spiffs){')
print(' server.on("/", HTTP_GET, [](){')
print(' sendProgmem(indexhtml, sizeof(indexhtml), W_HTML);')
print('});')
print(webserver_events)
print('}')
print("server.on(str(W_DEFAULT_LANG).c_str(), HTTP_GET, [](){")
print(" if(!settings::getWebSpiffs()){")
print('server.on("/lang/default.lang", HTTP_GET, [](){')
print(" if(!settings::getWebSettings().use_spiffs){")
print(load_lang)
print(' else handleFileRead(String(F("/web/lang/"))+settings::getLang()+String(F(".lang")));')
print(' else handleFileRead("/web/lang/"+String(settings::getWebSettings().lang)+".lang");')
print(' } else {')
print(' handleFileRead(String(F("/web/lang/"))+settings::getLang()+String(F(".lang")));')
print(' handleFileRead("/web/lang/"+String(settings::getWebSettings().lang)+".lang");')
print(' }')
print("});");
print("});")