박하늘

test code

//app.js
var express = require('express');
const request = require('request');
const TARGET_URL = 'https://api.line.me/v2/bot/message/reply'
const TOKEN = 'OVIxKODBqM8Pn2dpFtFeSLsDbBvApfTu88rh8wFGOzfvgvPjmBH0A4XKii97VxIDO9shYyTix4qGq32vwvL895Rbss5VSVEiU/XG5lOdyTLgECkSQKOdObSetZwcVHbGmzZJ+0Cz5vZrB5KuImOwrwdB04t89/1O/w1cDnyilFU='
const fs = require('fs');
const path = require('path');
const HTTPS = require('https');
const domain = "2017103989.oss2021.tk"
const sslport = 23023;
const bodyParser = require('body-parser');
var app = express();
app.use(bodyParser.json());
app.post('/hook', function (req, res) {
var eventObj = req.body.events[0];
var source = eventObj.source;
var message = eventObj.message;
var spawn = require('child_process').spawn;
var process = spawn('pyhton3', ["./basic.py", eventObj.message.text]);
process.stdout.on('data', function(data){
console.log(data.toString());
})
app.use(express.urlencoded({ extended: false }));
app.use(express.json());
// request log
console.log('======================', new Date() ,'======================');
console.log('[request]', req.body);
console.log('[request source] ', eventObj.source);
console.log('[request message]', eventObj.message);
app.get('/keyboard', (req, res) => {
var data = {'type': 'text'}
res.json(data);
request.post(
{
url: TARGET_URL,
headers: {
'Authorization': `Bearer ${TOKEN}`
},
json: {
"replyToken":eventObj.replyToken,
"messages":[
{
"type":"text",
"text":"Hello"
},
{
"type":"text",
"text":"May I help you?"
}
]
}
},(error, response, body) => {
console.log(body)
});
res.sendStatus(200);
});
app.post('/message', (req, res) => {
var question = req.body.userRequest.utterance;
var goMain = '처음으로';
try {
const option = {
ca: fs.readFileSync('/etc/letsencrypt/live/' + domain +'/fullchain.pem'),
key: fs.readFileSync(path.resolve(process.cwd(), '/etc/letsencrypt/live/' + domain +'/privkey.pem'), 'utf8').toString(),
cert: fs.readFileSync(path.resolve(process.cwd(), '/etc/letsencrypt/live/' + domain +'/cert.pem'), 'utf8').toString(),
};
if (question === '테스트') {
var data = {
'version': '2.0',
'template': {
'outputs': [{
'simpleText': {
'text': '테스트'
}
}],
'quickReplies': [{
'label': goMain,
'action': 'message',
'messageText': goMain
}]
}
}
HTTPS.createServer(option, app).listen(sslport, () => {
console.log(`[HTTPS] Server is started on port ${sslport}`);
});
} catch (error) {
console.log('[HTTPS] HTTPS 오류가 발생하였습니다. HTTPS 서버는 실행되지 않습니다.');
console.log(error);
}
res.json(data);
});
app.listen(3000, () => console.log('node on 3000'));
\ No newline at end of file
......
import FinanceDataReader as fdr
import pandas as pd
import sys
def basicinform(input):
stocks = pd.read_csv('stockcodename.csv', index_col=0)
symbol = ''
for i in enumerate(stocks.Name):
if i[1] == input:
symbol = (stocks.iloc[i[0]].Symbol)
break
df = fdr.DataReader(symbol)
ror_df = df.Close.pct_change()
volume = df.Volume.iloc[-1]
price = df.Close.iloc[-1]
ror = ror_df[-1]
value = {
"현재가": price,
"거래랑": volume,
"전일 대비 수익률:": ror
}
return value
args = sys.argv
print(basicinform(sys.args[1]))