Skip to content

Commit

Permalink
更新代码逻辑
Browse files Browse the repository at this point in the history
修改大量代码逻辑,以实现程序的稳定性。
同时,对测试中出现的大部分情况进行了处理,以实现程序的鲁棒性
最后,程序基本开发完成,这是最后一个版本,如果没有新功能的话就不更新了
  • Loading branch information
sakurasep committed Mar 14, 2024
1 parent 140fe41 commit 32c739c
Show file tree
Hide file tree
Showing 7 changed files with 259 additions and 264 deletions.
37 changes: 31 additions & 6 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -1,19 +1,44 @@
name: AutoOnGithubAction
name: 自动执行GitHub操作

on: [workflow_dispatch]
on:
workflow_dispatch:
schedule:
- cron: '15 11 * * *' # 北京时间每天的19:15

jobs:
build:
runs-on: ubuntu-latest

steps:
- name: Set up Python 3.12
- name: 安装最新版本的 Python
uses: actions/setup-python@v2
with:
python-version: '3.12'
python-version: 'latest'
architecture: 'x64'

- name: Check Python version
- name: 检查 Python 版本
run: python --version

# Add more steps as needed for your workflow
- name: 检出仓库代码到工作区
uses: actions/checkout@v2

- name: 创建配置 YAML 文件
uses: microsoft/variable-substitution@v1
with:
files: 'config.yml'
env:
CHANNEL_ID: ${{ secrets.CHANNEL_ID }}
TELEGRAM_BOT_TOKEN: ${{ secrets.TELEGRAM_BOT_TOKEN }}
USERNAME: ${{ secrets.USERNAME }}
PASSWORD: ${{ secrets.PASSWORD }}de

- name: 显示配置 YAML
run: cat config.yaml

- name: 安装所需依赖
run: |
pip install -r requirements.txt
- name: 运行 Python 脚本
run: |
python get_seat.py
1 change: 0 additions & 1 deletion py/main/.python-version

This file was deleted.

19 changes: 19 additions & 0 deletions py/main/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Telegram 相关
CHANNEL_ID: ""
TELEGRAM_BOT_TOKEN: ""
TELEGRAM_URL: ""

# 账号授权相关
USERNAME: ""
PASSWORD: ""

# 其他设置
MODE: "1"
SEAT_ID: "7440"
DATE: "tomorrow"
CLASSROOMS_NAME:
- 西校区图书馆-五层自习室
- 西校区图书馆-四层自习室
- 西校区图书馆-三层自习室


2 changes: 1 addition & 1 deletion py/main/get_bearer_token.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ def get_bearer_token(username, password):
# 解析响应并返回姓名和 Token
return parsed_res["member"]["name"], parsed_res["member"]["token"]
except Exception as e:
logging.info(f"获取 token 异常")
logging.info(f"获取 token 异常,账号密码错误")
sys.exit()


Expand Down
42 changes: 18 additions & 24 deletions py/main/get_info.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
import base64
import logging
import sys
import time
from datetime import datetime
from datetime import timedelta
import sys

import requests
from Crypto.Cipher import AES
from Crypto.Util.Padding import pad, unpad
from datetime import datetime

from get_bearer_token import get_bearer_token
import base64

logging.basicConfig(level=logging.INFO)
logger = logging.getLogger("开始打印日志")
Expand Down Expand Up @@ -37,21 +39,20 @@
# 常量定义
URL_CLASSROOM_DETAIL_INFO = "http://libyy.qfnu.edu.cn/api/Seat/date"
URL_CLASSROOM_SEAT = "http://libyy.qfnu.edu.cn/api/Seat/seat"
MAX_RETRIES = 10 # 最大重试次数
RETRY_DELAY = 3 # 重试间隔时间(秒)


# 获取预约的日期
def get_date():
def get_date(date):
try:
# 获取用户输入的日期信息
# argument = input("请输入日期('今天输入 0' 或 '明天输入 1'): \n")
argument = "1"
# 判断预约的时间
if argument == "0":
if date == "today":
nowday = datetime.now().date()
elif argument == "1":
elif date == "tomorrow":
nowday = datetime.now().date() + timedelta(days=1)
else:
logger.error(f"未知的参数: {argument}")
logger.error(f"未知的参数: {date}")
sys.exit()
# 结果判断
if nowday:
Expand All @@ -66,10 +67,6 @@ def get_date():
sys.exit()


MAX_RETRIES = 3 # 最大重试次数
RETRY_DELAY = 5 # 重试间隔时间(秒)


def send_post_request_and_save_response(url, data, headers):
retries = 0
while retries < MAX_RETRIES:
Expand Down Expand Up @@ -152,20 +149,17 @@ def get_key():
return key


# 读取授权码
def get_auth_token():
# token = "test"
# return token
# 获取授权码
def get_auth_token(username, password):
try:
# 从命令行中获取用户名和密码
# username = input("请输入用户名(学号): \n")
# password = getpass.getpass('请输入密码: \n')
username = ""
password = ""
# 如果未从配置文件中读取到用户名或密码,则抛出异常
if not username or not password:
raise ValueError("未找到用户名或密码")

# 调用获取授权码的函数,使用从配置文件中读取到的用户名和密码
name, token = get_bearer_token(username, password)
logger.info(f"你好,{name}同学")
new_token = "bearer" + str(token)
# logger.info(new_token)
return new_token
except Exception as e:
logger.error(f"获取授权码时发生异常: {str(e)}")
Expand Down
Loading

0 comments on commit 32c739c

Please sign in to comment.