tplinkrouterc6u 4.0.1__tar.gz → 4.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (20) hide show
  1. {tplinkrouterc6u-4.0.1 → tplinkrouterc6u-4.1.0}/PKG-INFO +4 -1
  2. {tplinkrouterc6u-4.0.1 → tplinkrouterc6u-4.1.0}/README.md +3 -0
  3. {tplinkrouterc6u-4.0.1 → tplinkrouterc6u-4.1.0}/setup.py +1 -1
  4. {tplinkrouterc6u-4.0.1 → tplinkrouterc6u-4.1.0}/test/test_client_deco.py +2 -0
  5. {tplinkrouterc6u-4.0.1 → tplinkrouterc6u-4.1.0}/tplinkrouterc6u/client.py +11 -7
  6. {tplinkrouterc6u-4.0.1 → tplinkrouterc6u-4.1.0}/tplinkrouterc6u/dataclass.py +2 -0
  7. {tplinkrouterc6u-4.0.1 → tplinkrouterc6u-4.1.0}/tplinkrouterc6u.egg-info/PKG-INFO +4 -1
  8. {tplinkrouterc6u-4.0.1 → tplinkrouterc6u-4.1.0}/LICENSE +0 -0
  9. {tplinkrouterc6u-4.0.1 → tplinkrouterc6u-4.1.0}/setup.cfg +0 -0
  10. {tplinkrouterc6u-4.0.1 → tplinkrouterc6u-4.1.0}/test/__init__.py +0 -0
  11. {tplinkrouterc6u-4.0.1 → tplinkrouterc6u-4.1.0}/test/test_client.py +0 -0
  12. {tplinkrouterc6u-4.0.1 → tplinkrouterc6u-4.1.0}/test/test_client_mr.py +0 -0
  13. {tplinkrouterc6u-4.0.1 → tplinkrouterc6u-4.1.0}/tplinkrouterc6u/__init__.py +0 -0
  14. {tplinkrouterc6u-4.0.1 → tplinkrouterc6u-4.1.0}/tplinkrouterc6u/encryption.py +0 -0
  15. {tplinkrouterc6u-4.0.1 → tplinkrouterc6u-4.1.0}/tplinkrouterc6u/enum.py +0 -0
  16. {tplinkrouterc6u-4.0.1 → tplinkrouterc6u-4.1.0}/tplinkrouterc6u/exception.py +0 -0
  17. {tplinkrouterc6u-4.0.1 → tplinkrouterc6u-4.1.0}/tplinkrouterc6u.egg-info/SOURCES.txt +0 -0
  18. {tplinkrouterc6u-4.0.1 → tplinkrouterc6u-4.1.0}/tplinkrouterc6u.egg-info/dependency_links.txt +0 -0
  19. {tplinkrouterc6u-4.0.1 → tplinkrouterc6u-4.1.0}/tplinkrouterc6u.egg-info/requires.txt +0 -0
  20. {tplinkrouterc6u-4.0.1 → tplinkrouterc6u-4.1.0}/tplinkrouterc6u.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: tplinkrouterc6u
3
- Version: 4.0.1
3
+ Version: 4.1.0
4
4
  Summary: TP-Link Router API
5
5
  Home-page: https://github.com/AlexandrErohin/TP-Link-Archer-C6U
6
6
  Author: Alex Erohin
@@ -160,6 +160,8 @@ or you have TP-link C1200 V2 or similar router you need to get web encrypted pas
160
160
  | hostname | client hostname | str |
161
161
  | packets_sent | total packets sent | int, None |
162
162
  | packets_received | total packets received | int, None |
163
+ | down_speed | download speed | int, None |
164
+ | up_speed | upload speed | int, None |
163
165
 
164
166
  ### <a id="IPv4Reservation">IPv4Reservation</a>
165
167
  | Field | Description | Type |
@@ -228,6 +230,7 @@ or you have TP-link C1200 V2 or similar router you need to get web encrypted pas
228
230
  - Archer AX21 v1.20
229
231
  - Archer AX23 v1.0
230
232
  - Archer AX50 v1.0
233
+ - Archer AX53 v2
231
234
  - Archer AX55 v1.0
232
235
  - Archer AX55 V1.60
233
236
  - Archer AX72 V1
@@ -139,6 +139,8 @@ or you have TP-link C1200 V2 or similar router you need to get web encrypted pas
139
139
  | hostname | client hostname | str |
140
140
  | packets_sent | total packets sent | int, None |
141
141
  | packets_received | total packets received | int, None |
142
+ | down_speed | download speed | int, None |
143
+ | up_speed | upload speed | int, None |
142
144
 
143
145
  ### <a id="IPv4Reservation">IPv4Reservation</a>
144
146
  | Field | Description | Type |
@@ -207,6 +209,7 @@ or you have TP-link C1200 V2 or similar router you need to get web encrypted pas
207
209
  - Archer AX21 v1.20
208
210
  - Archer AX23 v1.0
209
211
  - Archer AX50 v1.0
212
+ - Archer AX53 v2
210
213
  - Archer AX55 v1.0
211
214
  - Archer AX55 V1.60
212
215
  - Archer AX72 V1
@@ -5,7 +5,7 @@ with open("README.md", "r") as fh:
5
5
 
6
6
  setuptools.setup(
7
7
  name="tplinkrouterc6u",
8
- version="4.0.1",
8
+ version="4.1.0",
9
9
  author="Alex Erohin",
10
10
  author_email="alexanderErohin@yandex.ru",
11
11
  description="TP-Link Router API",
@@ -246,6 +246,8 @@ class TestTPLinkDecoClient(unittest.TestCase):
246
246
  self.assertIsInstance(status.devices[0], Device)
247
247
  self.assertEqual(status.devices[0].type, Connection.HOST_5G)
248
248
  self.assertEqual(status.devices[0].macaddr, 'CF-51-C9-04-E1-02')
249
+ self.assertEqual(status.devices[0].down_speed, 3)
250
+ self.assertEqual(status.devices[0].up_speed, 17)
249
251
  self.assertIsInstance(status.devices[0].macaddress, macaddress.EUI48)
250
252
  self.assertIsInstance(status.devices[1], Device)
251
253
  self.assertEqual(status.devices[1].type, Connection.IOT_2G)
@@ -269,7 +269,7 @@ class TplinkBaseRouter(AbstractRouter, TplinkRequest):
269
269
  _perf_status = True
270
270
 
271
271
  def __init__(self, host: str, password: str, username: str = 'admin', logger: Logger = None,
272
- verify_ssl: bool = True, timeout: int = 10) -> None:
272
+ verify_ssl: bool = True, timeout: int = 30) -> None:
273
273
  super().__init__(host, password, username, logger, verify_ssl, timeout)
274
274
 
275
275
  self._url_firmware = 'admin/firmware?form=upgrade&operation=read'
@@ -468,7 +468,7 @@ class TplinkBaseRouter(AbstractRouter, TplinkRequest):
468
468
 
469
469
  class TplinkRouter(TplinkEncryption, TplinkBaseRouter):
470
470
  def __init__(self, host: str, password: str, username: str = 'admin', logger: Logger = None,
471
- verify_ssl: bool = True, timeout: int = 10) -> None:
471
+ verify_ssl: bool = True, timeout: int = 30) -> None:
472
472
  super().__init__(host, password, username, logger, verify_ssl, timeout)
473
473
 
474
474
  self._url_firmware = 'admin/firmware?form=upgrade'
@@ -478,7 +478,7 @@ class TplinkRouter(TplinkEncryption, TplinkBaseRouter):
478
478
 
479
479
  class TPLinkDecoClient(TplinkEncryption, AbstractRouter):
480
480
  def __init__(self, host: str, password: str, username: str = 'admin', logger: Logger = None,
481
- verify_ssl: bool = True, timeout: int = 10) -> None:
481
+ verify_ssl: bool = True, timeout: int = 30) -> None:
482
482
  super().__init__(host, password, username, logger, verify_ssl, timeout)
483
483
 
484
484
  self._headers_request = {'Content-Type': 'application/json'}
@@ -575,10 +575,13 @@ class TPLinkDecoClient(TplinkEncryption, AbstractRouter):
575
575
  status.iot_clients_total += 1
576
576
 
577
577
  ip = item['ip'] if item.get('ip') else '0.0.0.0'
578
- devices.append(Device(conn,
578
+ device = Device(conn,
579
579
  macaddress.EUI48(item['mac']),
580
580
  ipaddress.IPv4Address(ip),
581
- base64.b64decode(item['name']).decode()))
581
+ base64.b64decode(item['name']).decode())
582
+ device.down_speed = item.get('down_speed')
583
+ device.up_speed = item.get('up_speed')
584
+ devices.append(device)
582
585
 
583
586
  status.clients_total = (status.wired_total + status.wifi_clients_total + status.guest_clients_total
584
587
  + (0 if status.iot_clients_total is None else status.iot_clients_total))
@@ -695,6 +698,7 @@ class TplinkC1200Router(TplinkBaseRouter):
695
698
  regex_result = re.search('sysauth=(.*);', response.headers['set-cookie'])
696
699
  self._sysauth = regex_result.group(1)
697
700
  self._logged = True
701
+ self._smart_network = False
698
702
 
699
703
  except Exception as e:
700
704
  error = "TplinkRouter - C1200 - Cannot authorize! Error - {}; Response - {}".format(e, response.text)
@@ -751,7 +755,7 @@ class TPLinkMRClient(AbstractRouter):
751
755
  self.attrs = attrs
752
756
 
753
757
  def __init__(self, host: str, password: str, username: str = 'admin', logger: Logger = None,
754
- verify_ssl: bool = True, timeout: int = 10) -> None:
758
+ verify_ssl: bool = True, timeout: int = 30) -> None:
755
759
  super().__init__(host, password, username, logger, verify_ssl, timeout)
756
760
 
757
761
  self.req = requests.Session()
@@ -1251,7 +1255,7 @@ class TPLinkMRClient(AbstractRouter):
1251
1255
  class TplinkRouterProvider:
1252
1256
  @staticmethod
1253
1257
  def get_client(host: str, password: str, username: str = 'admin', logger: Logger = None,
1254
- verify_ssl: bool = True, timeout: int = 10) -> AbstractRouter | None:
1258
+ verify_ssl: bool = True, timeout: int = 30) -> AbstractRouter | None:
1255
1259
  for client in [TPLinkMRClient, TplinkC6V4Router, TPLinkDecoClient, TplinkRouter, TplinkC1200Router]:
1256
1260
  router = client(host, password, username, logger, verify_ssl, timeout)
1257
1261
  if router.supports():
@@ -21,6 +21,8 @@ class Device:
21
21
  self.hostname = hostname
22
22
  self.packets_sent: int | None = None
23
23
  self.packets_received: int | None = None
24
+ self.down_speed: int | None = None
25
+ self.up_speed: int | None = None
24
26
 
25
27
  @property
26
28
  def macaddr(self):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: tplinkrouterc6u
3
- Version: 4.0.1
3
+ Version: 4.1.0
4
4
  Summary: TP-Link Router API
5
5
  Home-page: https://github.com/AlexandrErohin/TP-Link-Archer-C6U
6
6
  Author: Alex Erohin
@@ -160,6 +160,8 @@ or you have TP-link C1200 V2 or similar router you need to get web encrypted pas
160
160
  | hostname | client hostname | str |
161
161
  | packets_sent | total packets sent | int, None |
162
162
  | packets_received | total packets received | int, None |
163
+ | down_speed | download speed | int, None |
164
+ | up_speed | upload speed | int, None |
163
165
 
164
166
  ### <a id="IPv4Reservation">IPv4Reservation</a>
165
167
  | Field | Description | Type |
@@ -228,6 +230,7 @@ or you have TP-link C1200 V2 or similar router you need to get web encrypted pas
228
230
  - Archer AX21 v1.20
229
231
  - Archer AX23 v1.0
230
232
  - Archer AX50 v1.0
233
+ - Archer AX53 v2
231
234
  - Archer AX55 v1.0
232
235
  - Archer AX55 V1.60
233
236
  - Archer AX72 V1
File without changes