6 changed files with 170 additions and 2 deletions
@ -0,0 +1,72 @@ |
|||
import * as Sphinx from 'sphinx-bot' |
|||
import { finalAction } from '../controllers/actions' |
|||
import * as fetch from 'node-fetch' |
|||
const msg_types = Sphinx.MSG_TYPE |
|||
|
|||
let initted = false |
|||
|
|||
/* |
|||
curl -H "X-CMC_PRO_API_KEY: 2fddf900-9114-471c-849d-cad3e3923e5b" -H "Accept: application/json" -d "symbol=BTC&convert=USD" -G https://pro-api.coinmarketcap.com/v1/cryptocurrency/quotes/latest
|
|||
*/ |
|||
|
|||
const token = '2fddf900-9114-471c-849d-cad3e3923e5b' |
|||
const url = 'https://pro-api.coinmarketcap.com/v1/cryptocurrency/quotes/latest' |
|||
|
|||
export function init() { |
|||
if(initted) return |
|||
initted = true |
|||
|
|||
const client = new Sphinx.Client() |
|||
client.login('_', finalAction) |
|||
|
|||
client.on(msg_types.MESSAGE, async (message: Sphinx.Message) => { |
|||
const arr = message.content.split(' ') |
|||
if (arr.length < 2) return |
|||
if (arr[0]!=='/btc') return |
|||
const cmd = arr[1] |
|||
|
|||
switch (cmd) { |
|||
|
|||
case 'price': |
|||
if (arr.length < 3) return |
|||
console.log("price", arr[2]) |
|||
try { |
|||
const r = await fetch(url+'?symbol=BTC&convert=USD',{ |
|||
headers:{'X-CMC_PRO_API_KEY': token, 'Accept': 'application/json'} |
|||
}) |
|||
if (!r.ok) return |
|||
const j = await r.json() |
|||
const price = j.data.BTC.quote.USD.price.toFixed(2) |
|||
const percentChange24 = j.data.BTC.quote.USD.percent_change_24h.toFixed(2) |
|||
const embed = new Sphinx.MessageEmbed() |
|||
.setAuthor('BitcoinBot') |
|||
.setTitle('Bitcoin Price:') |
|||
.addFields([ |
|||
{ name: 'Price:', value: price }, |
|||
{ name: '24 Hour Change', value: percentChange24+'%' } |
|||
]) |
|||
.setThumbnail(botSVG) |
|||
message.channel.send({ embed }) |
|||
} catch(e){ |
|||
console.log('BTC bot error',e) |
|||
} |
|||
return |
|||
|
|||
default: |
|||
const embed = new Sphinx.MessageEmbed() |
|||
.setAuthor('BitcoinBot') |
|||
.setTitle('BitcoinBot Commands:') |
|||
.addFields([ |
|||
{ name: 'Print BTC price', value: '/btc price' }, |
|||
{ name: 'Help', value: '/btc help' } |
|||
]) |
|||
.setThumbnail(botSVG) |
|||
message.channel.send({ embed }) |
|||
return |
|||
} |
|||
}) |
|||
} |
|||
|
|||
const botSVG = `<svg viewBox="64 64 896 896" height="12" width="12" fill="white">
|
|||
<path d="M300 328a60 60 0 10120 0 60 60 0 10-120 0zM852 64H172c-17.7 0-32 14.3-32 32v660c0 17.7 14.3 32 32 32h680c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-32 660H204V128h616v596zM604 328a60 60 0 10120 0 60 60 0 10-120 0zm250.2 556H169.8c-16.5 0-29.8 14.3-29.8 32v36c0 4.4 3.3 8 7.4 8h729.1c4.1 0 7.4-3.6 7.4-8v-36c.1-17.7-13.2-32-29.7-32zM664 508H360c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h304c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z" /> |
|||
</svg>` |
@ -0,0 +1,14 @@ |
|||
|
|||
|
|||
CREATE TABLE sphinx_chat_members ( |
|||
id INT, |
|||
chat_id INT, |
|||
contact_id INT, |
|||
role INT, |
|||
total_spent INT, |
|||
total_messages INT, |
|||
last_active DATETIME, |
|||
status INT, |
|||
created_at DATETIME, |
|||
updated_at DATETIME |
|||
); |
@ -0,0 +1,81 @@ |
|||
"use strict"; |
|||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { |
|||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } |
|||
return new (P || (P = Promise))(function (resolve, reject) { |
|||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } |
|||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } |
|||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } |
|||
step((generator = generator.apply(thisArg, _arguments || [])).next()); |
|||
}); |
|||
}; |
|||
Object.defineProperty(exports, "__esModule", { value: true }); |
|||
const Sphinx = require("sphinx-bot"); |
|||
const actions_1 = require("../controllers/actions"); |
|||
const fetch = require("node-fetch"); |
|||
const msg_types = Sphinx.MSG_TYPE; |
|||
let initted = false; |
|||
/* |
|||
curl -H "X-CMC_PRO_API_KEY: 2fddf900-9114-471c-849d-cad3e3923e5b" -H "Accept: application/json" -d "symbol=BTC&convert=USD" -G https://pro-api.coinmarketcap.com/v1/cryptocurrency/quotes/latest
|
|||
*/ |
|||
const token = '2fddf900-9114-471c-849d-cad3e3923e5b'; |
|||
const url = 'https://pro-api.coinmarketcap.com/v1/cryptocurrency/quotes/latest'; |
|||
function init() { |
|||
if (initted) |
|||
return; |
|||
initted = true; |
|||
const client = new Sphinx.Client(); |
|||
client.login('_', actions_1.finalAction); |
|||
client.on(msg_types.MESSAGE, (message) => __awaiter(this, void 0, void 0, function* () { |
|||
const arr = message.content.split(' '); |
|||
if (arr.length < 2) |
|||
return; |
|||
if (arr[0] !== '/btc') |
|||
return; |
|||
const cmd = arr[1]; |
|||
switch (cmd) { |
|||
case 'price': |
|||
if (arr.length < 3) |
|||
return; |
|||
console.log("price", arr[2]); |
|||
try { |
|||
const r = yield fetch(url + '?symbol=BTC&convert=USD', { |
|||
headers: { 'X-CMC_PRO_API_KEY': token, 'Accept': 'application/json' } |
|||
}); |
|||
if (!r.ok) |
|||
return; |
|||
const j = yield r.json(); |
|||
const price = j.data.BTC.quote.USD.price.toFixed(2); |
|||
const percentChange24 = j.data.BTC.quote.USD.percent_change_24h.toFixed(2); |
|||
const embed = new Sphinx.MessageEmbed() |
|||
.setAuthor('BitcoinBot') |
|||
.setTitle('Bitcoin Price:') |
|||
.addFields([ |
|||
{ name: 'Price:', value: price }, |
|||
{ name: '24 Hour Change', value: percentChange24 + '%' } |
|||
]) |
|||
.setThumbnail(botSVG); |
|||
message.channel.send({ embed }); |
|||
} |
|||
catch (e) { |
|||
console.log('BTC bot error', e); |
|||
} |
|||
return; |
|||
default: |
|||
const embed = new Sphinx.MessageEmbed() |
|||
.setAuthor('BitcoinBot') |
|||
.setTitle('BitcoinBot Commands:') |
|||
.addFields([ |
|||
{ name: 'Print BTC price', value: '/btc price' }, |
|||
{ name: 'Help', value: '/btc help' } |
|||
]) |
|||
.setThumbnail(botSVG); |
|||
message.channel.send({ embed }); |
|||
return; |
|||
} |
|||
})); |
|||
} |
|||
exports.init = init; |
|||
const botSVG = `<svg viewBox="64 64 896 896" height="12" width="12" fill="white">
|
|||
<path d="M300 328a60 60 0 10120 0 60 60 0 10-120 0zM852 64H172c-17.7 0-32 14.3-32 32v660c0 17.7 14.3 32 32 32h680c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-32 660H204V128h616v596zM604 328a60 60 0 10120 0 60 60 0 10-120 0zm250.2 556H169.8c-16.5 0-29.8 14.3-29.8 32v36c0 4.4 3.3 8 7.4 8h729.1c4.1 0 7.4-3.6 7.4-8v-36c.1-17.7-13.2-32-29.7-32zM664 508H360c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h304c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z" /> |
|||
</svg>`; |
|||
//# sourceMappingURL=btc.js.map
|
@ -0,0 +1 @@ |
|||
{"version":3,"file":"btc.js","sourceRoot":"","sources":["../../../api/bots/btc.ts"],"names":[],"mappings":"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"} |
Loading…
Reference in new issue