Resources¶
The client exposes 11 resource groups, each grouping a related set of endpoints:
Resource |
What it covers |
|---|---|
|
login page, login, logout |
|
profile lookup by username or uid; returns |
|
notepad, signature, options, profile, change username/password/email |
|
reputation page, send reputation |
|
donate page, stats page, send credits, parse recently-sent transactions |
|
PM inbox, conversation, compose, send, tracking, delete |
|
notifications page, alerts, mark alerts read |
|
explore feed, home feed, thread-summary extraction |
|
view thread, view forum, reply, create thread |
|
full-text search form + post |
|
member list, top, statistics, team, groups, vouches, awards, reputation history |
Auto-form behavior¶
Every state-changing call (messages.send, threads.reply, credits.send, usercp.update_*, session.login, reputation.send, …) accepts an optional hidden= mapping (and my_post_key= where relevant). When omitted, the SDK loads the corresponding form page itself, extracts the hidden fields and my_post_key, then submits.
For tight loops where you already have a logged-in page parsed, pass them through to skip the extra round-trip:
inbox = await client.messages.inbox()
for recipient in recipients:
await client.messages.send(
to = recipient,
message = 'hello',
my_post_key = inbox.my_post_key,
)
inbox.my_post_key (or extract_my_post_key() on any logged-in page) is reusable across many requests within the same session.
Typed dataclasses¶
Method |
Returns |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
For raw tls_client.response.Response access, every resource keeps a get_*_page() (or get_page_*()) variant. Static extract_* parsers are exposed too if you want to feed your own HTML in.
Raw HTTP escape hatch¶
client.http exposes the underlying HttpClient. Drop down when an endpoint isn’t covered:
response = await client.http.get('/some-page.php')
print(response.status_code, response.text[:200])
The same retry, error-mapping, and cookie behavior applies.