From c45352fc3f706eeef5cfa810e1a436a67a989d5d Mon Sep 17 00:00:00 2001 From: yymin1022 Date: Mon, 22 May 2023 15:04:12 +0900 Subject: [PATCH 01/12] Update message.py : Added Import for Request URLLib3 --- message.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/message.py b/message.py index 808c176..e05106d 100644 --- a/message.py +++ b/message.py @@ -1,4 +1,6 @@ from bs4 import BeautifulSoup +from requests.adapters import HTTPAdapter +from requests.packages.urllib3.util.ssl_ import create_urllib3_context import datetime import json From de5c21c11f1c842a07c9794b82dc885e1967716f Mon Sep 17 00:00:00 2001 From: yymin1022 Date: Mon, 22 May 2023 15:05:39 +0900 Subject: [PATCH 02/12] Update message.py : Added Options for HTTPS Adapter from Template --- message.py | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/message.py b/message.py index e05106d..9fb32aa 100644 --- a/message.py +++ b/message.py @@ -10,6 +10,23 @@ import time import xmltodict +CIPHERS = ( + 'ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+HIGH:' + 'DH+HIGH:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+HIGH:RSA+3DES:!aNULL:' + '!eNULL:!MD5' +) + +class DESAdapter(HTTPAdapter): + def init_poolmanager(self, *args, **kwargs): + context = create_urllib3_context(ciphers=CIPHERS) + kwargs['ssl_context'] = context + return super(DESAdapter, self).init_poolmanager(*args, **kwargs) + + def proxy_manager_for(self, *args, **kwargs): + context = create_urllib3_context(ciphers=CIPHERS) + kwargs['ssl_context'] = context + return super(DESAdapter, self).proxy_manager_for(*args, **kwargs) + def getReplyMessage(message): strResult = "" @@ -901,4 +918,4 @@ def messageWeather(): jsonData = json.loads(text) strMessage = "현재온도: " + str((jsonData["main"]["temp"])) + "구름: " + str((jsonData["clouds"]["all"])) - return strMessage + return strMessage \ No newline at end of file From d73ed15d20a56add3218fe5cf4018664f528b706 Mon Sep 17 00:00:00 2001 From: yymin1022 Date: Mon, 22 May 2023 15:12:06 +0900 Subject: [PATCH 03/12] Update message.py : Applied SSL HTTP Adapter for Anyang Meal Function --- message.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/message.py b/message.py index 9fb32aa..8a9bf08 100644 --- a/message.py +++ b/message.py @@ -231,7 +231,9 @@ def messageAnyangMeal(): mealUrl = "https://www.anyang.ac.kr/main/activities/school-cafeteria.do" - mealResponse = requests.post(mealUrl).text + requestSession = requests.Session() + requestSession.mount(mealUrl, DESAdapter()) + mealResponse = requestSession.get(mealUrl).text bs = BeautifulSoup(mealResponse, 'html.parser') mealData = json.loads(bs.find("input", id="mealList").get("value")) From 6f1b90f6394a591635952e3e716bcc8da3465534 Mon Sep 17 00:00:00 2001 From: yymin1022 Date: Mon, 22 May 2023 15:13:28 +0900 Subject: [PATCH 04/12] Update message.py : Applied SSL HTTP Adapter for CAU Calendar Function --- message.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/message.py b/message.py index 8a9bf08..3b0adb8 100644 --- a/message.py +++ b/message.py @@ -310,10 +310,9 @@ def messageCAUCalendar(): } calUrl = "https://mportal.cau.ac.kr/portlet/p014/p014List.ajax" - requests.packages.urllib3.disable_warnings() - requests.packages.urllib3.util.ssl_.DEFAULT_CIPHERS = "ALL:@SECLEVEL=1" - requests.packages.urllib3.util.ssl_.DEFAULT_CIPHERS += ":HIGH:!DH:!aNULL" - calResponse = eval(requests.post(calUrl, json=calData).json()) + requestSession = requests.Session() + requestSession.mount(calUrl, DESAdapter()) + calResponse = eval(requestSession.post(calUrl, json=calData).json()) calList = calResponse["data"] strMessage = f"중앙대학교 {calMonth}월 학사일정\n" From 6ebeb95b5ffbc4790223bff75f7fe9c4825ba7f8 Mon Sep 17 00:00:00 2001 From: yymin1022 Date: Mon, 22 May 2023 15:14:14 +0900 Subject: [PATCH 05/12] Update message.py : Applied SSL HTTP Adapter for CAU Library Function --- message.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/message.py b/message.py index 3b0adb8..67ea46a 100644 --- a/message.py +++ b/message.py @@ -340,10 +340,9 @@ def messageCAULibrary(libTypeID): strMessage = "중앙대학교 열람실 좌석현황\n\n사용법 : 열람실 키워드와 함께 서울 / 안성 / 법학 키워드 언급" return strMessage - requests.packages.urllib3.disable_warnings() - requests.packages.urllib3.util.ssl_.DEFAULT_CIPHERS = "ALL:@SECLEVEL=1" - requests.packages.urllib3.util.ssl_.DEFAULT_CIPHERS += ":HIGH:!DH:!aNULL" - libResponse = requests.post(libUrl, json=libData).json() + requestSession = requests.Session() + requestSession.mount(libUrl, DESAdapter()) + libResponse = requestSession.post(libUrl, json=libData).json() libList = libResponse["gridData"] From 1b4bad7d44f2c3ff6848444fc6baf9abaa98aa13 Mon Sep 17 00:00:00 2001 From: yymin1022 Date: Mon, 22 May 2023 15:14:49 +0900 Subject: [PATCH 06/12] Update message.py : Applied SSL HTTP Adapter for CAU Meal Function --- message.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/message.py b/message.py index 67ea46a..baf1c9b 100644 --- a/message.py +++ b/message.py @@ -373,10 +373,9 @@ def messageCAUMeal(mealTypeID): strMessage = "중앙대학교 학식메뉴\n\n사용법 : 학식 키워드와 함께 아침 / 점심 / 저녁 / 조식 / 중식 / 석식 키워드 언급" return strMessage - requests.packages.urllib3.disable_warnings() - requests.packages.urllib3.util.ssl_.DEFAULT_CIPHERS = "ALL:@SECLEVEL=1" - requests.packages.urllib3.util.ssl_.DEFAULT_CIPHERS += ":HIGH:!DH:!aNULL" - mealResponse = requests.post(mealUrl, json=mealData).json() + requestSession = requests.Session() + requestSession.mount(mealUrl, DESAdapter()) + mealResponse = requestSession.post(mealUrl, json=mealData).json() mealList = mealResponse["list"] strMessage = f"{mealList[0]['date']}. 중앙대학교 학식메뉴({mealType})\n" From 5975c58a7c5590d8b302f5359cdd329187fe8fca Mon Sep 17 00:00:00 2001 From: yymin1022 Date: Mon, 22 May 2023 15:15:25 +0900 Subject: [PATCH 07/12] Update message.py : Applied SSL HTTP Adapter for Daelim Meal Function --- message.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/message.py b/message.py index baf1c9b..8a00869 100644 --- a/message.py +++ b/message.py @@ -426,7 +426,9 @@ def messageDaelimMeal(): mealInput = f"MENU_ID=1470&BISTRO_SEQ=1&START_DAY={todayDate.strftime('%Y.%m.%d')}&END_DAY={todayDate.strftime('%Y.%m.%d')}" mealHeader = {"Content-Type": "application/x-www-form-urlencoded"} - mealResponse = requests.post(mealUrl, data=mealInput, headers=mealHeader).json() + requestSession = requests.Session() + requestSession.mount(mealUrl, DESAdapter()) + mealResponse = requestSession.post(mealUrl, data=mealInput, headers=mealHeader).json() strDate = todayDate.weekday() + 1 strMessage = f"{todayDate.strftime('%Y.%m.%d.')} 대림대학교 학식메뉴\n" From 0a56224c0cff55ec01eda37342164b962f023a40 Mon Sep 17 00:00:00 2001 From: yymin1022 Date: Mon, 22 May 2023 15:16:23 +0900 Subject: [PATCH 08/12] Update message.py : Applied SSL HTTP Adapter for NSU Meal Function --- message.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/message.py b/message.py index 8a00869..8ace2cb 100644 --- a/message.py +++ b/message.py @@ -674,7 +674,9 @@ def messageMM(): def messageNSUMeal(NSU_BAP, food_list): strMessage = "" strUrl = "https://nsu.ac.kr/api/user/board/getBoardContentSummaryList" - mealResponse = requests.post(strUrl, headers={'Content-Type': 'application/x-www-form-urlencoded'}, data="boardIdList=%d&includeProperties=1&parentBoardContentId=-1&isAvailable=1&isPrivate=0&isAlwaysOnTop=0&isDeleted=0&orderByCode=4" % NSU_BAP).json() + requestSession = requests.Session() + requestSession.mount(strUrl, DESAdapter()) + mealResponse = requestSession.post(strUrl, headers={'Content-Type': 'application/x-www-form-urlencoded'}, data="boardIdList=%d&includeProperties=1&parentBoardContentId=-1&isAvailable=1&isPrivate=0&isAlwaysOnTop=0&isDeleted=0&orderByCode=4" % NSU_BAP).json() mealResponse = dict(mealResponse) mealDate = mealResponse["body"]["list"][0]["title"] if food_list == 0: From 6a1da09296097d7d3e9416f0066d231fa1af55b5 Mon Sep 17 00:00:00 2001 From: yymin1022 Date: Mon, 22 May 2023 15:16:58 +0900 Subject: [PATCH 09/12] Update message.py : Applied SSL HTTP Adapter for Fake News Function --- message.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/message.py b/message.py index 8ace2cb..9c1210f 100644 --- a/message.py +++ b/message.py @@ -908,7 +908,9 @@ def messageZayazi(): def messageFakeNews(message): fake_news_url = os.environ['FAKE_NEWS_URL'] keyword = message.split("!뉴스:")[1] - response = requests.post(fake_news_url, json={'message':keyword, 'len':64}) + requestSession = requests.Session() + requestSession.mount(fake_news_url, DESAdapter()) + response = requestSession.post(fake_news_url, json={'message':keyword, 'len':64}) strMessage = '\\m'.join(response.text.split('\n')[2:-4]) return strMessage From d26bb0e766a506e847ad819707380812f0a333c6 Mon Sep 17 00:00:00 2001 From: yymin1022 Date: Mon, 22 May 2023 15:17:22 +0900 Subject: [PATCH 10/12] Update message.py : Applied SSL HTTP Adapter for Weather Function --- message.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/message.py b/message.py index 9c1210f..cb1ca44 100644 --- a/message.py +++ b/message.py @@ -918,7 +918,10 @@ def messageFakeNews(message): def messageWeather(): weatherAPIUrl = "https://api.openweathermap.org/data/2.5/weather?id=1835847&appid=ea9e5f8d8e4aa2c798f8eb78f361d1b4" - text = requests.get(weatherAPIUrl) + + requestSession = requests.Session() + requestSession.mount(weatherAPIUrl, DESAdapter()) + text = requestSession.get(weatherAPIUrl) text = text.text jsonData = json.loads(text) From d32bd9718c7761bc2b879dbdef5dcc861f924e16 Mon Sep 17 00:00:00 2001 From: yymin1022 Date: Mon, 22 May 2023 15:17:49 +0900 Subject: [PATCH 11/12] Update Dockerfile : Applied New Tag --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 2795fe7..f77a8ed 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -8,7 +8,7 @@ pipeline { DOCKERHUB_CREDENTIAL = "dockerhub-yymin1022" DOCKER_IMAGE_NAME = "wa-api" DOCKER_IMAGE_STORAGE = "yymin1022" - DOCKER_IMAGE_TAG = "release11" + DOCKER_IMAGE_TAG = "release12" } } } From 26243cb82954e74866180e8c8c25bde5046326b7 Mon Sep 17 00:00:00 2001 From: yymin1022 Date: Mon, 22 May 2023 15:32:54 +0900 Subject: [PATCH 12/12] Update message.py : Added CIPHER Option to HTTP Adapter --- message.py | 1 + 1 file changed, 1 insertion(+) diff --git a/message.py b/message.py index cb1ca44..75fc31f 100644 --- a/message.py +++ b/message.py @@ -14,6 +14,7 @@ 'ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+HIGH:' 'DH+HIGH:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+HIGH:RSA+3DES:!aNULL:' '!eNULL:!MD5' + ':HIGH:!DH:!aNULL' ) class DESAdapter(HTTPAdapter):