mirror of
				https://github.com/esphome/esphome.git
				synced 2025-10-31 15:12:06 +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 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)) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user