Jihoon

pulled from origin, fixed conflicts

1 +{
2 + // Use IntelliSense to learn about possible attributes.
3 + // Hover to view descriptions of existing attributes.
4 + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
5 + "version": "0.2.0",
6 + "configurations": [
7 + {
8 + "type": "node",
9 + "request": "launch",
10 + "name": "Launch Program",
11 + "skipFiles": [
12 + "<node_internals>/**"
13 + ],
14 + "program": "${workspaceFolder}\\test.js"
15 + }
16 + ]
17 +}
...\ No newline at end of file ...\ No newline at end of file
1 +<!DOCTYPE html>
2 +<html lang="en">
3 +
4 +<head>
5 + <meta charset="UTF-8">
6 + <title>OSW</title>
7 + <link rel="stylesheet" href="/css/style.css" crossorigin="anonymous">
8 + <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css"
9 + integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
10 + <link href="https://fonts.googleapis.com/css?family=Jua&display=swap" rel="stylesheet">
11 +</head>
12 +
13 +<body>
14 + helloworld
15 +
16 +
17 + <script src="https://code.jquery.com/jquery-3.3.1.min.js"
18 + integrity="sha384-tsQFqpEReu7ZLhBV2VZlAu7zcOV+rXbYlF2cqB8txI/8aZajjp4Bqd+V6D5IgvKT"
19 + crossorigin="anonymous"></script>
20 + <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js"
21 + integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49"
22 + crossorigin="anonymous"></script>
23 + <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"
24 + integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy"
25 + crossorigin="anonymous"></script>
26 +</body>
27 +
28 +</html>
...\ No newline at end of file ...\ No newline at end of file
...@@ -2,30 +2,63 @@ from bs4 import BeautifulSoup ...@@ -2,30 +2,63 @@ from bs4 import BeautifulSoup
2 from urllib.request import urlopen 2 from urllib.request import urlopen
3 import openpyxl 3 import openpyxl
4 import datetime 4 import datetime
5 +
5 # coding = utf-8 6 # coding = utf-8
6 -filename = "C://area_code.xlsx" # area_code.xlsx 7 +
8 +filename = "area_code.xlsx" # area_code.xlsx
7 book = openpyxl.load_workbook(filename) 9 book = openpyxl.load_workbook(filename)
10 +
8 sheet = book.worksheets[0] 11 sheet = book.worksheets[0]
9 code = [] 12 code = []
13 +
10 for cell in sheet['E']: 14 for cell in sheet['E']:
11 code.append(cell.value) 15 code.append(cell.value)
12 -area = input("읍/면/동을 입력(띄어쓰기 없이 입력 - 예:영통3동)\n") 16 +
17 +
18 +sys.stdin.reconfigure(encoding='utf-8')
19 +sys.stdout.reconfigure(encoding='utf-8')
20 +area = input()
21 +print(area)
13 col = code.index(area) 22 col = code.index(area)
14 area_code_index = 'B' + str(col+1) 23 area_code_index = 'B' + str(col+1)
15 area_code = sheet[area_code_index].value 24 area_code = sheet[area_code_index].value
16 #print(area_code) 25 #print(area_code)
26 +
17 now = datetime.datetime.now() 27 now = datetime.datetime.now()
18 nowDate = now.strftime('%Y%m%d') #20191201형태로 연월일 받음 28 nowDate = now.strftime('%Y%m%d') #20191201형태로 연월일 받음
19 #print(nowDate) 29 #print(nowDate)
30 +
20 url = "http://newsky2.kma.go.kr/iros/RetrieveLifeIndexService3/getSensorytemLifeList?serviceKey=UwTMv516Y0zIgZCDqzdPtf1jmbv287%2BOn1kqxcZizw8%2Be5OV5UmIc09icqMqSpEMbHOiCWoPK%2BZVD%2Bjbc%2BwgBg%3D%3D&areaNo=" + area_code + "&time=" + nowDate + "03" 31 url = "http://newsky2.kma.go.kr/iros/RetrieveLifeIndexService3/getSensorytemLifeList?serviceKey=UwTMv516Y0zIgZCDqzdPtf1jmbv287%2BOn1kqxcZizw8%2Be5OV5UmIc09icqMqSpEMbHOiCWoPK%2BZVD%2Bjbc%2BwgBg%3D%3D&areaNo=" + area_code + "&time=" + nowDate + "03"
32 +
21 result = urlopen(url) 33 result = urlopen(url)
34 +
22 html = result.read() 35 html = result.read()
36 +
23 soup = BeautifulSoup(html, 'html.parser') 37 soup = BeautifulSoup(html, 'html.parser')
38 +
39 +"""
40 +warm_url="http://newsky2.kma.go.kr/iros/RetrieveLifeIndexService3/getSensoryHeatLifeList?ServiceKey=UwTMv516Y0zIgZCDqzdPtf1jmbv287%2BOn1kqxcZizw8%2Be5OV5UmIc09icqMqSpEMbHOiCWoPK%2BZVD%2Bjbc%2BwgBg%3D%3D&areaNo" + area_code + "&requestCode=A20&time=" + nowDate + "06"
41 +
42 +warm_result = urlopen(url)
43 +
44 +warm_html=result.read()
45 +
46 +warm_soup=BeautifulSoup(warm_html,'html.parser')
47 +warm_hours=["h3","h6","h9","h12","h15","h18","h21"]
48 +sens_temper_warm=[]#더위 체감 지수
49 +warm_danger=0 #겨울 경우 위험도
50 +현재 12월 기준으로는 더위 체감 지수는 제공 되고 있지 않다.
51 +"""
24 contents = soup.find("date") 52 contents = soup.find("date")
25 hours = ["h3","h6","h9","h12","h15","h18","h21","h24"] # date의 시간으로부터 n시간 이후의 예측온도 53 hours = ["h3","h6","h9","h12","h15","h18","h21","h24"] # date의 시간으로부터 n시간 이후의 예측온도
26 -sens_temper = [] 54 +sens_temper = [] #체감온도
55 +
27 # 2019120103: 19년 12월 1일 새벽 3시 기준이므로 리스트에는 6시, 9시, ..., 익일 3시까지의 예측 체감온도가 저장됨. 56 # 2019120103: 19년 12월 1일 새벽 3시 기준이므로 리스트에는 6시, 9시, ..., 익일 3시까지의 예측 체감온도가 저장됨.
28 #sens_temper[06시온도,09시온도,12시온도,15시온도,18시온도,21시온도,24시온도,익일03시온도] 57 #sens_temper[06시온도,09시온도,12시온도,15시온도,18시온도,21시온도,24시온도,익일03시온도]
58 +
59 +cold_danger=0 #추울 경우 위험도 숫자가 커질수록 증가
60 +
61 +
29 for i in range(0, len(hours)): 62 for i in range(0, len(hours)):
30 temper = soup.find(hours[i]) 63 temper = soup.find(hours[i])
31 sens_temper.append(int(temper.text)) 64 sens_temper.append(int(temper.text))
...@@ -35,40 +68,55 @@ for i in range(0, len(hours)): ...@@ -35,40 +68,55 @@ for i in range(0, len(hours)):
35 print("익일 03시:", temper.text+"°C") 68 print("익일 03시:", temper.text+"°C")
36 else: 69 else:
37 print(str(int(hours[i][1:])+3)+"시:", temper.text+"°C") 70 print(str(int(hours[i][1:])+3)+"시:", temper.text+"°C")
38 -if max(sens_temper) <= 5: 71 +
39 - if min(sens_temper) >= -5 and min(sens_temper) <=0: 72 +if max(sens_temper) <= 8:
73 + if min(sens_temper) >= -3 and min(sens_temper) <=2:
40 print("패딩, 겨울야상, 양털자켓, 폴라티, 니트, 기모바지") 74 print("패딩, 겨울야상, 양털자켓, 폴라티, 니트, 기모바지")
41 print("쌀쌀한 날씨입니다. 생각보다 추워요!") 75 print("쌀쌀한 날씨입니다. 생각보다 추워요!")
42 - elif min(sens_temper) < -5: 76 + cold_danger=1
77 + elif min(sens_temper) < -3 and min(sens_temp)>=-10:
43 print("패딩, 겨울야상, 양털자켓, 폴라티, 니트, 기모바지") 78 print("패딩, 겨울야상, 양털자켓, 폴라티, 니트, 기모바지")
44 print("마스크, 목도리, 장갑을 착용하세요!") 79 print("마스크, 목도리, 장갑을 착용하세요!")
45 - if min(sens_temper) < -10: 80 + cold_danger=2
46 - print("외출을 자제하는 것이 좋겠습니다!") 81 + if min(sens_temper) < -10and min(sens_temper)>=-15:
47 - elif min(sens_temper) > 0: 82 + print("피부를 되도록 노출하지 마세요")
83 + print("최대한 따뜻하게 입고 다니세요")
84 + cold_danger=3
85 + elif (min(sens_temper)<-15):
86 + print("외출을 자제해 주세요")
87 + print("외출시 내복 및 옷을 겹겹이 입어 주시고 많이 움직여 주세요")
88 + cold_danger=4
89 + elif min(sens_temper) > 2:
48 print("패딩, 겨울야상, 양털자켓, 폴라티, 니트, 기모바지, 스타킹") 90 print("패딩, 겨울야상, 양털자켓, 폴라티, 니트, 기모바지, 스타킹")
49 - print("0도를 웃도는 날씨네요. 외투 안에는 가벼운 옷을 추천해요!") 91 + print("외투 안에는 가벼운 옷을 추천해요!")
50 92
51 93
52 -if max(sens_temper) >= 6 and max(sens_temper) <= 9: 94 +if max(sens_temper) >= 8 and max(sens_temper) <= 13:
53 print("코트, 가죽자켓, 맨투맨, 티셔츠(사계절), 바지(사계절)") 95 print("코트, 가죽자켓, 맨투맨, 티셔츠(사계절), 바지(사계절)")
54 if min(sens_temper) < 3: 96 if min(sens_temper) < 3:
55 print("일교차에 유의하세요! 추위에 약한 분들은 외투 하나 더 챙기세요!") 97 print("일교차에 유의하세요! 추위에 약한 분들은 외투 하나 더 챙기세요!")
56 -elif max(sens_temper) >= 10 and max(sens_temper) <= 11: 98 +
99 +elif max(sens_temper) >= 13 and max(sens_temper) <= 15:
57 print("트렌치코트, 간절기 야상, 후드티, 여러겹 레이어드") 100 print("트렌치코트, 간절기 야상, 후드티, 여러겹 레이어드")
58 if min(sens_temper) < 5: 101 if min(sens_temper) < 5:
59 print("일교차에 유의하세요! 추위에 약한 분들은 외투 하나 더 챙기세요!") 102 print("일교차에 유의하세요! 추위에 약한 분들은 외투 하나 더 챙기세요!")
103 +
60 elif max(sens_temper) >= 12 and max(sens_temper) <= 16: 104 elif max(sens_temper) >= 12 and max(sens_temper) <= 16:
61 print("자켓, 셔츠, 가디건, 후드(사계절)") 105 print("자켓, 셔츠, 가디건, 후드(사계절)")
62 if min(sens_temper) < 6: 106 if min(sens_temper) < 6:
63 print("일교차에 유의하세요! 추위에 약한 분들은 외투 하나 더 챙기세요!") 107 print("일교차에 유의하세요! 추위에 약한 분들은 외투 하나 더 챙기세요!")
108 +"""
64 elif max(sens_temper) >= 17 and max(sens_temper) <= 19: 109 elif max(sens_temper) >= 17 and max(sens_temper) <= 19:
65 print("가디건, 니트, 맨투맨, 후드티, 면바지, 슬랙스, 원피스") 110 print("가디건, 니트, 맨투맨, 후드티, 면바지, 슬랙스, 원피스")
66 if min(sens_temper) < 9: 111 if min(sens_temper) < 9:
67 print("일교차에 유의하세요! 얇은 외투 챙겨가세요!") 112 print("일교차에 유의하세요! 얇은 외투 챙겨가세요!")
113 +
68 elif max(sens_temper) >= 20 and max(sens_temper) <= 22: 114 elif max(sens_temper) >= 20 and max(sens_temper) <= 22:
69 print("긴팔티, 후드티, 면바지, 슬랙스") 115 print("긴팔티, 후드티, 면바지, 슬랙스")
70 if min(sens_temper) < 11: 116 if min(sens_temper) < 11:
71 print("일교차에 유의하세요! 얇은 외투 챙겨가세요!") 117 print("일교차에 유의하세요! 얇은 외투 챙겨가세요!")
118 +
72 elif max(sens_temper) >= 23 and max(sens_temper) <= 26: 119 elif max(sens_temper) >= 23 and max(sens_temper) <= 26:
73 print("반팔티, 얇은 셔츠, 얇은 긴팔티, 반바지, 면바지") 120 print("반팔티, 얇은 셔츠, 얇은 긴팔티, 반바지, 면바지")
74 121
122 +"""
......
1 +var http = require('http');
2 +var fs = require('fs');
3 +var app = http.createServer(function(request,response){
4 + var url = request.url;
5 + if(request.url == '/'){
6 + url = '/index.html';
7 + }
8 + if(request.url == '/favicon.ico'){
9 + response.writeHead(404);
10 + response.end();
11 + return;
12 + }
13 + response.writeHead(200);
14 + response.end(fs.readFileSync(__dirname + url));
15 +
16 +});
17 +app.listen(3000);
18 +
19 +const {PythonShell} = require('python-shell');
20 +
21 +var options = {
22 + mode: 'text',
23 + pythonOptions: ['-u'],
24 + scriptPath: '',
25 + encoding: 'utf8',
26 + args: ["영통1동"]
27 +};
28 +
29 +var arr;
30 +var test = new PythonShell('recommend_clothes.py', options);
31 +var data='영통1동';
32 +test.send(data);
33 +test.on('message',function(message){
34 + arr = message.split(' ');
35 +})
36 +
No preview for this file type