From 8298297c37a2e771316a0d64574bf34ed0052600 Mon Sep 17 00:00:00 2001 From: root Date: Wed, 3 Jan 2018 15:58:02 +0000 Subject: [PATCH] top working now --- price.py | 66 +++++++++++++++++++++++++------------------------------- 1 file changed, 29 insertions(+), 37 deletions(-) diff --git a/price.py b/price.py index 3305cbf..d2f8315 100644 --- a/price.py +++ b/price.py @@ -362,43 +362,35 @@ def top(bot, trigger): if not trigger.group(2): bot.say("You want to see the CMC top... how many? Pick a number 1 through 10") else: - if type(trigger.group(2)) in (float, int): - limit = int(trigger.group(2)) - mylist = range(1,limit + 1) - if limit > 10: - bot.say("Too high! Max is 10!") - elif limit < 1: - bot.say("Dude...") - else: - try: - r = requests.get('https://api.coinmarketcap.com/v1/ticker?limit=50') - j = r.json() - except: - bot.say("Can't connect to API") - try: - for therank in mylist: - for i in j: - try: - if i['rank'] == str(therank): - coin = i - except: pass - symbol = coin['symbol'] - name = coin['name'] - rank = coin['rank'] - price_usd = float(coin['price_usd']) - price_btc = float(coin['price_btc']) - market_cap_usd = float(coin['market_cap_usd']) - if market_cap_usd >= 1000000000: - market_cap_short = int(int(round(market_cap_usd,-9))/int(1000000000)) - rounded_mcap = str(market_cap_short)+"B" - else: - rounded_mcap = "tiny" - topXstring += "{0}. {1} ${2} | ".format(rank, symbol, rounded_mcap) #TODO: add price_usd, rounded - bot.say(topXstring) - except: - bot.say("Error parsing ticker, or maybe double check the code") - else: - bot.say("The use is 'top' and then a digit 1 - 10") + try: + limit = int(trigger.group(2)) + if limit > 10: + bot.say("Too high! Max is 10!") + elif limit < 1: + bot.say("Dude...") + else: + try: + r = requests.get('https://api.coinmarketcap.com/v1/ticker?limit={}'.format(limit)) + j = r.json() + except: + bot.say("Can't connect to API") + topXstring = "" + for i in j: + symbol = i['symbol'] + name = i['name'] + rank = i['rank'] + price_usd = float(i['price_usd']) + price_btc = float(i['price_btc']) + market_cap_usd = float(i['market_cap_usd']) + if market_cap_usd >= 1000000000: + market_cap_short = int(int(round(market_cap_usd,-9))/int(1000000000)) + rounded_mcap = str(market_cap_short)+"B" + else: + rounded_mcap = "tiny" + topXstring += "{0}. {1} ${2} | ".format(rank, symbol, rounded_mcap) #TODO: add price_usd, rounded + bot.say(topXstring) + except: + bot.say("The use is 'top' and then a digit 1 - 10") @sopel.module.commands('okc', 'okcoin') def okc(bot, trigger):