Skip to main content

A Python interface to PKU Hole!

Project description

重要通知!!:由于原树洞更改了鉴权方式和请求地址,导致本包 v2.0.0 之前的版本均不可用,请及时将您的项目更新至 v2.0.0 及以上版本。

新版本树洞认证方法见下文


TreeHole

A simple Python interface to PKU Tree Hole

GitHub - License Git - Last Doc Commit

PyPI - Version PyPI - Downloads per month

Pytest - Result Git - Last Commit

目前正在持续开发完善中,欢迎使用和提出建议!

亮点

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

安装

已发布至 Pypi 源,可直接使用 pip 安装:

pip3 install TreeHole

使用

身份验证

您有两种方式来验证身份:

  1. 使用用户名和密码登陆(不推荐)

    可以在实例化 TreeHoleClient 时传入 uid(学号)和 password(密码)参数即可,使用 IAAA 账号登陆

  2. 使用 token 登陆(推荐,相对安全)

    树洞 token 的获取方式请参考 @Guyutongxue 的操作说明(即此说明中的“北大树洞 JWT”),您也可以在浏览器的 cookies 中的 pku_token 字段处找到它。

代码示例

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>)

用例请参考 非异步异步

开发

克隆此仓库:

git clone git@github.com:TeddyHuang-00/pyTreeHole.git

编辑模式下:

pip3 install -e ".[test]"

欢迎提 issues 与 PR!

Roadmap

  • 支持新版树洞
  • 支持 IAAA 账号登陆
  • 树洞数据模型
  • 客户端封装
  • 获取单个树洞
  • 获取首页树洞
  • 获取关注树洞
  • 获取树洞回复
  • 关注/取关树洞
  • 回复树洞
  • 发布树洞
  • 举报树洞
  • 支持异步处理
  • 支持自定义加载长度
  • 更多功能待补充 ...

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

TreeHole-2.0.0.tar.gz (11.9 kB view hashes)

Uploaded Source

Built Distribution

TreeHole-2.0.0-py3-none-any.whl (12.2 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page