Skip to main content

Simple AnoBBS API wrapper

Project description

AnoBBS Client

AnoBBS(A岛所用匿名版架构)API 的 Python 封装库。

GitHub license PyPI pyversions PyPI version shields.io GitHub issues

功能随个人需要增加。

注意⚠️:由于本库出发点的项目没有多线程需求,所以本库当前只以单线程使用为目的设计。虽然每个请求都奢侈地专门创建了一个新的 Session,但共用的 CookieJar 并非线程安全。

实现功能

  • 查看
    • 版块
    • 页面
    • 版块列表/版规介绍/…
    • 遍历
      • 反向遍历串页面
      • 遍历版块页面
  • 发布
    • 回应
  • 添加订阅/删除订阅
  • 装载饼干

术语

  • 「卡页」「卡99」
    • 访问串的100页之后的页面,响应的会是100页的内容。

示例

毕竟只是自用,感觉也不会有其他人感兴趣,就不在这方面多费时间了。

下面都是些最基础的例子,剩下的就让源代码自己去解释吧 (ゝ∀・)

创建客户端

client = anobbsclient.Client(
    # 客户端的 User-Agent
    user_agent='…',
    # 目标服务器的主机名,如 'adnmb3.com'
    host='…',
    # 客户端的 appid,可为 `None`
    appid='…',
    # 与单次请求相关的一些选项,发送请求时可以选择覆盖这些选项
    default_request_options={
        # 在浏览器中以名为 userhash 的 cookie 的形式呈现,登录的凭证。
        # 领饼干领的就是这个。
        # 在需要提供此值(如访问超过100页的页面)而此值空缺时
        # 会直接抛异常
        'user_cookie': '…',
        # 要怎么处理登录:
        # 'enforce':            无论如何都会在请求中包含 user_cookie。
        #                       无论操作是否需要登录,都要提供 user_cookie
        # 'when_has_cookie':    只要提供了 user_cookie,就会在请求中包含它
        # 'when_required':      当需要进行需要登录的操作时,
        #                       才会在请求中包含 user_cookie
        # 'always_no':          无论如何都不在请求中包含 user_cookie。
        #                       遇到需要登录的操作会直接抛异常
        'login_policy': 'when_required',
    },
)

获取串内容

luwei_thread = client.get_thread_page(49607, page=1)

print(luwei_thread.content) #=> '这是芦苇'

获取版块内容

g_board = client.get_board_page(4, page=1)

print(g_board[0].user_id) #=> 'ATM'

发布回应

try:
    client.reply_thread(
        "正文内容", to_thread_id=999999999999,
        title="标题(可选)", name="名称(可选)",
        email="邮箱(可选)",
    )
except anobbsclient.ReplyException as e:
    # 服务器不接受所发回应
    print(e.raw_error, e.raw_detail)
    raise e

反向遍历串页面

Q:为何这么做?A:防止遍历途中有串被抽导致遗漏。

例子略,只是表示有这个功能 (ゝ∀・)

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

anobbs-client-0.0.4.tar.gz (16.0 kB view hashes)

Uploaded Source

Built Distribution

anobbs_client-0.0.4-py3-none-any.whl (24.9 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