diff --git a/README.md b/README.md index 4b9751a..99e57ad 100644 --- a/README.md +++ b/README.md @@ -5,10 +5,9 @@

-How to use?-

```python -import iphub +from iphub import IPHub -s = iphub.getSession('login', 'password') #Authirization -key = iphub.generateKey(s) #Generate/Get key -iphub.setKey(key) #Set key for use -print(iphub.checkIP(s, '127.0.0.1')) #Check ip and print result (note: Auto regenerate key if expired) +iphub = IPHub('rzpsbbdiwg7@1secmail.com', 'rzpsbbdiwg7@1secmail.com') +result = iphub.check_ip('127.0.0.1') +print(result) ``` \ No newline at end of file diff --git a/iphub/iphub.py b/iphub/iphub.py index d45a17b..91e0b67 100644 --- a/iphub/iphub.py +++ b/iphub/iphub.py @@ -1,59 +1,66 @@ from requests import Session, get -def getSession(login, password): - global ctoken - s = Session() - try: - ctoken = s.get('https://iphub.info/login').text.split('token" content="')[1].split('"')[0] - r = s.post('https://iphub.info/login', data={'_token': ctoken, 'email': login, 'password': password, 'remember': 'on'}) - r.text.split('Logout')[1] - return s - except: - raise Exception('Login failed!') - -def getKeys(session): - keys = [] - r = session.get('https://iphub.info/account') - dem = r.text.split('/apiKey/') - for line in dem: - try: - if dem.index(line) != 0: - keys.append(line.split('"')[0]) - except: - raise Exception('Keys not found!') - return keys - -def getKey(session, id): - try: - return 'MT' + session.get(f'https://iphub.info/apiKey/{id}').text.split('"MT')[1].split('"')[0] - except: - return None - -def regenerateKey(session, id): - try: - session.post(f'https://iphub.info/apiKey/regenerateApiKey/{id}', data={'_token': ctoken}) - return getKey(session, id) - except: - return None - -def generateKey(session): - try: - session.post('https://iphub.info/apiKey/newFree', data={'_token': ctoken}) - return getKey(session, getKeys(session)[0]) - except: - return None - -def checkIP(session, ip): - r = get(url=f'http://v2.api.iphub.info/ip/{ip}', headers={'X-Key': apiKey}).json() - if 'error' in r: - if '86400' in r['error']: - setKey(regenerateKey(session, getKeys(session)[0])) - return checkIP(ip) - else: - return r - else: - return r - -def setKey(key): - global apiKey - apiKey = key \ No newline at end of file +class IPHub: + def __init__(self, login, password): + self.login = login + self.password = password + self.session = self._get_session() + self.ctoken = None + self.api_key = self.get_key(self.get_keys()[0]) + + def _get_session(self): + s = Session() + try: + self.ctoken = s.get('https://iphub.info/login').text.split('token" content="')[1].split('"')[0] + r = s.post('https://iphub.info/login', data={'_token': self.ctoken, 'email': self.login, 'password': self.password, 'remember': 'on'}) + r.text.split('Logout')[1] + return s + except: + raise Exception('Login failed!') + + def get_keys(self): + keys = [] + r = self.session.get('https://iphub.info/account') + dem = r.text.split('/apiKey/') + for line in dem: + try: + if dem.index(line) != 0: + keys.append(line.split('"')[0]) + except: + self.regenerate_key() + return self.get_keys() + return keys + + def get_key(self, id): + try: + return 'MT' + self.session.get(f'https://iphub.info/apiKey/{id}').text.split('"MT')[1].split('"')[0] + except: + return None + + def regenerate_key(self, id): + try: + self.session.post(f'https://iphub.info/apiKey/regenerateApiKey/{id}', data={'_token': self.ctoken}) + return self.get_key(id) + except: + return None + + def generate_key(self): + try: + self.session.post('https://iphub.info/apiKey/newFree', data={'_token': self.ctoken}) + return self.get_key(self.get_keys()[0]) + except: + return None + + def check_ip(self, ip): + r = get(url=f'http://v2.api.iphub.info/ip/{ip}', headers={'X-Key': self.api_key}).json() + if 'error' in r: + if '86400' in r['error']: + self.set_key(self.regenerate_key(self.get_keys()[0])) + return self.check_ip(ip) + else: + return r + else: + return r + + def set_key(self, key): + self.api_key = key \ No newline at end of file diff --git a/setup.py b/setup.py index bffd770..861c77b 100644 --- a/setup.py +++ b/setup.py @@ -5,7 +5,7 @@ setup( name='iphub', - version='1.0.0', + version='1.0.1', author='Maehdakvan', author_email='visitanimation@google.com', description='IPhub.info API wrapper.',