xmulogin 1.0.0
厦门大学统一身份认证登录SDK
License: MIT
Requires Python: >=3.7
Keywords: xmu, xiamen, university, login, authentication, 厦门大学

# XMULogin

厦门大学统一身份认证登录 SDK

## 简介

XMULogin 是一个用于厦门大学统一身份认证系统的 Python SDK，提供简单易用的接口来登录以下系统：

1. 统一身份认证系统
2. 教务系统
3. 数字化教学平台 (TronClass)

## 安装

### 从 PyPI 安装

```bash
pip install xmulogin
```

### 从源码安装

```bash
git clone https://github.com/yourusername/xmulogin.git
cd xmulogin
pip install -e .
```

## 使用方法

### 基本用法

```python
from xmulogin import xmulogin

# 登录统一身份认证系统 (type=1)
session = xmulogin(type=1, username="your_username", password="your_password")

if session:
    print("登录成功")
    # 使用 session 进行后续操作
    response = session.get("https://ids.xmu.edu.cn/authserver/index.do")
    print(response.status_code)
else:
    print("登录失败")
```

### 登录不同系统

```python
from xmulogin import xmulogin

# 1. 登录统一身份认证系统
session1 = xmulogin(type=1, username="your_username", password="your_password")

# 2. 登录教务系统
session2 = xmulogin(type=2, username="your_username", password="your_password")

# 3. 登录数字化教学平台
session3 = xmulogin(type=3, username="your_username", password="your_password")
```

### 完整示例

```python
from xmulogin import xmulogin

def main():
    username = "your_username"
    password = "your_password"
    
    # 选择登录类型
    login_type = 1  # 1: 统一身份认证, 2: 教务系统, 3: 数字化教学平台
    
    print(f"正在登录...")
    session = xmulogin(type=login_type, username=username, password=password)
    
    if session:
        print("✓ 登录成功")
        
        # 使用 session 进行后续请求
        if login_type == 1:
            response = session.get("https://ids.xmu.edu.cn/authserver/index.do")
            print(f"统一身份认证系统状态: {response.status_code}")
            
        elif login_type == 2:
            response = session.get("https://jw.xmu.edu.cn/new/index.html")
            print(f"教务系统状态: {response.status_code}")
            
        elif login_type == 3:
            response = session.get("https://lnt.xmu.edu.cn/api/user/info")
            print(f"数字化教学平台状态: {response.status_code}")
    else:
        print("✗ 登录失败")

if __name__ == "__main__":
    main()
```

## API 参考

### xmulogin(type, username, password)

厦门大学统一登录接口

**参数:**

- `type` (int): 登录类型
  - `1` - 统一身份认证系统
  - `2` - 教务系统
  - `3` - 数字化教学平台 (TronClass)
- `username` (str): 学号或工号
- `password` (str): 密码

**返回值:**

- 成功: 返回已登录的 `requests.Session` 对象
- 失败: 返回 `None`

**异常:**

- `ValueError`: 当 type 参数不在有效范围 (1-3) 内时抛出

## 依赖

- Python >= 3.7
- requests >= 2.25.0
- pycryptodome >= 3.10.0

## 注意事项

1. 请妥善保管您的账号密码，不要在代码中硬编码或提交到版本控制系统
2. 建议使用环境变量或配置文件来存储敏感信息
3. 本 SDK 仅供学习交流使用，请遵守学校相关规定
4. 登录频率过高可能会被系统限制，请合理使用

## 安全建议

```python
import os
from xmulogin import xmulogin

# 推荐：从环境变量读取敏感信息
username = os.getenv('XMU_USERNAME')
password = os.getenv('XMU_PASSWORD')

session = xmulogin(type=1, username=username, password=password)
```

## 发布到 PyPI

### 构建发行版

```bash
# 安装构建工具
pip install build twine

# 构建发行版
python -m build
```

### 上传到 PyPI

```bash
# 上传到 TestPyPI (测试)
python -m twine upload --repository testpypi dist/*

# 上传到 PyPI (正式)
python -m twine upload dist/*
```

## 许可证

MIT License

## 贡献

欢迎提交 Issue 和 Pull Request！

## 更新日志

### v1.0.0 (2025-11-21)

- 初始版本发布
- 支持统一身份认证系统登录
- 支持教务系统登录
- 支持数字化教学平台登录

## 联系方式

如有问题或建议，请联系：your.email@example.com