최현영

whereur

......@@ -18,9 +18,8 @@ const sslport = 23023;
app.use(bodyParser.json());
//전역변수 선언
var isstart;
var isforecast = 0;
var jsonForforecast;
//var jsonForforecast;
// body-parser를 이용해 application/x-www-form-urlencoded 파싱
app.use(bodyParser.urlencoded({ extended: false }))
......@@ -81,62 +80,122 @@ app.use('/', router);
function ishello(istext){
if (istext == '종료'){
return false;
}
if(istext == '안녕'){
return true;
}
else{
return false;
}
}
function firstforecast(isforecast, eventObj){
function firstforecast(isforecast){
if(isforecast == '1'){
return 1;
return true;
}
else if(isforecast == '2'){
return 2;
return true;
}else {
return false;
}
}
function selecttypeforecast(istype){
if(istype == '버스'){
return true;
}
else if (istype == '일반'){
return true;
}
else{
helloworld(eventObj);
return;
return false;
}
}
function typeforecast(typetext){
if(typetext == '버스서울'){
return true;
}
else if (typetext == '버스지방'){
return true;
}
else if (typetext== '일반서울'){
return true;
}
else if(typetext == '일반지방'){
return true;
}
else false;
}
app.post('/hook', function (req, res) {
//console.log(jsonForforecast);
var isstart;
var isforecast;
var isselecttypeforecast;
var istypeforecast;
var eventObj = req.body.events[0];
var source = eventObj.source;
var message = eventObj.message;
// request log
console.log('======================', new Date() ,'======================');
console.log('[request]', req.body);
console.log('[request source] ', source);
console.log('[request message]', message);
isstart = ishello(message.text);
isforecast = firstforecast(message.text, eventObj);
isstart = ishello(message.text);
if(isstart == true){
console.log('[request hello] ', message);
//console.log(count);
helloworld(eventObj );
isstart = false;
}
if(isstart == false){
console.log('사용자가 종료를 입력했습니다.');
isforecast = null;
helloworld(eventObj);
}
if(isforecast == 1){
isforecast = firstforecast(message.text);
if(isforecast){
if(message.text == '1'){
console.log('[request Order] ', message);
findroad(eventObj);
}
else if (isforecast == 2){
else if (message.text == '2'){
console.log('[request Order] ', message);
viewhtml(eventObj);
}
}
isselecttypeforecast = selecttypeforecast(message.text);
if(isselecttypeforecast == true){
if( message.text == '버스'){
console.log('버스에보')
busforecast(eventObj);
}
else if(message.text == '일반'){
console.log('일반예보');
normalforecast(eventObj);
}
}
istypeforecast = typeforecast(message.text);
if(istypeforecast == true){
if( message.text == '버스서울'){
console.log('버스에보')
busforecasttoS(eventObj);
}
else if(message.text == '버스지방'){
console.log('버스예보');
busforecasttoG(eventObj);
}
else if(message.text == '일반서울'){
console.log('일반예보')
normalforecasttoS(eventObj, jsonForforecast);
}
else if(message.text == '일반지방'){
console.log('일반에보');
normalforecasttoG(eventObj, jsonForforecast);
}
}
res.sendStatus(200);
});
......@@ -187,10 +246,82 @@ function viewhtml(eventObj){
{
"type":"text",
"text":"https://www.chyoss.tk:23023/public/maprealtime.html"
}
]
}
},(error, response, body) => {
console.log(body)
});
}
function findroad(eventObj){
jsonforecast(function(object){
var obj = object;
var jsonForforecast = obj;
console.log(jsonForforecast);
var year = jsonForforecast.list[0].sdate.substr(0,4);
var month = jsonForforecast.list[0].sdate.substr(4,2);
var day = jsonForforecast.list[0].sdate.substr(6,2);
var hour = jsonForforecast.list[0].stime.substr(0,2);
var min = jsonForforecast.list[0].stime.substr(2,2);
request.post(
{
url: TARGET_URL,
headers: {
'Authorization': `Bearer ${TOKEN}`
},
json: {
"replyToken":eventObj.replyToken,
"messages":[
{
"type":"text",
"text":"교통예보를 시작합니다."
},
{
"type":"text",
"text": year + '년 ' + month + "월 " + day + "일 " + hour + ":" + min + "기준입니다."
},
{
"type":"text",
"text": '현재 전국 교통량은 대략' + jsonForforecast.list[0].cjunkook + '대 이며, 지방방향 교통량은 대략 ' + jsonForforecast.list[0].cjibangDir + '대, 서울방향 교통량은 대략 ' + jsonForforecast.list[0].cseoulDir + '대입니다.'
},
{
"type":"text",
"text":"버스기준으로 보시겠습니까 아니면 일반 승용차 기준으로 보시겠습니까? 버스기준으로 보실려면 '버스'를, 일반 승용차 기준으로 보실려면 '일반'을 입력해 주세요."
}
]
}
},(error, response, body) => {
console.log(body)
});
});
}
function busforecast(eventObj){
request.post(
{
url: TARGET_URL,
headers: {
'Authorization': `Bearer ${TOKEN}`
},
json: {
"replyToken":eventObj.replyToken,
"messages":[
{
"type":"text",
"text":"버스 예보를 시작합니다."
},
{
"type":"text",
"text":"'서울발 지방행' 교통예보는 '버스서울'을,"
},
{
"type":"text",
"text":"종료를 입력하시면 종료됩니다."
"text":"'지방발 서울행' 교통예보는 '버스지방'을 입력해주세요"
}
]
}
......@@ -201,10 +332,41 @@ function viewhtml(eventObj){
function findroad(eventObj){
function normalforecast(eventObj){
request.post(
{
url: TARGET_URL,
headers: {
'Authorization': `Bearer ${TOKEN}`
},
json: {
"replyToken":eventObj.replyToken,
"messages":[
{
"type":"text",
"text":"일반 승용차 예보를 시작합니다."
},
{
"type":"text",
"text":"'서울발 지방행' 교통예보는 '일반서울'을,"
},
{
"type":"text",
"text":"'지방발 서울행' 교통예보는 '일반지방'을 입력해주세요"
}
]
}
},(error, response, body) => {
console.log(body)
});
}
function busforecasttoS(eventObj){
jsonforecast(function(object){
var obj = object;
jsonForforecast = obj;
var jsonForforecast = obj;
console.log(jsonForforecast);
request.post(
{
......@@ -217,31 +379,198 @@ function findroad(eventObj){
"messages":[
{
"type":"text",
"text":"교통예보를 시작합니다."
"text":"서울발 버스 소요 시간은 다음과 같습니다."
},
{
"type":"text",
"text":'서울발 대전행 : 대략 ' + jsonForforecast.list[0].csudj_bus + '소요 예상 , ' + '서울발 대구행 : 대략 ' + jsonForforecast.list[0].csudg_bus + '소요 예상'
},
{
"type":"text",
"text":jsonForforecast.list[0].sdate+ ', ' + jsonForforecast.list[0].stime + '기준입니다.'
"text":'서울발 울산행 : 대략 ' + jsonForforecast.list[0].csuus_bus + '소요 예상' + '서울발 부산행 : 대략 ' + jsonForforecast.list[0].csubs_bus + '소요 예상'
},
{
"type":"text",
"text": '현재 전국 교통량은 ' + jsonForforecast.list[0].cjunkook + '대 이며, 지방방향 교통량은 ' + jsonForforecast.list[0].cjibangDir + '대, 서울방향 교통량은 ' + jsonForforecast.list[0].cseoulDir + '대입니다.'
"text":'서울발 목포행 : 대략 ' + jsonForforecast.list[0].csump_bus + '소요 예상' + '서울발 광주행 : 대략 ' + jsonForforecast.list[0].csugj_bus + '소요 예상'
},
{
"type":"text",
"text":"버스기준으로 보시겠습니까 아니면 일반 승용차 기준으로 보시겠습니까? 버스기준으로 보실려면 1번을, 일반 승용차 기준으로 보실려면 2번을 입력해 주세요."
"text":'서울발 강릉행 : 대략 ' + jsonForforecast.list[0].csukr_bus + '소요 예상'
}
]
}
},(error, response, body) => {
console.log(body)
});
});
}
function busforecasttoG(eventObj){
jsonforecast(function(object){
var obj = object;
var jsonForforecast = obj;
request.post(
{
url: TARGET_URL,
headers: {
'Authorization': `Bearer ${TOKEN}`
},
json: {
"replyToken":eventObj.replyToken,
"messages":[
{
"type":"text",
"text":"지방발 버스 소요 시간은 다음과 같습니다."
},
{
"type":"text",
"text":"대전발 서울행 : 대략 " + jsonForforecast.list[0].cdjsu_bus + "소요 예상"
},
{
"type":"text",
"text":"대구발 서울행 : 대략 " + jsonForforecast.list[0].cdgsu_bus + "소요 예상"
},
{
"type":"text",
"text":"울산발 서울행 : 대략 " + jsonForforecast.list[0].cussu_bus + "소요 예상"
},
{
"type":"text",
"text":"부산발 서울행 : 대략 " + jsonForforecast.list[0].cbssu_bus + "소요 예상"
},
{
"type":"text",
"text":"목포발 서울행 : 대략 " + jsonForforecast.list[0].cmpsu_bus + "소요 예상"
},
{
"type":"text",
"text":"광주발 서울행 : 대략 " + jsonForforecast.list[0].cgjsu_bus + "소요 예상"
},
{
"type":"text",
"text":"강릉발 서울행 : 대략 " + jsonForforecast.list[0].ckrsu_bus + "소요 예상"
}
]
}
},(error, response, body) => {
console.log(body)
});
});
}
function normalforecasttoS(eventObj, json){
request.post(
{
url: TARGET_URL,
headers: {
'Authorization': `Bearer ${TOKEN}`
},
json: {
"replyToken":eventObj.replyToken,
"messages":[
{
"type":"text",
"text":"서울발 일반 자가용 소요 시간은 다음과 같습니다."
},
{
"type":"text",
"text":"서울발 대전행 : 대략 " + json.list[0].csudj + "소요 예상"
},
{
"type":"text",
"text":"서울발 대구행 : 대략 " + json.list[0].csudg+ "소요 예상"
},
{
"type":"text",
"text":"서울발 울산행 : 대략 " + json.list[0].csuus + "소요 예상"
},
{
"type":"text",
"text":"서울발 부산행 : 대략 " + json.list[0].csubs + "소요 예상"
},
{
"type":"text",
"text":"서울발 목포행 : 대략 " + json.list[0].csump+ "소요 예상"
},
{
"type":"text",
"text":"서울발 광주행 : 대략 " + json.list[0].csugj + "소요 예상"
},
{
"type":"text",
"text":"서울발 강릉행 : 대략 " + json.list[0].csukr + "소요 예상"
}
]
}
},(error, response, body) => {
console.log(body)
});
}
function normalforecasttoG(eventObj, json){
request.post(
{
url: TARGET_URL,
headers: {
'Authorization': `Bearer ${TOKEN}`
},
json: {
"replyToken":eventObj.replyToken,
"messages":[
{
"type":"text",
"text":"지방발 일반 자가용 소요 시간은 다음과 같습니다."
},
{
"type":"text",
"text":"대전발 서울행 : 대략 " + json.list[0].cdjsu + "소요 예상"
},
{
"type":"text",
"text":"대구발 서울행 : 대략 " + json.list[0].cdgsu + "소요 예상"
},
{
"type":"text",
"text":"울산발 서울행 : 대략 " + json.list[0].cussu + "소요 예상"
},
{
"type":"text",
"text":"부산발 서울행 : 대략 " + json.list[0].cbssu + "소요 예상"
},
{
"type":"text",
"text":"목포발 서울행 : 대략 " + json.list[0].cmpsu + "소요 예상"
},
{
"type":"text",
"text":"광주발 서울행 : 대략 " + json.list[0].cgjsu + "소요 예상"
},
{
"type":"text",
"text":"강릉발 서울행 : 대략 " + json.list[0].ckrsu + "소요 예상"
}
]
}
},(error, response, body) => {
console.log(body)
});
}
// var url1 = 'http://data.ex.co.kr/openapi/odtraffic/trafficAmountByCongest';
......