treehole

A simple interface to PKU Hole

View in GitHub

亮点

  • 简单易用
  • 文档齐全
  • token 登陆
  • Python 3.6+
  • 支持异步请求
  • 自动处理图像 url
  • 所有树洞数据模型均已封装为数据类
  • 涵盖(几乎?)所有暴露给用户的业务逻辑

快速上手

from treehole import TreeHoleClient

client = TreeHoleClient("your token")
hole = client.get_hole("hole ID")
print(hole)

使用

from treehole import TreeHoleClient

# 使用 token 认证
client = TreeHoleClient(token=<Your Token>)
# 使用 IAAA 账号认证
client = TreeHoleClient(uid=<UID>, password=<Password>)
# 获取单个树洞
hole = client.get_hole(<Hole ID>)
# 获取树洞评论
comments = client.get_comment(<Hole ID>)
# 获取首页树洞列表
holes = client.get_holes(<Page Num>)
# 获取关注树洞列表
holes = client.get_followed(<Page Num>)
# 切换关注状态
success, status = client.post_toggle_followed(<Hole ID>)
# 发布树洞
success = client.post_hole(<Text>, <Image File>)
# 发布评论
success = client.post_comment(<Hole ID>, <Text>, <Reply To>)
# 举报树洞 (!!!!!! 请勿轻易尝试)
success = client.post_report(<Hole ID>, <Reason>)

Roadmap

  • 支持新版树洞
  • 支持 IAAA 账号登陆
  • 树洞数据模型
  • 客户端封装
  • 获取单个树洞
  • 获取首页树洞
  • 获取关注树洞
  • 获取树洞回复
  • 关注/取关树洞
  • 回复树洞
  • 发布树洞
  • 举报树洞
  • 支持异步处理
  • 支持自定义加载长度
  • 更多功能待补充 ...
 1"""
 2A simple interface to PKU Hole
 3
 4[View in GitHub](https://github.com/TeddyHuang-00/pyTreeHole)
 5
 6## 亮点
 7
 8- 简单易用
 9- 文档齐全
10- token 登陆
11- Python 3.6+
12- 支持异步请求
13- 自动处理图像 url
14- 所有树洞数据模型均已封装为数据类
15- 涵盖(几乎?)所有暴露给用户的业务逻辑
16
17## 快速上手
18
19```py
20from treehole import TreeHoleClient
21
22client = TreeHoleClient("your token")
23hole = client.get_hole("hole ID")
24print(hole)
25```
26
27## 使用
28
29```python
30from treehole import TreeHoleClient
31
32# 使用 token 认证
33client = TreeHoleClient(token=<Your Token>)
34# 使用 IAAA 账号认证
35client = TreeHoleClient(uid=<UID>, password=<Password>)
36# 获取单个树洞
37hole = client.get_hole(<Hole ID>)
38# 获取树洞评论
39comments = client.get_comment(<Hole ID>)
40# 获取首页树洞列表
41holes = client.get_holes(<Page Num>)
42# 获取关注树洞列表
43holes = client.get_followed(<Page Num>)
44# 切换关注状态
45success, status = client.post_toggle_followed(<Hole ID>)
46# 发布树洞
47success = client.post_hole(<Text>, <Image File>)
48# 发布评论
49success = client.post_comment(<Hole ID>, <Text>, <Reply To>)
50# 举报树洞 (!!!!!! 请勿轻易尝试)
51success = client.post_report(<Hole ID>, <Reason>)
52```
53
54## Roadmap
55
56- [x] 支持新版树洞
57- [x] 支持 IAAA 账号登陆
58- [x] 树洞数据模型
59- [x] 客户端封装
60- [x] 获取单个树洞
61- [x] 获取首页树洞
62- [x] 获取关注树洞
63- [x] 获取树洞回复
64- [x] 关注/取关树洞
65- [x] 回复树洞
66- [x] 发布树洞
67- [x] 举报树洞
68- [x] 支持异步处理
69- [x] 支持自定义加载长度
70- [ ] 更多功能待补充 ...
71"""
72
73try:
74    from importlib.metadata import PackageNotFoundError, version  # novm
75except ImportError:  # Fallback for Python < 3.8
76    from importlib_metadata import PackageNotFoundError, version  # novm
77
78try:
79    # Change here if project is renamed and does not equal the package name
80    dist_name = "TreeHole"
81    __version__ = version(dist_name)
82except PackageNotFoundError:  # pragma: no cover
83    __version__ = "unknown"
84finally:
85    del version, PackageNotFoundError
86
87from .client import *
88from .models import *