Skip to content

Latest commit

 

History

History
232 lines (207 loc) · 6.89 KB

README.md

File metadata and controls

232 lines (207 loc) · 6.89 KB

HSSAPI-Python

PyPI

目的

HSSAPIをPythonで簡単にしようできるようにしたAPIラッパー

使用方法

HSS API ドキュメント
APIラッパーは一部の機能をサポートしています。 API機能を全て活用したい場合、Request_HHSAPI.pyやHSS.pyのget_data関数を使用することにより処理ができると思われます。

インストール

pip install HSS.py

githubから直接インストールする

pip install git+https://github.com/HSS-Project/HSS.py.git

or

pip install [email protected]:HSS-Project/HSS.py.git

初期設定

HSS APIでtokenを発行してください。
tokenをUser NewSchoolに渡してください。またNewSchoolには学校idを渡してください。

from HSS import NewSchool
from HSS import User

token = "HSS API token"
user = User(token=token)
school = NewSchool(token=token,schoolid=schoolid)

User

def get_permission() -> list:
    """(GET /v1/permission)"""
def get_permission_discordUserID(DiscordUserID) -> list: 
    """(GET /v1/permission/discordUserID) DiscurdUserIDからそのユーザーが閲覧できる学校listを取得します。(DIscord Bot作成に使用してください。)"""
def get_id(ID) -> dict:
    """(GET /v1/users/{HSSUserID}) user情報を取得します。"""

レスポンス ( Example )

{
    "developer": bool,
    "hid": int,
    "discordAccount": bool,
    "username": str,
    "isBot": bool or None,
    "description": str or None
}
値名 説明 かならず出現するか
developer bool 開発者が有効かどうかです。全てのアカウントでtrueになります。 true
hid int ユーザーのUniqueIDです。 true
discordAccount bool Discordアカウントでの登録が有効かどうかです。 true
username str ユーザーの名前です。 true
isBot bool ユーザーがBotかどうかを判別します。Botの場合出現します。 false
description str Botの説明です。 false
def get_me() -> dict:
    """(GET /v1/users/@me) """

レスポンス ( Example )

{
    "developer" : bool.
    "hid" : int,
    "discordAccount" : bool,
    "username" : str,
    "email" : str
}
値名 説明 かならず出現するか
developer bool 開発者が有効かどうかです。 true
hid int ユーザーのUniqueIDです。 true
discordAccount bool Discordアカウントでの登録が有効かどうかです。 true
username str ユーザーの名前です。 true
email str ユーザーのメールアドレスです。
@meの場合のみ出現します。
true

NewScool

def get_classes() -> list:
    """クラスlistを取得します"""
def search_class(grade:int,classname:int) -> int: 
    """学年-クラスからUserDatasのlistのindexを取得します。"""

今後のnumberはこれを使用してください。
class,classnameは必ずint型で渡してください。今後strでもいけるよう修正されると思われます。

MonthData

"MonthData" 
= {

    "sun" : [],
    "mon" : [],
    "tue" : [],
    "wed" : [],
    "thu" : [],
    "fri" : [],
    "sat" : []
}
def grade(number:int) -> int:
    """学年を取得します。"""
def classname(number:int) -> int:
    """クラスを取得します。"""
def get_timeline(number:int,MonthData:str) -> list[dict]:

レスポンス ( Example )

{
    "name": str,
    "place": None or str,
    "IsEvent": bool
}
プロパティ 説明
name str
place None | str 場所
IsEvent bool イベントかどうか
def get_default_timeline(number:int,MonthData:str) -> list[dict]:
    """基本時間割を取得します(timelineと同じ)"""
def get_homework(number:int) -> list[dict]:
    """宿題を取得します。  """

レスポンス ( Example )

{
    "name" : str,
    "istooBig" : bool,
    "page" : {
        "start" : str or int,
        "end" : str or int,
        "comment" : str or None
    }
}
プロパティ名 内容
name str 名前
istooBig bool とっても大きくてやるのに時間がかかるものか
page dict ページ情報
page.start str or int はじまり
page.end str or int おわり
page.comment str or int 補足等
def get_event(number:int,MonthData:str) -> list[dict]:
    """イベント情報を取得します。  """

レスポンス ( Example )

{
    "name": str,
    "timeData" : TimeData,
    "place": str or None
}
プロパティ名 説明
name str イベント名
timeData TimeData イベントの時間データ
place str イベントの場所
def default_timelineindex(number:int) -> int:
    """基本的な時間割数"""
def patch_timeline(grade:int,classname:int,date:str,name:str,isEvent:bool,state:str = "add", index:int=None, place:str=None): 

(PATCH /v1/school/:id/userdatas/:grade/:class/:mon) TimeLineの変更
stateに応じて、追加、削除、更新します。
updateやremoveの場合は、indexを指定してください。そのindexで上書きをします。

パラメータ 説明
state str "add" or "remove" or "update"

addはdefaultTimeLineIndexより多い場合には追加されません。エラーがスローされます。

def update_timelineindex(grade:int,classname:int,date:str,index:int):

非推奨

def patch_defaulttimeline(grade:int,classname:int,date:str,name:str,isEvent:bool,state:str = "add", index:int=None, place:str="なし"):  
    """標準時間割の変更。 patch_timelineと同じ """
def patch_event(grade:int, _class:int, date:str, name:str, isEndofDay:bool, start:datetime, end:datetime, place:str=None , state :str = "add" , index : int = None):

EventDataの変更
stateに応じて、追加、削除、更新します。
updateやremoveの場合は、indexを指定してください。そのindexで上書きをします。

def patch_homework(grade:int, _class:int, date:str, name:str, start, end, istooBig:bool = False, comment:str=None, state :str = "add" , index : int = None): 
    """Homeworkの変更"""