55 lines
1.8 KiB
Python
Executable File
55 lines
1.8 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
"""
|
|
Queries coinlib.io for information about various cryptocurrencies.
|
|
"""
|
|
import re
|
|
|
|
import requests
|
|
|
|
import config
|
|
from module import commands, example, require_admin
|
|
|
|
URI = "https://coinlib.io/api/v1"
|
|
|
|
@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 = {
|
|
"key": config.coinlib_api_key,
|
|
"pref": "USD",
|
|
}
|
|
if len(trigger.args) < 2:
|
|
return bot.reply("What coin?")
|
|
symbol = trigger.args[1]
|
|
if symbol:
|
|
params["symbol"] = symbol
|
|
res = requests.get(URI + "/coin", 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] \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"
|
|
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)
|