mirror of
https://github.com/esphome/esphome.git
synced 2024-11-29 18:24:13 +01:00
Fix dashboard wizard unicode (#494)
* Fix dashboard wizard unicode Fixes https://github.com/esphome/issues/issues/169 * Fix password md5
This commit is contained in:
parent
1dab1314ff
commit
5859d4b01f
4 changed files with 15 additions and 5 deletions
|
@ -28,7 +28,7 @@ import tornado.websocket
|
||||||
from esphome import const
|
from esphome import const
|
||||||
from esphome.__main__ import get_serial_ports
|
from esphome.__main__ import get_serial_ports
|
||||||
from esphome.helpers import mkdir_p, get_bool_env, run_system_command
|
from esphome.helpers import mkdir_p, get_bool_env, run_system_command
|
||||||
from esphome.py_compat import IS_PY2
|
from esphome.py_compat import IS_PY2, decode_text
|
||||||
from esphome.storage_json import EsphomeStorageJSON, StorageJSON, \
|
from esphome.storage_json import EsphomeStorageJSON, StorageJSON, \
|
||||||
esphome_storage_path, ext_storage_path, trash_storage_path
|
esphome_storage_path, ext_storage_path, trash_storage_path
|
||||||
from esphome.util import shlex_quote
|
from esphome.util import shlex_quote
|
||||||
|
@ -223,8 +223,8 @@ class WizardRequestHandler(BaseHandler):
|
||||||
def post(self):
|
def post(self):
|
||||||
from esphome import wizard
|
from esphome import wizard
|
||||||
|
|
||||||
kwargs = {k: ''.join(v) for k, v in self.request.arguments.items()}
|
kwargs = {k: u''.join(decode_text(x) for x in v) for k, v in self.request.arguments.items()}
|
||||||
destination = os.path.join(CONFIG_DIR, kwargs['name'] + '.yaml')
|
destination = os.path.join(CONFIG_DIR, kwargs['name'] + u'.yaml')
|
||||||
wizard.wizard_write(path=destination, **kwargs)
|
wizard.wizard_write(path=destination, **kwargs)
|
||||||
self.redirect('/?begin=True')
|
self.redirect('/?begin=True')
|
||||||
|
|
||||||
|
|
|
@ -195,7 +195,7 @@ def perform_ota(sock, password, file_handle, filename):
|
||||||
send_check(sock, cnonce, 'auth cnonce')
|
send_check(sock, cnonce, 'auth cnonce')
|
||||||
|
|
||||||
result_md5 = hashlib.md5()
|
result_md5 = hashlib.md5()
|
||||||
result_md5.update(password.encode())
|
result_md5.update(password.encode('utf-8'))
|
||||||
result_md5.update(nonce.encode())
|
result_md5.update(nonce.encode())
|
||||||
result_md5.update(cnonce.encode())
|
result_md5.update(cnonce.encode())
|
||||||
result = result_md5.hexdigest()
|
result = result_md5.hexdigest()
|
||||||
|
|
|
@ -69,3 +69,13 @@ def indexbytes(buf, i):
|
||||||
return buf[i]
|
return buf[i]
|
||||||
else:
|
else:
|
||||||
return ord(buf[i])
|
return ord(buf[i])
|
||||||
|
|
||||||
|
|
||||||
|
if IS_PY2:
|
||||||
|
def decode_text(data, encoding='utf-8', errors='strict'):
|
||||||
|
# type: (str, str, str) -> unicode
|
||||||
|
return unicode(data, encoding='utf-8', errors=errors)
|
||||||
|
else:
|
||||||
|
def decode_text(data, encoding='utf-8', errors='strict'):
|
||||||
|
# type: (bytes, str, str) -> str
|
||||||
|
return data.decode(encoding='utf-8', errors=errors)
|
||||||
|
|
|
@ -79,7 +79,7 @@ def wizard_write(path, **kwargs):
|
||||||
kwargs['platform'] = 'ESP8266' if board in ESP8266_BOARD_PINS else 'ESP32'
|
kwargs['platform'] = 'ESP8266' if board in ESP8266_BOARD_PINS else 'ESP32'
|
||||||
platform = kwargs['platform']
|
platform = kwargs['platform']
|
||||||
|
|
||||||
with codecs.open(path, 'w') as f_handle:
|
with codecs.open(path, 'w', 'utf-8') as f_handle:
|
||||||
f_handle.write(wizard_file(**kwargs))
|
f_handle.write(wizard_file(**kwargs))
|
||||||
storage = StorageJSON.from_wizard(name, name + '.local', platform, board)
|
storage = StorageJSON.from_wizard(name, name + '.local', platform, board)
|
||||||
storage_path = ext_storage_path(os.path.dirname(path), os.path.basename(path))
|
storage_path = ext_storage_path(os.path.dirname(path), os.path.basename(path))
|
||||||
|
|
Loading…
Reference in a new issue