fulvia/modules/crypto.py

56 lines
1.8 KiB
Python
Raw Permalink Normal View History

#!/usr/bin/env python3
"""
Queries coinlib.io for information about various cryptocurrencies.
"""
import re
import requests
2019-10-08 12:39:13 -04:00
import config
from module import commands, example, require_admin
URI = "https://coinlib.io/api/v1"
2020-02-26 11:33:29 -05:00
HEADERS = {'cookie': "SESSIONID=91049a9e2e89f6a39f827378dd10184f;"}
@commands("crypto", "coin")
@example(".crypto btc",
"[CRYPTO] Name: Bitcoin | Symbol: BTC | Rank: 1 | Price: 7067.62 | "
+ "Markets: 3 | Market Cap: 121511525662.62")
def crypto(bot, trigger):
"""
Queries coinlib.io for information about various crytocurrencies.
"""
params = {
2019-10-08 12:39:13 -04:00
"key": config.coinlib_api_key,
"pref": "USD",
}
2020-01-07 18:58:19 -05:00
if len(trigger.args) < 2:
return bot.reply("What coin?")
symbol = trigger.args[1]
if symbol:
params["symbol"] = symbol
2020-02-26 11:33:29 -05:00
res = requests.get(URI + "/coin", params=params, headers=HEADERS)
if res.status_code in [400, 401]:
return bot.msg(f"Error: {res.json()['error']}")
res.raise_for_status()
data = res.json()
msg = f"[\x0304CRYPTO\x03] \x0310Name\x03: \x0312{data['name']}\x03 | "
msg += f"\x0310Symbol\x03: \x0312{data['show_symbol']}\x03 | "
msg += f"\x0310Rank\x03: \x0312{data['rank']}\x03 | "
msg += f"\x0310Price\x03: \x0308"
2018-12-31 01:20:25 -05:00
msg += data['price'] + "\x03 | "
msg += f"\x0310Markets\x03: \x0312{len(data['markets'])}\x03 | "
msg += f"\x0310Market Cap\x03: \x0308"
msg += re.sub(r'(^.+\.\d\d).*', r'\1', data['market_cap']) + "\x03"
else:
res = requests.get(URI + "/global", params=params)
if res.status_code in [400, 401]:
return bot.msg(f"Error: {res.json()['error']}")
res.raise_for_status()
data = res.json()
msg = f"[\x0304CRYPTO\x03] \x0310Total Coins\x03: \x0312{data['coins']}\x03 | "
msg += f"\x0310Total Markets\x03: \x0312{data['markets']}\x03 | "
msg += f"\x0310Total Market Cap\x03: \x0308"
msg += re.sub(r'(^.+\.\d\d).*', r'\1', data['total_market_cap']) + "\x03"
bot.msg(msg)