Toggle navigation
Toggle navigation
This project
Loading...
Sign in
박하늘
/
stock_chatbot
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Snippets
Network
Create a new issue
Builds
Commits
Issue Boards
Authored by
ZuseongZIN
2021-05-31 21:44:11 +0900
Browse Files
Options
Browse Files
Download
Plain Diff
Commit
66578ae2aa2027092df8f08c96d8808e7485a20f
66578ae2
2 parents
b7884436
72a8ad48
Merge branch 'server' of
http://khuhub.khu.ac.kr/2017103989/stock_chatbot
into develop
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
103 additions
and
30 deletions
server/app.js
server/basic.py
server/app.js
View file @
66578ae
//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
pystring
;
const
spawn
=
require
(
"child_process"
).
spawn
;
const
process
=
spawn
(
"python"
,
[
"basic.py"
,
eventObj
.
message
.
text
]);
const
Callback
=
(
data
)
=>
{
console
.
log
(
"Data :"
,
data
.
toString
());
pystring
=
data
.
toString
();
// request log
console
.
log
(
'======================'
,
new
Date
()
,
'======================'
);
console
.
log
(
'[request]'
,
req
.
body
);
console
.
log
(
'[request source] '
,
eventObj
.
source
);
console
.
log
(
'[request message]'
,
eventObj
.
message
);
request
.
post
(
{
url
:
TARGET_URL
,
headers
:
{
'Authorization'
:
`Bearer
${
TOKEN
}
`
},
json
:
{
"replyToken"
:
eventObj
.
replyToken
,
"messages"
:[
{
"type"
:
"text"
,
"text"
:
pystring
},
{
"type"
:
"text"
,
"text"
:
"May I help you?"
}
]
}
},(
error
,
response
,
body
)
=>
{
console
.
log
(
body
)
});
app
.
use
(
express
.
urlencoded
({
extended
:
false
}));
app
.
use
(
express
.
json
());
res
.
sendStatus
(
200
);
app
.
get
(
'/keyboard'
,
(
req
,
res
)
=>
{
var
data
=
{
'type'
:
'text'
}
res
.
json
(
data
);
};
process
.
stdout
.
on
(
"data"
,
Callback
);
});
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
...
...
server/basic.py
0 → 100644
View file @
66578ae
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
# print(basicinform('삼성전자'))
args
=
sys
.
argv
print
(
basicinform
(
args
[
1
]))
Please
register
or
login
to post a comment