semvec/pypi-packages huggingface dataset:
app-tools-zxw 2.2.4
app开发相关的各种sdk

# 常用函数包

-
    1. 项目根目录下必须包含config.py文件

- 支付接口编写规范：
  支付服务_代码规范.py

# 更细说明

- 1.0.69 : 更新 Errors.py中的异常码
- 1.0.70 : 阿里云 异步短信验证码接口.  注意: 阿里云SDK需单独安装, 安装包在需要用的功能文件中列出
- 1.0.71 : 调整异步短信接口命名
  - SMS_发送短息ASYNC --> SMS_发送短信v2.py
  - "SMS_发送短信v2", 合并同步短信接口,统一使用阿里V2 SDK.
- 1.0.72 : 新增: msvc_user_auth 手机登录\注册相关 interface , api
- 1.0.73 : msvc_user_auth  interface异常返回,少嵌套一层detail
- 1.0.80 : 更改： 微信支付SDK - 分离V1和V2两个版本, V1版本需要手动更改库中config.py文件的配置
- 1.0.81 : 修改: config.py文件中的 支付宝配置为路径
- 1.0.82 : ERROR code 增加: 数据查询失败, 数据增加失败, 数据删除失败, 数据更新失败
- 1.0.83 : Funcs/fastapi_logger.py 优化,可自主设置logger文件名
- 1.0.84 : 修复logger bug, 新增异步文件logger
- 1.0.85 : 阿里云 发送短信, 更改 短信模板传参类型为str
- 1.0.86 : 阿里云 发送短信v2, 更改 短信模板传参类型为str
- 1.0.87 : 支付宝支付，新增支付回调预处理函数：SDK_支付宝.支付服务_async
- 1.0.88 : bug fix1: 支付宝支付 - 回调地址引用错误
- 1.0.89 : bug fix2: 支付宝支付 - 回调地址传参优化
- 1.1.0 : bug fix:修复以下异常的抛出错误:重复嵌套
- 1.1.1 : bug fix: 支付宝回调时，模型pydantic验证失败，默认改为空字符串
- 1.1.2 : bug fix: 支付宝回调时，模型pydantic验证失败，默认改为None
- 1.1.3 : 更新依赖库版本,尚未测试可靠性
** 非兼容性更新 **
- 2.0.0 ：全新苹果内购SDK，旧版本失效已彻底移除
** 非兼容性更新 **
- 2.1.0 : 新增：自写底层逻辑的苹果内购支付SDK, 新增：苹果应用服务SDK
** 非兼容性更新 **
- 2.2.0 : 全新苹果服务SDK,包含支付验证, 促销优惠管理
- 2.2.1 : 杂七杂八微调
- 2.2.2 : 苹果iap优惠券签名返回值:新增 key_identifier字段, Model加统一前缀
- 2.2.3 : 苹果内购iap优惠券, timestamp改为10位数 (错误)
- 2.2.4 : 苹果内购iap优惠券, timestamp改为13位数 (服务器请求为13位)

```json
{
  "data": {
		"detail": {
			"error_code": 400,
			"detail": "查询订单接口调用失败: 400: {'error_code': 500001, 'detail': '查询订单失败: Business Failed,交易不存在'}"
		}
	}
}
```
thu-learn-downloader 0.4.1
Download everything from Web Learning of Tsinghua University
Requires Python: >=3.12

# THU Web Learning Downloader

> [!WARNING]
> username + password 登陆方式已失效, 致使本项目目前不可用 [#223](https://github.com/liblaf/thu-learn-downloader/issues/223). PR Welcome!

Download everything from Web Learning of Tsinghua University

[![GitHub Workflow Status (with event)](https://img.shields.io/github/actions/workflow/status/liblaf/thu-learn-downloader/ci.yaml)](https://github.com/liblaf/thu-learn-downloader/actions/workflows/ci.yaml)
[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/thu-learn-downloader)](https://pypi.org/project/thu-learn-downloader/)
[![PyPI - Version](https://img.shields.io/pypi/v/thu-learn-downloader)](https://pypi.org/project/thu-learn-downloader/)

## Demo

![Demo](https://github.com/liblaf/thu-learn-downloader/raw/assets/demo.png)

The resulting file structure looks like:

```
thu-learn
└── Quantum Mechanics(1)
   ├── docs
   │  └── 电子教案
   │     ├── 01-0量子力学介绍1.pdf
   │     └── 04-0量子力学介绍2.pdf
   └── work
      └── 01-第一周作业
         ├── attach-第一周作业.pdf
         ├── submit-第一周作业.pdf
         └── README.md
```

## Usage

**Usage**:

```console
$ tld [OPTIONS]
```

**Options**:

- `-u, --username TEXT`
- `-p, --password TEXT`
- `--prefix DIRECTORY`: [default: $HOME/thu-learn]
- `-s, --semester TEXT`: [default: 2023-2024-1]
- `-c, --course TEXT`
- `--document / --no-document`: [default: document]
- `--homework / --no-homework`: [default: homework]
- `-j, --jobs INTEGER`: [default: 8]
- `-l, --language [en|zh]`: [default: en]
- `--log-level [NOTSET|DEBUG|INFO|WARNING|ERROR|CRITICAL]`: [env var: LOG_LEVEL; default: INFO]
- `--help`: Show this message and exit.

## Features

- fast concurrent download
- pretty TUI powered by [rich](https://github.com/Textualize/rich)
- auto set `mtime` of downloaded files according to timestamp of remote file
- auto skip download when local file is newer
- dump homework details into `README.md` in each homework folder
- pretty markdown files powered by [prettier](https://prettier.io) (require `prettier` installed)

## Installation

- download pre-built binary form [GitHub Releases](https://github.com/liblaf/thu-learn-downloader/releases)
- `pip install thu-learn-downloader`
- `pipx install thu-learn-downloader`