From 44bb4fff951988250859a0e50cfc99407e3c2919 Mon Sep 17 00:00:00 2001 From: menahishayan Date: Sun, 20 Sep 2020 02:53:21 +0530 Subject: [PATCH] v0.1.1 publish --- dist/tplinkrouter-0.1.0-py3-none-any.whl | Bin 0 -> 18806 bytes dist/tplinkrouter-0.1.0.tar.gz | Bin 0 -> 5834 bytes dist/tplinkrouter-0.1.1-py3-none-any.whl | Bin 0 -> 18804 bytes dist/tplinkrouter-0.1.1.tar.gz | Bin 0 -> 5832 bytes setup.py | 4 +- tplinkrouter.egg-info/PKG-INFO | 127 +++++++++++++++++++++ tplinkrouter.egg-info/SOURCES.txt | 9 ++ tplinkrouter.egg-info/dependency_links.txt | 1 + tplinkrouter.egg-info/top_level.txt | 1 + 9 files changed, 140 insertions(+), 2 deletions(-) create mode 100644 dist/tplinkrouter-0.1.0-py3-none-any.whl create mode 100644 dist/tplinkrouter-0.1.0.tar.gz create mode 100644 dist/tplinkrouter-0.1.1-py3-none-any.whl create mode 100644 dist/tplinkrouter-0.1.1.tar.gz create mode 100644 tplinkrouter.egg-info/PKG-INFO create mode 100644 tplinkrouter.egg-info/SOURCES.txt create mode 100644 tplinkrouter.egg-info/dependency_links.txt create mode 100644 tplinkrouter.egg-info/top_level.txt diff --git a/dist/tplinkrouter-0.1.0-py3-none-any.whl b/dist/tplinkrouter-0.1.0-py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..e44ced11ed586de7fc17a3debc29d85c9524270b GIT binary patch literal 18806 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 literal 0 HcmV?d00001 diff --git a/dist/tplinkrouter-0.1.1-py3-none-any.whl b/dist/tplinkrouter-0.1.1-py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..ed3963f34287ddd45d526c49fe2151a64d6cadd8 GIT binary patch literal 18804 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 SUD@^PT>lR~)1RFHpa1||(seBW literal 0 HcmV?d00001 diff --git a/setup.py b/setup.py index 23f795c..a5aeb81 100644 --- a/setup.py +++ b/setup.py @@ -4,8 +4,8 @@ long_description = fh.read() setuptools.setup( - name="tplinkrouter-menahishayan", - version="0.1.0", + name="tplinkrouter", + version="0.1.1", author="Menahi Shayan", author_email="menahi.shayan@gmail.com", description="TP-Link Archer C50 API", diff --git a/tplinkrouter.egg-info/PKG-INFO b/tplinkrouter.egg-info/PKG-INFO new file mode 100644 index 0000000..20bd131 --- /dev/null +++ b/tplinkrouter.egg-info/PKG-INFO @@ -0,0 +1,127 @@ +Metadata-Version: 2.1 +Name: tplinkrouter +Version: 0.1.1 +Summary: TP-Link Archer C50 API +Home-page: https://github.com/menahishayan/TP-Link-Archer-C50-API +Author: Menahi Shayan +Author-email: menahi.shayan@gmail.com +License: UNKNOWN +Description: # TP-Link Archer C50 API + HTTP based python package for API access and router management of the TP-Link Archer C50 + + **Version 0.1.1** + + ## Dependencies + - [requests](https://pypi.org/project/requests/) + + ## Usage + ### Initialize + Enter your hostname/IP & credentials used to log in to your router management page + ```python + import tplinkrouter + + router = tplinkrouter.C50('hostname','username','password') + ``` + ### Get + ```python + router._get('wlan') + + # Return + { + '[1,1,0,0,0,0]0': {'name': 'wlan0', 'SSID': 'myssid 2.4Ghz', 'enable': '1', 'X_TP_Configuration_Modified': '1', 'beaconType': '11i', 'standard': 'n', 'WEPEncryptionLevel': 'Disabled,40-bits,104-bits', 'WEPKeyIndex': '1', 'basicEncryptionModes': 'None', 'basicAuthenticationMode': 'None', 'WPAEncryptionModes': 'TKIPandAESEncryption', 'WPAAuthenticationMode': 'PSKAuthentication', 'IEEE11iEncryptionModes': 'AESEncryption', 'IEEE11iAuthenticationMode': 'PSKAuthentication', 'X_TP_PreSharedKey': 'password', 'X_TP_GroupKeyUpdateInterval': '0', 'X_TP_RadiusServerIP': '', 'X_TP_RadiusServerPort': '1812', 'X_TP_RadiusServerPassword': ''}, + '[1,2,0,0,0,0]0': {'name': 'wlan5', 'SSID': 'myssid 5Ghz', 'enable': '1', 'X_TP_Configuration_Modified': '0', 'beaconType': '11i', 'standard': 'ac', 'WEPEncryptionLevel': 'Disabled,40-bits,104-bits', 'WEPKeyIndex': '1', 'basicEncryptionModes': 'None', 'basicAuthenticationMode': 'None', 'WPAEncryptionModes': 'TKIPandAESEncryption', 'WPAAuthenticationMode': 'PSKAuthentication', 'IEEE11iEncryptionModes': 'AESEncryption', 'IEEE11iAuthenticationMode': 'PSKAuthentication', 'X_TP_PreSharedKey': 'password', 'X_TP_GroupKeyUpdateInterval': '0', 'X_TP_RadiusServerIP': '', 'X_TP_RadiusServerPort': '1812', 'X_TP_RadiusServerPassword': ''} + } + ``` + ```python + router._get('version') + + # Return + { + '[0,0,0,0,0,0]0': { + 'hardwareVersion': 'Archer C50 v1 00000002', + 'softwareVersion': '0.9.1 3.0 v0045.0 Build 160411 Rel.42416n' + } + } + ``` + Supported Parameters: + - `about` + - `version` + - `info` + - `wan` + - `wlan` + - `24ghz` + - `5ghz` + - `dhcp_settings` + - `dhcp_clients` + - `restart` + - `logout` + + Return Format: Dictionary + + ### Set + Change Password of 2.4Ghz Network: + ```python + router._set('24ghz', [{'[LAN_WLAN#1,1,0,0,0,0#0,0,0,0,0,0]0,5': {'X_TP_PreSharedKey': 'new_password'}}]) + ``` + Enable/Disable WAN PPPoE: + ```python + # Enable + router._set('wan', [{}, {'[WAN_PPP_CONN#1,1,1,0,0,0#0,0,0,0,0,0]1,19': {'enable': '1'}}, {}]) + + # Disable + router._set('wan', [{}, {'[WAN_PPP_CONN#1,1,1,0,0,0#0,0,0,0,0,0]1,19': {'enable': '0'}}]) + ``` + + Return Format: Boolean + + Supported Parameters: + - `wan` + - `24ghz` + - `5ghz` + + *`_set()` only updates the keys passed in argument 2. All other values are either fetched from the router wherever available.* + + #### Note 1: Value Format + All key/values passed in Argument 2 of `_set()` must be strings. + Argument 2 passed to `_set()` **must** be a List of Dictionaries. + + #### Note 2: Positional Arguments + Each list item in Argument 2 of `_set()` directly corresponds to each subtask in the process. + Omitting an item in the list will ignore that subtask. (See Example: Disable WAN PPPoE, index[2] omitted) + To run a subtask without updating any of its values, pass an empty dictionary in its position. + +
+ + ## Models + This has only been tested on the TP-Link Archer C50 V1 running firmware 160411. + Supported Models (known): + - TP-Link Archer C50 V1 + - TP-Link N600 + + ## Error 500 & Login Limit + The TP-Link Web Interface only supports upto 1 user logged in at a time (for security reasons, apparently) which is the most common reason to recieve `HTTP ERROR 500`. As a workaround, you must log out from all other devices/browsers and try again. Additionally, you may also run `router._get('logout')` + + ## Troubleshooting/Error Reporting/Contributing + - If you face an error, you may debug using a HTTP Requests tool/monitor on your router's configuration webpage. Additionally, you may open a new issue on this repo prefixed by [Bug] + - If you would like to help improve the package, request features or add support for more models, open an issue prefixed by [Feature Request] or [Improvement] + + ## PRs and Commit Template + PRs and commits that you make to this repo must include the following: + - Type: bug-fix or enhancement + - Description: Brief description about what the commit achieves + - Notes: (heads ups/pointers to other developers if necessary) + +
+ + ## Changelog + ### v0.1.1 + - Remove AIOHTTP Dependency + ### v0.1.0 + - Python Package + +Platform: UNKNOWN +Classifier: Programming Language :: Python :: 3 +Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+) +Classifier: Operating System :: OS Independent +Requires-Python: >=3.7 +Description-Content-Type: text/markdown diff --git a/tplinkrouter.egg-info/SOURCES.txt b/tplinkrouter.egg-info/SOURCES.txt new file mode 100644 index 0000000..1a74509 --- /dev/null +++ b/tplinkrouter.egg-info/SOURCES.txt @@ -0,0 +1,9 @@ +README.md +setup.py +tplinkrouter/__init__.py +tplinkrouter/examples.py +tplinkrouter/tplinkrouter.py +tplinkrouter.egg-info/PKG-INFO +tplinkrouter.egg-info/SOURCES.txt +tplinkrouter.egg-info/dependency_links.txt +tplinkrouter.egg-info/top_level.txt \ No newline at end of file diff --git a/tplinkrouter.egg-info/dependency_links.txt b/tplinkrouter.egg-info/dependency_links.txt new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/tplinkrouter.egg-info/dependency_links.txt @@ -0,0 +1 @@ + diff --git a/tplinkrouter.egg-info/top_level.txt b/tplinkrouter.egg-info/top_level.txt new file mode 100644 index 0000000..152f09c --- /dev/null +++ b/tplinkrouter.egg-info/top_level.txt @@ -0,0 +1 @@ +tplinkrouter