From edfb0d175998563e48a6ab941498d7e9ad145676 Mon Sep 17 00:00:00 2001 From: viiber Date: Thu, 21 Apr 2022 20:00:01 +0800 Subject: [PATCH] first commit --- .github/run.yml | 49 +++++++++++++++++ .gitignore | 129 +++++++++++++++++++++++++++++++++++++++++++++ GetDDL.py | 111 ++++++++++++++++++++++++++++++++++++++ notify/console.py | 6 +++ notify/dingding.py | 38 +++++++++++++ notify/feishu.py | 22 ++++++++ notify/pushplus.py | 38 +++++++++++++ notify/serverj.py | 23 ++++++++ notify/telegram.py | 46 ++++++++++++++++ pic/logo.png | Bin 0 -> 58045 bytes readme.md | 0 11 files changed, 462 insertions(+) create mode 100644 .github/run.yml create mode 100644 .gitignore create mode 100644 GetDDL.py create mode 100644 notify/console.py create mode 100644 notify/dingding.py create mode 100644 notify/feishu.py create mode 100644 notify/pushplus.py create mode 100644 notify/serverj.py create mode 100644 notify/telegram.py create mode 100644 pic/logo.png create mode 100644 readme.md diff --git a/.github/run.yml b/.github/run.yml new file mode 100644 index 0000000..3992232 --- /dev/null +++ b/.github/run.yml @@ -0,0 +1,49 @@ +name: CheckHomeworks +on: + workflow_dispatch: + push: + pull_request: + watch: + types: [ started ] + schedule: + - cron: 45 22 * * * + +jobs: + HomeworkCheck: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + + - name: 'Set python' + uses: actions/setup-python@v1 + with: + python-version: '3.9.7' + - name: 'Install dependencies' + run: python3 -m pip install --upgrade pip + + - name: 'install libs' + run: pip3 install requests + + - name: StratCheckHomework + env: + ZJU_USERNAME: ${{ secrets.ZJU_USERNAME }} + ZJU_PASSWORD: ${{ secrets.ZJU_PASSWORD }} + + DD_BOT_SECRET: ${{ secrets.DD_BOT_SECRET }} + DD_BOT_TOKEN: ${{ secrets.DD_BOT_TOKEN }} + + FSKEY: ${{ secrets.FSKEY }} + + PUSH_PLUS_TOKEN: ${{ secrets.PUSH_PLUS_TOKEN }} + PUSH_PLUS_USER: ${{ secrets.PUSH_PLUS_USER }} + + PUSH_KEY: ${{ secrets.PUSH_KEY }} + + TG_BOT_TOKEN: ${{ secrets.TG_BOT_TOKEN }} + TG_USER_ID: ${{ secrets.TG_USER_ID }} + TG_PROXY_HOST: ${{ secrets.TG_PROXY_HOST }} + TG_PROXY_PORT: ${{ secrets.TG_PROXY_PORT }} + TG_PROXY_AUTH: ${{ secrets.TG_PROXY_AUTH }} + + run: python3 GetDDL.py \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9fe17bc --- /dev/null +++ b/.gitignore @@ -0,0 +1,129 @@ +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +pip-wheel-metadata/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +.python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ \ No newline at end of file diff --git a/GetDDL.py b/GetDDL.py new file mode 100644 index 0000000..0422f21 --- /dev/null +++ b/GetDDL.py @@ -0,0 +1,111 @@ +import datetime +import os +from threading import Thread +import requests +import re +import time +from notify import console, dingding, pushplus, feishu,serverj,telegram +class LoginError(Exception): + """Login Exception""" + pass + +class ZJULogin(object): + """ + Attributes: + username: (str) 浙大统一认证平台用户名(一般为学号) + password: (str) 浙大统一认证平台密码 + sess: (requests.Session) 统一的session管理 + """ + headers = { + 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36', + } + BASE_URL = "https://courses.zju.edu.cn/api/todos?no-intercept=true" + LOGIN_URL = "https://zjuam.zju.edu.cn/cas/login?service=http%3A%2F%2Fservice.zju.edu.cn%2F" + + def __init__(self, username, password): + self.username = username + self.password = password + self.sess = requests.Session() + + def login(self): + """Login to ZJU platform""" + res = self.sess.get(self.LOGIN_URL) + execution = re.search( + 'name="execution" value="(.*?)"', res.text).group(1) + res = self.sess.get( + url='https://zjuam.zju.edu.cn/cas/v2/getPubKey').json() + n, e = res['modulus'], res['exponent'] + encrypt_password = self._rsa_encrypt(self.password, e, n) + + data = { + 'username': self.username, + 'password': encrypt_password, + 'execution': execution, + '_eventId': 'submit', + "authcode": "" + } + res = self.sess.post(url=self.LOGIN_URL, data=data) + # check if login successfully + if '用户名或密码错误' in res.content.decode(): + raise LoginError('登录失败,请核实账号密码重新登录') + print("统一认证平台登录成功~") + return self.sess + + def _rsa_encrypt(self, password_str, e_str, M_str): + password_bytes = bytes(password_str, 'ascii') + password_int = int.from_bytes(password_bytes, 'big') + e_int = int(e_str, 16) + M_int = int(M_str, 16) + result_int = pow(password_int, e_int, M_int) + return hex(result_int)[2:].rjust(128, '0') + + +class getdll(ZJULogin): + """ + Attributes: + get请求"https://courses.zju.edu.cn/api/todos?no-intercept=true" 返回列表 + + """ + def __init__(self, username, password): + super().__init__(username, password) + self.login() + def getddl(self): + res = self.sess.get(self.BASE_URL) + try: + res = res.json()['todo_list'] + for event in res: + self.compare(event) + except: + raise LoginError('获取数据失败') + def compare(self,event): + daynow = time.strftime('%Y-%m-%d',time.localtime(time.time())) + timenow = time.strftime('%H:%M',time.localtime(time.time())) + + endtime = re.findall('(.*)T(.*?):00Z', event.get('end_time'))[0] + endday,endhour = datetime.datetime.strptime(endtime[0], '%Y-%m-%d'),datetime.datetime.strptime(endtime[1], '%H:%M') + + dayleft = (endday-datetime.datetime.strptime(daynow, '%Y-%m-%d')).days + hourleft = (endhour-datetime.datetime.strptime(timenow, '%H:%M')).seconds/3600 + + self.reminder(event.get('course_name')+' 的作业 '+ event.get('title')+ ' : 剩余时间'+str(dayleft)+'天') + if dayleft == 0 and hourleft > 0: + self.reminder(event.get('course_name')+'的'+ event.get('title')+ ''+str(round(hourleft))+'小时') + self.reminder('死到临头啦同学') + + def reminder(self,content): + remind_func = [console.console, pushplus.pushplus_bot,dingding.dingding_bot,feishu.feishu_bot,serverj.serverJ,telegram.telegram_bot] + title = '浙大统一认证平台提醒您:' + threads = [] + for func in remind_func: + t = Thread(target=func, args=(title,content)) + threads.append(t) + t.start() + t.join() + + def run(self): + self.getddl() + +if __name__ == '__main__': + username = os.getenv('ZJU_USERNAME') + password = os.getenv('ZJU_PASSWORD') + getdll(username, password).run() \ No newline at end of file diff --git a/notify/console.py b/notify/console.py new file mode 100644 index 0000000..1f71048 --- /dev/null +++ b/notify/console.py @@ -0,0 +1,6 @@ + +def console(title: str, content: str) -> None: + """ + 使用 控制台 推送消息。 + """ + print(f"{title}\n\n{content}") diff --git a/notify/dingding.py b/notify/dingding.py new file mode 100644 index 0000000..d35db8b --- /dev/null +++ b/notify/dingding.py @@ -0,0 +1,38 @@ + +import base64 +import hashlib +import hmac +import json +import os +import time +import requests +import urllib3 + +def dingding_bot(title: str, content: str) -> None: + """ + 使用 钉钉机器人 推送消息。 + """ + if not os.getenv("DD_BOT_SECRET") or not os.getenv("DD_BOT_TOKEN"): + pass + return + print("钉钉机器人 服务启动") + + timestamp = str(round(time.time() * 1000)) + secret_enc = os.getenv("DD_BOT_SECRET").encode("utf-8") + string_to_sign = "{}\n{}".format(timestamp, os.getenv("DD_BOT_SECRET")) + string_to_sign_enc = string_to_sign.encode("utf-8") + hmac_code = hmac.new( + secret_enc, string_to_sign_enc, digestmod=hashlib.sha256 + ).digest() + sign = urllib3.parse.quote_plus(base64.b64encode(hmac_code)) + url = f'https://oapi.dingtalk.com/robot/send?access_token={os.getenv("DD_BOT_TOKEN")}×tamp={timestamp}&sign={sign}' + headers = {"Content-Type": "application/json;charset=utf-8"} + data = {"msgtype": "text", "text": {"content": f"{title}\n\n{content}"}} + response = requests.post( + url=url, data=json.dumps(data), headers=headers, timeout=15 + ).json() + + if not response["errcode"]: + print("钉钉机器人 推送成功!") + else: + print("钉钉机器人 推送失败!") \ No newline at end of file diff --git a/notify/feishu.py b/notify/feishu.py new file mode 100644 index 0000000..5f8015b --- /dev/null +++ b/notify/feishu.py @@ -0,0 +1,22 @@ +import json +import os +import requests + + +def feishu_bot(title: str, content: str) -> None: + """ + 使用 飞书机器人 推送消息。 + """ + if not os.getenv("FSKEY"): + pass + return + print("飞书 服务启动") + + url = f'https://open.feishu.cn/open-apis/bot/v2/hook/{os.getenv("FSKEY")}' + data = {"msg_type": "text", "content": {"text": f"{title}\n\n{content}"}} + response = requests.post(url, data=json.dumps(data)).json() + + if response.get("StatusCode") == 0: + print("飞书 推送成功!") + else: + print("飞书 推送失败!错误信息如下:\n", response) \ No newline at end of file diff --git a/notify/pushplus.py b/notify/pushplus.py new file mode 100644 index 0000000..cc1abda --- /dev/null +++ b/notify/pushplus.py @@ -0,0 +1,38 @@ +import json +import os +import requests + +def pushplus_bot(title: str, content: str) -> None: + """ + 通过 push+ 推送消息。 + """ + if not os.getenv("PUSH_PLUS_TOKEN"): + pass + return + print("PUSHPLUS 服务启动") + + url = "http://www.pushplus.plus/send" + data = { + "token": os.getenv("PUSH_PLUS_TOKEN"), + "title": title, + "content": content, + "topic": os.getenv("PUSH_PLUS_USER"), + } + body = json.dumps(data).encode(encoding="utf-8") + headers = {"Content-Type": "application/json"} + response = requests.post(url=url, data=body, headers=headers).json() + + if response["code"] == 200: + print("PUSHPLUS 推送成功!") + + else: + + url_old = "http://pushplus.hxtrip.com/send" + headers["Accept"] = "application/json" + response = requests.post(url=url_old, data=body, headers=headers).json() + + if response["code"] == 200: + print("PUSHPLUS(hxtrip) 推送成功!") + + else: + print("PUSHPLUS 推送失败!") \ No newline at end of file diff --git a/notify/serverj.py b/notify/serverj.py new file mode 100644 index 0000000..55f69f1 --- /dev/null +++ b/notify/serverj.py @@ -0,0 +1,23 @@ +import os +import requests + +def serverJ(title: str, content: str) -> None: + """ + 通过 serverJ 推送消息。 + """ + if not os.getenv("PUSH_KEY"): + pass + return + print("serverJ 服务启动") + + data = {"text": title, "desp": content.replace("\n", "\n\n")} + if os.getenv("PUSH_KEY").index("SCT") != -1: + url = f'https://sctapi.ftqq.com/{os.getenv("PUSH_KEY")}.send' + else: + url = f'https://sc.ftqq.com/${os.getenv("PUSH_KEY")}.send' + response = requests.post(url, data=data).json() + + if response.get("errno") == 0 or response.get("code") == 0: + print("serverJ 推送成功!") + else: + print(f'serverJ 推送失败!错误码:{response["message"]}') diff --git a/notify/telegram.py b/notify/telegram.py new file mode 100644 index 0000000..7b692fb --- /dev/null +++ b/notify/telegram.py @@ -0,0 +1,46 @@ +import os +import requests + +def telegram_bot(title: str, content: str) -> None: + """ + 使用 telegram 机器人 推送消息。 + """ + if not os.getenv("TG_BOT_TOKEN") or not os.getenv("TG_USER_ID"): + pass + return + print("tg 服务启动") + + if os.getenv("TG_API_HOST"): + url = f"https://{os.getenv('TG_API_HOST')}/bot{os.getenv('TG_BOT_TOKEN')}/sendMessage" + else: + url = ( + f"https://api.telegram.org/bot{os.getenv('TG_BOT_TOKEN')}/sendMessage" + ) + headers = {"Content-Type": "application/x-www-form-urlencoded"} + payload = { + "chat_id": str(os.getenv("TG_USER_ID")), + "text": f"{title}\n\n{content}", + "disable_web_page_preview": "true", + } + proxies = None + if os.getenv("TG_PROXY_HOST") and os.getenv("TG_PROXY_PORT"): + if os.getenv("TG_PROXY_AUTH") is not None and "@" not in os.getenv( + "TG_PROXY_HOST" + ): + os.getenv["TG_PROXY_HOST"] = ( + os.getenv("TG_PROXY_AUTH") + + "@" + + os.getenv("TG_PROXY_HOST") + ) + proxyStr = "http://{}:{}".format( + os.getenv("TG_PROXY_HOST"), os.getenv("TG_PROXY_PORT") + ) + proxies = {"http": proxyStr, "https": proxyStr} + response = requests.post( + url=url, headers=headers, params=payload, proxies=proxies + ).json() + + if response["ok"]: + print("tg 推送成功!") + else: + print("tg 推送失败!") \ No newline at end of file diff --git a/pic/logo.png b/pic/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..224a02ba876fa8269bfa174ea8ca44417770f861 GIT binary patch literal 58045 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