Showing
1 changed file
with
46 additions
and
31 deletions
... | @@ -10,8 +10,7 @@ const BusArrivalUrl = bus_url + '?servicekey=' + bus_key + '&stationId=' + stati | ... | @@ -10,8 +10,7 @@ const BusArrivalUrl = bus_url + '?servicekey=' + bus_key + '&stationId=' + stati |
10 | //console.log(BusArrivalUrl); | 10 | //console.log(BusArrivalUrl); |
11 | 11 | ||
12 | var routeID = []; | 12 | var routeID = []; |
13 | -var Bus = []; // 버스 차 번호( ex) 경기 70바 3713 ) / 도착 여부 확인용 | 13 | +var Bus = []; |
14 | -var BusNum = []; // 버스 번호 ( ex) 9) | ||
15 | request(BusArrivalUrl, (err, res, body) => { | 14 | request(BusArrivalUrl, (err, res, body) => { |
16 | var $ = cheerio.load(body, {decodeEntities: false}); | 15 | var $ = cheerio.load(body, {decodeEntities: false}); |
17 | 16 | ||
... | @@ -65,32 +64,48 @@ function useFor(){ | ... | @@ -65,32 +64,48 @@ function useFor(){ |
65 | } | 64 | } |
66 | setTimeout(useFor, 500); | 65 | setTimeout(useFor, 500); |
67 | 66 | ||
68 | -// const GateBusUrl = bus_url + '?servicekey=' + bus_key + '&stationId=' + gateStationID; | ||
69 | - | ||
70 | -// request(GateBusUrl, (err, res, body) => { | ||
71 | -// var $ = cheerio.load(body, {decodeEntities: false}); | ||
72 | - | ||
73 | -// $('busArrivalList').each(function(idx){ | ||
74 | -// let route = $(this).find('routeId').text(); | ||
75 | -// let num = $(this).find('plateNo1').text(); | ||
76 | - | ||
77 | -// var index = routeID.indexOf(route); | ||
78 | -// if(index > -1){ | ||
79 | -// for(var i=0; i<Bus.length; i++){ | ||
80 | -// if(Bus[i]['route'] == route){ | ||
81 | -// if(Bus[i]['num'] != num){ | ||
82 | -// Bus[i]['pass'] = true; | ||
83 | -// Bus[i]['num'] == num; | ||
84 | -// } | ||
85 | -// } | ||
86 | -// } | ||
87 | -// var info = new Object(); | ||
88 | -// info.route = route; | ||
89 | -// info.num = num; | ||
90 | -// info.pass = false; // json 형태로 저장 | ||
91 | -// Bus.push(info); | ||
92 | -// } | ||
93 | -// }) | ||
94 | -// //console.log(routeID); | ||
95 | -// //console.log(Bus); | ||
96 | -// }) | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
67 | +const GateBusUrl = bus_url + '?servicekey=' + bus_key + '&stationId=' + gateStationID; //국제캠 정문 정류장 | ||
68 | +let date = new Date(); | ||
69 | +let curHour = date.getHours(); // 현재 시간 | ||
70 | +let curMinute = date.getMinutes(); //현재 분 | ||
71 | + | ||
72 | +function predict(){ | ||
73 | + request(GateBusUrl, (err, res, body) => { | ||
74 | + var $ = cheerio.load(body, {decodeEntities: false}); | ||
75 | + | ||
76 | + $('busArrivalList').each(function(idx){ | ||
77 | + let route = $(this).find('routeId').text(); | ||
78 | + | ||
79 | + var index = Bus.findIndex(function(e, idx){ return e.routeId == route;}); | ||
80 | + if(index > -1){ | ||
81 | + //var num = $(this).find('plateNo1').text(); // 버스 차량번호 ex) 70사 1290 | ||
82 | + var time = $(this).find('predictTime1').text(); // 버스 예상 도착시간 | ||
83 | + var predictHour1 = date.getHours(); | ||
84 | + var predictMinute1 = date.getMinutes() + Bus[index].mintime - (3 - (time*1)); // 사색의 광장 -> 경희대학교 3분정도 소요 | ||
85 | + var predictHour2 = date.getHours(); | ||
86 | + var predictMinute2 = date.getMinutes() + Bus[index].maxtime - (3 - (time*1)); // time*1 : string to integer 형변환 | ||
87 | + | ||
88 | + if(predictMinute1 >= 60){ | ||
89 | + predictHour1 += 1; | ||
90 | + predictMinute1 -= 60; | ||
91 | + } | ||
92 | + if(predictMinute2 >= 60){ | ||
93 | + predictHour2 += 1; | ||
94 | + predictMinute2 -= 60; | ||
95 | + } | ||
96 | + | ||
97 | + Bus[index]["MinPredictTime"] = predictHour1 + ":" + predictMinute1; | ||
98 | + Bus[index]["MaxPredictTime"] = predictHour2 + ":" + predictMinute2; | ||
99 | + } | ||
100 | + }) | ||
101 | + console.log(Bus); | ||
102 | + }) | ||
103 | +} | ||
104 | + | ||
105 | +function useWhile(){ | ||
106 | + while(true){ | ||
107 | + setTimeout(predict, 6000); | ||
108 | + } | ||
109 | +} | ||
110 | + | ||
111 | +setTimeout(useWhile, 1000); | ||
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
-
Please register or login to post a comment