Showing
1 changed file
with
51 additions
and
7 deletions
1 | var express = require('express'); | 1 | var express = require('express'); |
2 | -const lineToken = require('./apiKey.json'); | 2 | +const Token = require('./apiKey.json'); |
3 | const request = require('request');const TARGET_URL = 'https://api.line.me/v2/bot/message/reply' | 3 | const request = require('request');const TARGET_URL = 'https://api.line.me/v2/bot/message/reply' |
4 | -const TOKEN = lineToken.line_token; | 4 | +const TOKEN = Token.line_token; |
5 | +const binanceKey = Token.binance_key; | ||
5 | const fs = require('fs'); | 6 | const fs = require('fs'); |
6 | const path = require('path'); | 7 | const path = require('path'); |
7 | const HTTPS = require('https'); | 8 | const HTTPS = require('https'); |
8 | const fetch = require('node-fetch'); | 9 | const fetch = require('node-fetch'); |
10 | +const rp = require('request-promise'); | ||
9 | const domain = "2018102235.oss2021.tk" | 11 | const domain = "2018102235.oss2021.tk" |
10 | const sslport = 23023; | 12 | const sslport = 23023; |
11 | const bodyParser = require('body-parser'); | 13 | const bodyParser = require('body-parser'); |
... | @@ -31,8 +33,6 @@ app.post('/hook', function (req, res) { | ... | @@ -31,8 +33,6 @@ app.post('/hook', function (req, res) { |
31 | } | 33 | } |
32 | } | 34 | } |
33 | 35 | ||
34 | - | ||
35 | - | ||
36 | res.sendStatus(200); | 36 | res.sendStatus(200); |
37 | }); | 37 | }); |
38 | 38 | ||
... | @@ -54,6 +54,47 @@ function kimp(replyToken,message){ | ... | @@ -54,6 +54,47 @@ function kimp(replyToken,message){ |
54 | return promise; | 54 | return promise; |
55 | } | 55 | } |
56 | korean_price().then(function(upbitPrice){ | 56 | korean_price().then(function(upbitPrice){ |
57 | + compare_price(replyToken, message, upbitPrice); | ||
58 | + }); | ||
59 | +} | ||
60 | + | ||
61 | +function compare_price(replyToken, message, upbitPrice){ | ||
62 | + var binancePrice = 0; | ||
63 | + function binance_price(){ | ||
64 | + var promise = new Promise(function(resolve, reject){ | ||
65 | + const url = 'https://api.binance.com/api/v3/ticker/price?symbol='+message+'USDT'; | ||
66 | + const options = {method: 'GET', headers: {Accept: 'application/json'}}; | ||
67 | + const requestOptions = { | ||
68 | + method: 'GET', | ||
69 | + uri: 'https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest', | ||
70 | + qs: { | ||
71 | + 'start': '1', | ||
72 | + 'limit': '10', | ||
73 | + 'convert': 'KRW' | ||
74 | + }, | ||
75 | + headers: { | ||
76 | + 'X-CMC_PRO_API_KEY': binanceKey | ||
77 | + }, | ||
78 | + json: true, | ||
79 | + gzip: true | ||
80 | + }; | ||
81 | + fetch(url, options) | ||
82 | + .then(res => res.json()) | ||
83 | + .then(json => | ||
84 | + rp(requestOptions).then(response =>{ | ||
85 | + var i=0; | ||
86 | + while(response.data[i].id !== 825){ | ||
87 | + i = i+1; | ||
88 | + } | ||
89 | + binancePrice = json.price*response.data[i].quote.KRW.price; | ||
90 | + resolve(binancePrice); | ||
91 | + }) | ||
92 | + ).catch(err => console.error('error:' + err)); | ||
93 | + }); | ||
94 | + return promise; | ||
95 | + } | ||
96 | + | ||
97 | + binance_price().then(function(binancePrice){ | ||
57 | request.post( | 98 | request.post( |
58 | { | 99 | { |
59 | url: TARGET_URL, | 100 | url: TARGET_URL, |
... | @@ -65,18 +106,21 @@ function kimp(replyToken,message){ | ... | @@ -65,18 +106,21 @@ function kimp(replyToken,message){ |
65 | "messages":[ | 106 | "messages":[ |
66 | { | 107 | { |
67 | "type":"text", | 108 | "type":"text", |
68 | - "text":String(upbitPrice) | 109 | + "text":"binance : "+String(binancePrice.toFixed())+"원" |
69 | }, | 110 | }, |
111 | + { | ||
112 | + "type":"text", | ||
113 | + "text":"Upbit : "+String(upbitPrice)+"원" | ||
114 | + } | ||
70 | ] | 115 | ] |
71 | } | 116 | } |
72 | },(error, response, body) => { | 117 | },(error, response, body) => { |
73 | console.log(body) | 118 | console.log(body) |
74 | }); | 119 | }); |
75 | res.sendStatus(200); | 120 | res.sendStatus(200); |
76 | - }); | 121 | + }); |
77 | } | 122 | } |
78 | 123 | ||
79 | - | ||
80 | try { | 124 | try { |
81 | const option = { | 125 | const option = { |
82 | ca: fs.readFileSync('/etc/letsencrypt/live/' + domain +'/fullchain.pem'), | 126 | ca: fs.readFileSync('/etc/letsencrypt/live/' + domain +'/fullchain.pem'), | ... | ... |
-
Please register or login to post a comment