From e671a41245c9d478196e1a83ab400146f5bf44d0 Mon Sep 17 00:00:00 2001 From: Weerapong0000 Date: Sat, 30 Jun 2018 20:05:21 +0700 Subject: [PATCH 1/2] Add files via upload --- EobotAPI.py | 231 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 231 insertions(+) create mode 100644 EobotAPI.py diff --git a/EobotAPI.py b/EobotAPI.py new file mode 100644 index 0000000..c509dc5 --- /dev/null +++ b/EobotAPI.py @@ -0,0 +1,231 @@ +import requests + + +class EoBot: + """ EOBot API Access built with Requests for Python 2.7 """ + + def __init__(self, email, password): + """ The module requires an email and password for EoBot to function, and will automatically lookup and store + the user ID for use in future requests """ + self.url_base = "https://www.eobot.com/api.aspx?" + self.email = str(email) + self.password = str(password) + self.debug = 0 + url = self.url_base + 'email=' + self.email + '&password=' + self.password + self.user_id = (requests.get(url, timeout=5)).text + self.timeout = 5 + + def set_debug(self, mode): + """ Set the debug mode, defaults to 0 + Setting 1 will force functions to print URLs """ + if mode == 1: + self.debug = 1 + print "Debug Mode enabled" + return "Success" + if mode == 0: + self.debug = 0 + print "Debug Mode disabled" + return "Success" + else: + return "Error or not implemented" + + def get_userid(self): + """ Returns the User ID from the inital object creation, useful for debugging """ + return self.user_id + + def get_coin_value(self, coin): + """ Return the current value for a Coin, expects the EoBot coin ID string """ + url = self.url_base + 'coin=' + str(coin) + + if self.debug == 1: + print url + + try: + result = requests.get(url, timeout=self.timeout) + except requests.exceptions.RequestException as exception: + print exception + return "ERROR" + + return float(result.text) + + def get_email(self): + """ Return set email, shouldn't need this, maybe for debugging """ + return self.email + + def get_paswrd(self): + """ Return set password, shouldn't need this, maybe for debugging """ + return self.password + + def get_mining_coin(self): + """ Returns the currently mining coin for the user account """ + url = self.url_base + "idmining=" + self.user_id + + if self.debug == 1: + print url + + try: + coin = (requests.get(url, timeout=self.timeout)).text + except requests.exceptions.RequestException as exception: + print exception + return "ERROR" + + return coin + + def get_all_balances(self): + """ Returns an dict containing all values """ + url = self.url_base + "total=" + self.user_id + + if self.debug == 1: + print url + + try: + balance_raw = (requests.get(url)).text + except requests.exceptions.RequestException as exception: + print exception + return "ERROR" + + balance = {} + + for line in balance_raw.split(';'): + if self.debug == 1: + print line + + if ':' in line: + line_array = line.split(':') + balance[line_array[0]] = line_array[1] + + return balance + + def get_coin_balance(self, coin): + """ Returns a specific coin balance for your account, requires a EoBot Coin String """ + totals = self.get_all_balances() + if coin in totals.keys(): + if self.debug == 1: + print coin + + return float(totals[coin]) + else: + return 'Bad Coin' + + def get_all_speeds(self): + """ Returns a dict with all mining speeds """ + url = self.url_base + "idspeed=" + self.user_id + + if self.debug == 1: + print url + + try: + speed_raw = (requests.get(url, timeout=self.timeout)).text + except requests.exceptions.RequestException as exception: + print exception + return "ERROR" + + speed = {} + + for line in speed_raw.split(';'): + if self.debug == 1: + print line + + if ':' in line: + line_array = line.split(':') + speed[line_array[0]] = line_array[1] + + return speed + + def get_one_speed(self, m_type): + """ Returns a specific mining speed, requires a EoBot mining type string """ + speeds = self.get_all_speeds() + if m_type in speeds.keys(): + if self.debug == 1: + print m_type + + return speeds[m_type] + else: + return 'Bad Mining Type' + + def set_mining_coin(self, coin): + """ Sets the mining coin on your account, requires a EoBot Coin String + Will return string Success on success and ERROR if not. + """ + url = self.url_base + "id=" + self.user_id + "&email=" + self.email + "&password=" + self.password + \ + "&mining=" + coin + + if self.debug == 1: + print url + + try: + requests.post(url, timeout=self.timeout) + except requests.exceptions.RequestException as exception: + print exception + return "ERROR" + + if self.get_mining_coin() == coin: + return "Success" + else: + return "Error" + + def get_deposit_address(self, coin): + """ Returns a desposit wallet address for the EoBot Coin String""" + url = self.url_base + "id=" + self.user_id + '&deposit=' + str(coin) + + if self.debug == 1: + print url + + try: + result = requests.get(url, timeout=self.timeout) + except requests.exceptions.RequestException as exception: + print exception + return "ERROR" + + return result.text + + def get_exchange_est(self, convertfrom, convertto, amount): + """ Returns the estimated result from converting first coin string to the 2nd coin string, + in the amount given """ + url = self.url_base + 'exchangefee=true&convertfrom=' + convertfrom + '&amount=' +str(amount) + '&convertto=' \ + + convertto + + if self.debug == 1: + print url + + try: + result = requests.get(url, timeout=self.timeout) + except requests.exceptions.RequestException as exception: + print exception + return "ERROR" + + return result.text + + def exchange_currency(self, convertfrom, convertto, amount): + """ Returns the estimated result from converting first coin string to the 2nd coin string, + in the amount given """ + url = self.url_base + 'id=' + self.user_id + '&email=' + self.email + '&password=' + self.password + \ + '&convertfrom=' + convertfrom + '&amount=' + str(amount) + '&convertto=' + convertto + + if self.debug == 1: + print url + + try: + result = requests.get(url, timeout=self.timeout) + except requests.exceptions.RequestException as exception: + print exception + return "ERROR" + + return result.text + + def withdraw_currency(self, coin, amount, wallet): + """ Withdraw currency from the specified coin string, in the specified amount, to the specified wallet """ + + url = self.url_base + 'id=' + self.user_id + '&email=' + self.email + '&password=' + self.password + \ + '&manualwithdraw=' + coin + '&amount=' + str(amount) + '&wallet=' + wallet + + if self.debug == 1: + print url + + try: + result = requests.get(url, timeout=self.timeout) + except requests.exceptions.RequestException as exception: + print exception + return "ERROR" + + return result.text From 7d12bc5479e5414a2ab1407555e3d6c0030add3a Mon Sep 17 00:00:00 2001 From: Weerapong0000 Date: Sat, 30 Jun 2018 20:11:33 +0700 Subject: [PATCH 2/2] Add files via upload