Code Monkey home page Code Monkey logo

pytreehole's Introduction

Deprecation Notice:由于树洞频繁更换API,最近又引入了web UUID强制短信验证,我已无精力维护此项目,故将废弃,如果您有兴趣继续开发本项目,可以继续PR并联系我,或者将其发布到一个新的包名。再次感谢所有使用过和对开发做出过帮助的人。


重要通知!!:由于原树洞更改了鉴权方式和请求地址,导致本包 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 [email protected]:TeddyHuang-00/pyTreeHole.git

编辑模式下:

pip3 install -e ".[test]"

欢迎提 issues 与 PR!

Roadmap

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

pytreehole's People

Contributors

teddyhuang-00 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.