From a08ae2b966ffb19afba7f6519b32bc1ee5fca338 Mon Sep 17 00:00:00 2001 From: jr226-co Date: Sat, 24 Feb 2024 20:39:01 +0900 Subject: [PATCH 1/7] =?UTF-8?q?=E4=BB=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/main.py b/main.py index d4fc228..fbfabee 100644 --- a/main.py +++ b/main.py @@ -3,6 +3,9 @@ async def main(): token = "孤独のバカがTOKEN貼り付け" + + + # ユーザーの情報を取得 user = User(token) userdata = user.get_me() From c0426653c252cce5e01857f7eb7c14d128059635 Mon Sep 17 00:00:00 2001 From: jr226-co Date: Sat, 24 Feb 2024 20:39:43 +0900 Subject: [PATCH 2/7] =?UTF-8?q?=E5=AD=A4=E7=8B=AC=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/main.py b/main.py index fbfabee..412c4f2 100644 --- a/main.py +++ b/main.py @@ -4,8 +4,6 @@ async def main(): - - # ユーザーの情報を取得 user = User(token) userdata = user.get_me() From f99e59a3b8b9f86e18544987039c7f46ffecdea4 Mon Sep 17 00:00:00 2001 From: jr226-co Date: Sat, 24 Feb 2024 23:15:35 +0900 Subject: [PATCH 3/7] =?UTF-8?q?=E3=81=93=E3=82=81=E3=82=93=E3=81=A8?= =?UTF-8?q?=EF=BC=9F=E3=82=93=E3=81=AA=E3=82=82=E3=82=93=E3=81=AD=E3=81=87?= =?UTF-8?q?=E3=81=88=E3=81=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- HSS.py | 25 +++++++++++++++++++++++++ Request_HSSAPI.py | 14 ++++++++------ main.py | 7 +++---- tst.py | 44 ++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 80 insertions(+), 10 deletions(-) create mode 100644 tst.py diff --git a/HSS.py b/HSS.py index b300bac..7d71ed7 100644 --- a/HSS.py +++ b/HSS.py @@ -106,4 +106,29 @@ def default_timelineindex(self,number) -> int: return None UserData = UserData['userDatas'][number] return UserData['defaultTimelineIndex'] + def patch_timetable(self,grade:int,clas:int,date:str,index:int,name:str,place=""): + + """ + 一週間の時間割変更するやつです。 + + ---------- + :param grade:変更する学年 + :param clas : 変更するクラス + :param date : + """ + data ={ + "schoolId": self.schoolid, + "bodies" : [{"headKey" : "userDatas", + "key" : "timelineData", + "grade" : grade, + "class" : clas, + "date" : date, + "index" :index, + "value" : { + "name" : name, + "place" : place, + }}]} + url= "https://hss-dev.aknet.tech/v1/school" + response = Request_HSSAPI.patch_with_token(url, self.toke,data) + \ No newline at end of file diff --git a/Request_HSSAPI.py b/Request_HSSAPI.py index ecad75b..bb407e1 100644 --- a/Request_HSSAPI.py +++ b/Request_HSSAPI.py @@ -8,18 +8,20 @@ def get_with_token(url, token): response = requests.get(url, headers=headers) return response -def patch_with_token(url, token): +def patch_with_token(url, token,data): headers = { - 'Authorization':f"Bearer {token}" + 'Authorization':f"Bearer {token}", + "Content-Type" : "application/json" } - response = requests.patch(url, headers=headers) + response = requests.patch(url, headers= headers,json=data) return response -def post_with_token(url, token): +def post_with_token(url, token,data): headers = { - 'Authorization':f"Bearer {token}" + 'Authorization':f"Bearer {token}", + "Content-Type" : "application/json" } - response = requests.post(url, headers=headers) + response = requests.post(url, headers=headers,data=data) return response def delete_with_token(url, token): diff --git a/main.py b/main.py index 412c4f2..898c68d 100644 --- a/main.py +++ b/main.py @@ -1,9 +1,8 @@ from HSS import User, School async def main(): - token = "孤独のバカがTOKEN貼り付け" + token = "ne4iliC2NLKNIeSvZjpNGUcYiEUhGdIaAM8Ainjj4_Q" - # ユーザーの情報を取得 user = User(token) userdata = user.get_me() @@ -11,7 +10,7 @@ async def main(): print(schoolid) print(userdata) - userdata = user.get_id(0000000000000000) + userdata = user.get_id(6392857473606222848) print(userdata) # # 学校の情報を取得 @@ -28,7 +27,7 @@ async def main(): mon = school.get_default_timeline(0, "tue") print(mon) - index = school.default_TimelineIndex(0) + index = school.default_timelineindex(0) print(index) if __name__ == "__main__": import asyncio diff --git a/tst.py b/tst.py new file mode 100644 index 0000000..8e2fdc8 --- /dev/null +++ b/tst.py @@ -0,0 +1,44 @@ +import Request_HSSAPI +import json +token = "ne4iliC2NLKNIeSvZjpNGUcYiEUhGdIaAM8Ainjj4_Q" +url= "https://hss-dev.aknet.tech/v1/school" +data ={ + "schoolId":"6392857634709439488", + "bodies" : [{"headKey" : "userDatas", + "key" : "timelineData", + "grade" : 1, + "class" : 1, + "date" : "mon", + "index" :1, + "value" : { + "name" : "教科名", + "place" : "場所です。 nullableです。", + "homework" : [ + { + "name" : "s", + "istooBig" : True, + "page" : { + "start" : 1, + "end" : 2, + "comment" : "補足です。 nullableです。" + } + } + ], + + }}]} + +data1 = data ={ + "schoolId":"6392857634709439488", + "bodies" : [{"headKey" : "userDatas", + "key" : "timelineData", + "grade" : 1, + "class" : 1, + "date" : "mon", + "index" :1, + "value" : { + "name" : "教科名", + "place" : "場所です。 nullableです。", + }}]} +response = Request_HSSAPI.patch_with_token(url, token,data) + +print(response.text) From e0053d2d86f7d12a01f92c7805862d4b5ce20f15 Mon Sep 17 00:00:00 2001 From: jr226-co Date: Sat, 24 Feb 2024 23:18:12 +0900 Subject: [PATCH 4/7] =?UTF-8?q?return=E3=81=A7=E3=83=AC=E3=82=B9=E3=83=9D?= =?UTF-8?q?=E3=83=B3=E3=82=B9=E3=82=92=E8=BF=94=E3=81=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- HSS.py | 1 + 1 file changed, 1 insertion(+) diff --git a/HSS.py b/HSS.py index 7d71ed7..c4a47e8 100644 --- a/HSS.py +++ b/HSS.py @@ -130,5 +130,6 @@ def patch_timetable(self,grade:int,clas:int,date:str,index:int,name:str,place="" }}]} url= "https://hss-dev.aknet.tech/v1/school" response = Request_HSSAPI.patch_with_token(url, self.toke,data) + return response \ No newline at end of file From 4de16e83613409d44662fbe5f4f6753700624a6c Mon Sep 17 00:00:00 2001 From: jr226-co Date: Sat, 24 Feb 2024 23:23:27 +0900 Subject: [PATCH 5/7] =?UTF-8?q?=E9=96=A2=E6=95=B0=E3=82=B3=E3=83=A1?= =?UTF-8?q?=E3=83=B3=E3=83=88=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- HSS.py | 15 +++++++++------ main.py | 2 ++ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/HSS.py b/HSS.py index c4a47e8..bd7077d 100644 --- a/HSS.py +++ b/HSS.py @@ -106,15 +106,18 @@ def default_timelineindex(self,number) -> int: return None UserData = UserData['userDatas'][number] return UserData['defaultTimelineIndex'] - def patch_timetable(self,grade:int,clas:int,date:str,index:int,name:str,place=""): + def patch_timetable(self,grade:int,clas:int,date:str,index:int,name:str,place="")-> str: """ - 一週間の時間割変更するやつです。 + 一週間の時間割変更するやつです。 - ---------- - :param grade:変更する学年 - :param clas : 変更するクラス - :param date : + ---------- + :param grade: 変更する学年 + :param clas : 変更するクラス + :param date : 月:"mon",火:"tue","水":"wed",木:"thu",金:"fri",土:"sat",日:"sun" + :param index: 変更する時数 + :param name : 教科名 + :param place: 授業場所 """ data ={ "schoolId": self.schoolid, diff --git a/main.py b/main.py index 898c68d..34bcdd1 100644 --- a/main.py +++ b/main.py @@ -29,6 +29,8 @@ async def main(): index = school.default_timelineindex(0) print(index) + rep =school.patch_timetable(1,1,"mon",4,"孤独は最強","北海道札幌市") + print(rep) if __name__ == "__main__": import asyncio asyncio.run(main()) From 924258a36e4750e36a8dad97a690a8114fa7079b Mon Sep 17 00:00:00 2001 From: jr226-co Date: Sun, 25 Feb 2024 21:11:49 +0900 Subject: [PATCH 6/7] =?UTF-8?q?=E5=AE=BF=E9=A1=8C=E3=82=92=E5=A4=89?= =?UTF-8?q?=E6=9B=B4=EF=BC=86=E6=88=BB=E3=82=8A=E5=80=A4=E3=82=92=E5=A4=89?= =?UTF-8?q?=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- HSS.py | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 57 insertions(+), 1 deletion(-) diff --git a/HSS.py b/HSS.py index bd7077d..a185e28 100644 --- a/HSS.py +++ b/HSS.py @@ -106,6 +106,7 @@ def default_timelineindex(self,number) -> int: return None UserData = UserData['userDatas'][number] return UserData['defaultTimelineIndex'] + def patch_timetable(self,grade:int,clas:int,date:str,index:int,name:str,place="")-> str: """ @@ -118,6 +119,10 @@ def patch_timetable(self,grade:int,clas:int,date:str,index:int,name:str,place="" :param index: 変更する時数 :param name : 教科名 :param place: 授業場所 + + :return: 変更に成功した場合、変更後の時間割 + :rtype: json + :raises APIからのエラー """ data ={ "schoolId": self.schoolid, @@ -133,6 +138,57 @@ def patch_timetable(self,grade:int,clas:int,date:str,index:int,name:str,place="" }}]} url= "https://hss-dev.aknet.tech/v1/school" response = Request_HSSAPI.patch_with_token(url, self.toke,data) - return response + if errors.ErrorPrint.handle_http_error(response): + return response.text + datas = self.get_timeline(0,date) + return datas + + def patch_homework(self,grade:int,clas:int,date:str,index:int,name:str,istoobig:bool,start:int,end:int,comment="")-> str: + + """ + 一週間の時間割変更するやつです。 + + ---------- + :param grade: 変更する学年 + :param clas : 変更するクラス + :param date : 月:"mon",火:"tue","水":"wed",木:"thu",金:"fri",土:"sat",日:"sun" + :param index: 変更する宿題の時数 + :param name: 変更する宿題名 + :param istoobig : 変更する宿題が大きいか + :param start:変更する宿題の開始ページ数 + :param end: 変更する宿題の終了ページ数 + :param comment : 補足 + + :return: 変更に成功した場合、変更後の時間割 + :rtype: json + :raises APIからのエラー + """ + data ={ + "schoolId": self.schoolid, + "bodies" : [{"headKey" : "userDatas", + "key" : "timelineData", + "grade" : grade, + "class" : clas, + "date" : date, + "index" :index, + "value" : { + "homework" : [ + { + "name": name, + "istoobig":istoobig, + "page":{ + "start":start, + "end":end, + "comment":comment + } + } + ]}}]} + url= "https://hss-dev.aknet.tech/v1/school" + response = Request_HSSAPI.patch_with_token(url, self.toke,data) + if errors.ErrorPrint.handle_http_error(response): + return response.text + datas = self.get_timeline(0,date) + return datas + \ No newline at end of file From 06ebca95187e71edf61d2aeae9e028a7fe1bb3e9 Mon Sep 17 00:00:00 2001 From: jr226-co Date: Sun, 25 Feb 2024 21:36:36 +0900 Subject: [PATCH 7/7] =?UTF-8?q?=E6=99=82=E6=95=B0=E3=81=8C=E3=81=AA?= =?UTF-8?q?=E3=81=84=E5=A0=B4=E5=90=88=E3=81=AB=E3=81=99=E3=81=B9=E3=81=A6?= =?UTF-8?q?=E5=A4=89=E6=9B=B4=E3=81=A7=E3=81=8D=E3=82=8B=E3=82=88=E3=81=86?= =?UTF-8?q?=E3=81=AB=EF=BC=86=E3=82=B3=E3=83=BC=E3=83=89=E7=B0=A1=E7=95=A5?= =?UTF-8?q?=20=EF=BC=88=E3=81=BE=E3=81=A0=E9=80=94=E4=B8=AD=E3=81=A7?= =?UTF-8?q?=E3=81=99)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- HSS.py | 77 ++++++++++++++++++++++++++++++++++++++++++++------------- main.py | 2 +- 2 files changed, 61 insertions(+), 18 deletions(-) diff --git a/HSS.py b/HSS.py index a185e28..c9d6e9c 100644 --- a/HSS.py +++ b/HSS.py @@ -106,8 +106,17 @@ def default_timelineindex(self,number) -> int: return None UserData = UserData['userDatas'][number] return UserData['defaultTimelineIndex'] - - def patch_timetable(self,grade:int,clas:int,date:str,index:int,name:str,place="")-> str: + def return_patch_data(self,id,key,grade,clas,date): + return { + "schoolId": id, + "bodies" : [{"headKey" : "userDatas", + "key" : key, + "grade" : grade, + "class" : clas, + "date" : date, + }]} + + def patch_timetable(self,grade:int,clas:int,date:str,name:str,index=None,place=None)-> str: """ 一週間の時間割変更するやつです。 @@ -124,18 +133,12 @@ def patch_timetable(self,grade:int,clas:int,date:str,index:int,name:str,place="" :rtype: json :raises APIからのエラー """ - data ={ - "schoolId": self.schoolid, - "bodies" : [{"headKey" : "userDatas", - "key" : "timelineData", - "grade" : grade, - "class" : clas, - "date" : date, - "index" :index, - "value" : { - "name" : name, - "place" : place, - }}]} + ch ={"name" : name} + if place != None: ch["place"] = place + data = self.return_patch_data(self.schoolid,"timelineData",grade,clas,date) + data['bodies'][0]["value"] = ch + if index != None: + data['bodies'][0]['index'] = (index +1 ) url= "https://hss-dev.aknet.tech/v1/school" response = Request_HSSAPI.patch_with_token(url, self.toke,data) if errors.ErrorPrint.handle_http_error(response): @@ -143,10 +146,10 @@ def patch_timetable(self,grade:int,clas:int,date:str,index:int,name:str,place="" datas = self.get_timeline(0,date) return datas - def patch_homework(self,grade:int,clas:int,date:str,index:int,name:str,istoobig:bool,start:int,end:int,comment="")-> str: + def patch_homework(self,grade:int,clas:int,date:str,name:str,istoobig:bool,start:int,end:int,index=None,comment="")-> str: """ - 一週間の時間割変更するやつです。 + 一週間の宿題を変更するやつです。 ---------- :param grade: 変更する学年 @@ -170,7 +173,6 @@ def patch_homework(self,grade:int,clas:int,date:str,index:int,name:str,istoobig: "grade" : grade, "class" : clas, "date" : date, - "index" :index, "value" : { "homework" : [ { @@ -183,6 +185,8 @@ def patch_homework(self,grade:int,clas:int,date:str,index:int,name:str,istoobig: } } ]}}]} + if index != None:data['bodies'][0]['index'] = index + url= "https://hss-dev.aknet.tech/v1/school" response = Request_HSSAPI.patch_with_token(url, self.toke,data) if errors.ErrorPrint.handle_http_error(response): @@ -190,5 +194,44 @@ def patch_homework(self,grade:int,clas:int,date:str,index:int,name:str,istoobig: datas = self.get_timeline(0,date) return datas + def patch_event(self,grade:int,clas:int,date:str,index,name:str,place="")-> str: + + """ + 一週間の時間割変更するやつです。 + + ---------- + :param grade: 変更する学年 + :param clas : 変更するクラス + :param date : 月:"mon",火:"tue","水":"wed",木:"thu",金:"fri",土:"sat",日:"sun" + + :param index: 変更する時数 + :param name : 変更するイベント名 + :param place: イベント場所 + :param start: 開始時刻 + :param end : 終了時刻 + :param isEndofDay : 終日続くかどうか + + :return: 変更に成功した場合、変更後の時間割 + :rtype: json + :raises APIからのエラー + """ + data ={ + "schoolId": self.schoolid, + "bodies" : [{"headKey" : "userDatas", + "key" : "timelineData", + "grade" : grade, + "class" : clas, + "date" : date, + "index" :index, + "value" : { + "name" : name, + "place" : place, + }}]} + url= "https://hss-dev.aknet.tech/v1/school" + response = Request_HSSAPI.patch_with_token(url, self.toke,data) + if errors.ErrorPrint.handle_http_error(response): + return response.text + datas = self.get_timeline(0,date) + return datas \ No newline at end of file diff --git a/main.py b/main.py index 34bcdd1..0181fe0 100644 --- a/main.py +++ b/main.py @@ -29,7 +29,7 @@ async def main(): index = school.default_timelineindex(0) print(index) - rep =school.patch_timetable(1,1,"mon",4,"孤独は最強","北海道札幌市") + rep =school.patch_timetable(1,1,"mon","孤独は最強",5,"北海道札幌市") print(rep) if __name__ == "__main__": import asyncio