Merge pull request #48 from M0r13n/fix-decode-error

monkey match the upstream API wrapper
This commit is contained in:
Arseniy Kuznetsov
2022-11-07 07:37:46 +01:00
committed by GitHub

View File

@@ -14,10 +14,23 @@
import ssl import ssl
import socket import socket
import collections
from datetime import datetime from datetime import datetime
from routeros_api import RouterOsApiPool
from mktxp.cli.config.config import config_handler from mktxp.cli.config.config import config_handler
# Fix UTF-8 decode error
# See: https://github.com/akpw/mktxp/issues/47
# The RouterOS-api implicitly assumes that the API response is UTF-8 encoded.
# But Mikrotik uses latin-1.
# Because the upstream dependency is currently abandoned, this is a quick hack to solve the issue
MIKROTIK_ENCODING = 'latin-1'
import routeros_api.api_structure
routeros_api.api_structure.StringField.get_python_value = lambda _, bytes: bytes.decode(MIKROTIK_ENCODING)
routeros_api.api_structure.default_structure = collections.defaultdict(routeros_api.api_structure.StringField)
from routeros_api import RouterOsApiPool
class RouterAPIConnectionError(Exception): class RouterAPIConnectionError(Exception):
pass pass