mirror of
				https://github.com/esphome/esphome.git
				synced 2025-10-30 22:53:59 +00: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:
		| @@ -28,7 +28,7 @@ import tornado.websocket | ||||
| from esphome import const | ||||
| from esphome.__main__ import get_serial_ports | ||||
| 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, \ | ||||
|     esphome_storage_path, ext_storage_path, trash_storage_path | ||||
| from esphome.util import shlex_quote | ||||
| @@ -223,8 +223,8 @@ class WizardRequestHandler(BaseHandler): | ||||
|     def post(self): | ||||
|         from esphome import wizard | ||||
|  | ||||
|         kwargs = {k: ''.join(v) for k, v in self.request.arguments.items()} | ||||
|         destination = os.path.join(CONFIG_DIR, kwargs['name'] + '.yaml') | ||||
|         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'] + u'.yaml') | ||||
|         wizard.wizard_write(path=destination, **kwargs) | ||||
|         self.redirect('/?begin=True') | ||||
|  | ||||
|   | ||||
| @@ -195,7 +195,7 @@ def perform_ota(sock, password, file_handle, filename): | ||||
|         send_check(sock, cnonce, 'auth cnonce') | ||||
|  | ||||
|         result_md5 = hashlib.md5() | ||||
|         result_md5.update(password.encode()) | ||||
|         result_md5.update(password.encode('utf-8')) | ||||
|         result_md5.update(nonce.encode()) | ||||
|         result_md5.update(cnonce.encode()) | ||||
|         result = result_md5.hexdigest() | ||||
|   | ||||
| @@ -69,3 +69,13 @@ def indexbytes(buf, i): | ||||
|         return buf[i] | ||||
|     else: | ||||
|         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' | ||||
|     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)) | ||||
|     storage = StorageJSON.from_wizard(name, name + '.local', platform, board) | ||||
|     storage_path = ext_storage_path(os.path.dirname(path), os.path.basename(path)) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user