|
32 | 32 | mysql_connection = None |
33 | 33 | KST = pytz.timezone('Asia/Seoul') |
34 | 34 |
|
| 35 | +LOGIN_COOKIES = [ |
| 36 | + { |
| 37 | + 'name': 'JSESSIONID', |
| 38 | + 'domain': 'kut90.koreatech.ac.kr', |
| 39 | + }, |
| 40 | + { |
| 41 | + 'name': '__KSMSID__', |
| 42 | + 'domain': '.koreatech.ac.kr', |
| 43 | + } |
| 44 | +] |
35 | 45 |
|
36 | 46 | # 식단 메뉴 정보를 담는 클래스 |
37 | 47 | class MenuEntity: |
@@ -75,9 +85,9 @@ def print_flush(target): |
75 | 85 |
|
76 | 86 |
|
77 | 87 | # 아우누리 포탈에 식단 정보 요청 |
78 | | -def send_request(login_cookie, eat_date, eat_type, restaurant, campus): |
| 88 | +def send_request(login_cookies, eat_date, eat_type, restaurant, campus): |
79 | 89 | headers = {"Content-Type": "text/xml; charset=utf-8"} |
80 | | - cookies = {"JSESSIONID": f"{login_cookie};Domain=kut90.koreatech.ac.kr;"} |
| 90 | + cookies = {cookie['name']: f"{login_cookies[cookie['name']]};Domain={cookie['domain']}" for cookie in LOGIN_COOKIES} |
81 | 91 | body = f"""<?xml version="1.0" encoding="UTF-8"?> |
82 | 92 | <Root xmlns="http://www.nexacroplatform.com/platform/dataset"> |
83 | 93 | <Parameters> |
@@ -151,18 +161,21 @@ def connect_mysql(): |
151 | 161 | def get_cookie(): |
152 | 162 | # redis 캐시 조회 |
153 | 163 | global redis_client |
154 | | - login_cookie = redis_client.get('JSESSIONID') |
155 | | - if login_cookie: |
156 | | - login_cookie = login_cookie.decode("utf-8") |
157 | | - try: |
158 | | - send_request(login_cookie, datetime.today().strftime("%Y-%m-%d"), "lunch", "한식", "Campus1") |
159 | | - return login_cookie |
160 | | - except ConnectionError: |
161 | | - pass |
| 164 | + login_cookie = {cookie['name']: redis_client.get(cookie['name']) for cookie in LOGIN_COOKIES} |
| 165 | + for name in login_cookie: |
| 166 | + if not login_cookie[name]: continue |
| 167 | + login_cookie[name] = login_cookie[name].decode("utf-8") |
| 168 | + try: |
| 169 | + send_request(login_cookie, datetime.today().strftime("%Y-%m-%d"), "lunch", "한식", "Campus1") |
| 170 | + return login_cookie |
| 171 | + except ConnectionError: |
| 172 | + pass |
162 | 173 |
|
163 | 174 | # 아우누리 로그인하여 쿠키 취득 |
164 | | - login_cookie = portal_login().get('JSESSIONID', domain='kut90.koreatech.ac.kr') |
165 | | - redis_client.set('JSESSIONID', login_cookie) |
| 175 | + cookies = portal_login() |
| 176 | + login_cookie = {cookie['name']: cookies.get(cookie['name'], domain=cookie['domain']) for cookie in LOGIN_COOKIES} |
| 177 | + for cookie in LOGIN_COOKIES: |
| 178 | + redis_client.set(cookie['name'], login_cookie[cookie['name']]) |
166 | 179 | return login_cookie |
167 | 180 |
|
168 | 181 |
|
|
0 commit comments