Metadata-Version: 2.4
Name: py-easy-qunjielong
Version: 1.0.1
Summary: 群接龙开放平台 Python SDK，提供简单易用的群接龙开放平台 API 交互功能，支持认证、订单查询、商品查询等操作。
Home-page: https://gitee.com/guolei19850528/py_easy_qunjielong
Author: guolei
Author-email: 174000902@qq.com
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.6
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: httpx
Requires-Dist: jsonschema
Requires-Dist: jsonpath-ng
Requires-Dist: py-easy-httpx
Requires-Dist: diskcache
Requires-Dist: redis
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: license-file
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

# py_easy_qunjielong

群接龙开放平台 Python SDK，提供简单易用的群接龙开放平台 API 交互功能，支持认证、订单查询、商品查询等操作。

## 功能特性

- **认证管理**：支持获取和刷新 access_token
- **信息查询**：支持获取群接龙信息
- **同步/异步支持**：同时支持同步和异步操作
- **缓存管理**：支持使用 diskcache 或 redis 缓存 access_token
- **灵活配置**：支持通过参数自定义客户端行为
- **响应处理**：提供 JSON 数据验证功能
- **类型提示**：完整的类型注解，提供良好的 IDE 支持

## 安装

### 使用 pip 安装

```bash
pip install py_easy_qunjielong
```

### 从源码安装

```bash
git clone https://gitee.com/guolei19850528/py_easy_qunjielong.git
cd py_easy_qunjielong
pip install -e .
```

## 依赖

- httpx
- diskcache
- redis
- py_easy_httpx

## 快速开始

### 同步操作

```python
from py_easy_qunjielong.open import Open

# 初始化群接龙开放平台客户端
qjl_client = Open(
    secret="YOUR_SECRET"
)

# 刷新 access_token
qjl_client.refresh_access_token()

# 获取群接龙信息
response = qjl_client.get_home_info()
print(f"群接龙信息: {response}")
```

### 异步操作

```python
import asyncio
from py_easy_qunjielong.open import Open

async def main():
    # 初始化群接龙开放平台客户端
    qjl_client = Open(
        secret="YOUR_SECRET"
    )
    
    # 刷新 access_token
    await qjl_client.refresh_access_token()
    
    # 异步获取群接龙信息
    response = await qjl_client.async_request(
        method="GET",
        url="/open/api/ghome/getGhomeInfo"
    )
    print(f"群接龙信息: {response}")

asyncio.run(main())
```

## API 文档

### Open 类

#### 初始化参数
- `base_url`: API 基础 URL，默认为 "https://openapi.qunjielong.com"
- `secret`: 群接龙开放平台密钥
- `cache_config`: 缓存配置
- `client_kwargs`: 传递给 httpx.Client 的额外参数

#### 方法
- `request(client=None, **kwargs)`: 同步发送请求
- `async_request(client=None, **kwargs)`: 异步发送请求
- `get_access_token(client=None, **kwargs)`: 获取认证 token
- `get_home_info(client=None, **kwargs)`: 获取群接龙信息
- `refresh_access_token(client=None, get_access_token_kwargs=None, get_home_info_kwargs=None)`: 刷新 access_token

## 高级用法

### 缓存配置

#### 使用 diskcache

```python
import diskcache
from py_easy_qunjielong.open import Open

# 创建缓存实例
cache = diskcache.Cache("./cache")

# 初始化群接龙开放平台客户端
qjl_client = Open(
    secret="YOUR_SECRET",
    cache_config={
        "instance": cache,
        "expire": 7100  # 缓存过期时间（秒）
    }
)

# 刷新 access_token
qjl_client.refresh_access_token()

# 获取群接龙信息
response = qjl_client.get_home_info()
print(f"群接龙信息: {response}")
```

#### 使用 redis

```python
import redis
from py_easy_qunjielong.open import Open

# 创建 redis 实例
redis_client = redis.Redis(host="localhost", port=6379, db=0)

# 初始化群接龙开放平台客户端
qjl_client = Open(
    secret="YOUR_SECRET",
    cache_config={
        "instance": redis_client,
        "expire": 7100  # 缓存过期时间（秒）
    }
)

# 刷新 access_token
qjl_client.refresh_access_token()

# 获取群接龙信息
response = qjl_client.get_home_info()
print(f"群接龙信息: {response}")
```

## 项目结构

```
py_easy_qunjielong/
├── py_easy_qunjielong/              # 主包目录
│   ├── __init__.py            # 包初始化文件
│   └── open.py                # 开放平台API客户端模块
├── README.md                  # 项目文档
├── setup.py                   # 安装配置
├── requirements.txt           # 依赖列表
├── LICENSE                    # 许可证文件
├── deploy.sh                  # 部署脚本
├── .gitignore                 # Git 忽略文件
└── test_open.py               # 测试文件
```

## 测试

运行测试：

```bash
# 运行测试
python test_open.py
```

## 许可证

MIT License

## 贡献

欢迎提交 Issue 和 Pull Request！

## 联系方式

- 作者：guolei
- 邮箱：174000902@qq.com
- 项目地址：https://gitee.com/guolei19850528/py_easy_qunjielong

## 致谢

- [httpx](https://www.python-httpx.org/) - 高性能的异步 HTTP 客户端库
- [diskcache](https://github.com/grantjenkins/diskcache) - 简单易用的本地缓存库
- [redis](https://redis.io/) - 高性能的键值存储
- [py_easy_httpx](https://gitee.com/guolei19850528/py_easy_httpx) - 简化 HTTP 请求的工具包
