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.',