gitextract_4rqd5pud/ ├── .clang-format ├── .gitattributes ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.md │ │ ├── discussion.md │ │ └── feature_request.md │ ├── dependabot.yml │ └── workflows/ │ ├── CI-beta.yml │ ├── CI.yml │ ├── Pages.yml │ └── Publish.yml ├── .gitignore ├── CMakeLists.txt ├── LICENSE ├── README.md ├── docs/ │ ├── CNAME │ ├── css/ │ │ └── custom.css │ ├── index.md │ ├── ref/ │ │ ├── classdef/ │ │ │ ├── ats.md │ │ │ ├── bawu_blacklist.md │ │ │ ├── bawu_info.md │ │ │ ├── bawu_perm.md │ │ │ ├── bawu_postlogs.md │ │ │ ├── bawu_userlogs.md │ │ │ ├── blacklist.md │ │ │ ├── blacklist_old.md │ │ │ ├── blocks.md │ │ │ ├── comments.md │ │ │ ├── dislike_forums.md │ │ │ ├── fans.md │ │ │ ├── follow_forums.md │ │ │ ├── follows.md │ │ │ ├── forum_detail.md │ │ │ ├── group_msg.md │ │ │ ├── images.md │ │ │ ├── last_replyers.md │ │ │ ├── member_users.md │ │ │ ├── posts.md │ │ │ ├── profile.md │ │ │ ├── rank_users.md │ │ │ ├── recom_status.md │ │ │ ├── recover_thread.md │ │ │ ├── recovers.md │ │ │ ├── replys.md │ │ │ ├── searches.md │ │ │ ├── self_follow_forums.md │ │ │ ├── square_forums.md │ │ │ ├── statistics.md │ │ │ ├── threads.md │ │ │ ├── unblock_appeals.md │ │ │ ├── user_contents.md │ │ │ └── user_info.md │ │ ├── client.md │ │ ├── config.md │ │ ├── enums.md │ │ └── exception.md │ └── tutorial/ │ ├── async_start.md │ ├── many_utils.md │ └── start.md ├── mkdocs.yml ├── pyproject.toml ├── scripts/ │ └── proto_compile.py ├── src/ │ └── aiotieba/ │ ├── __init__.py │ ├── __version__.py │ ├── api/ │ │ ├── __init__.py │ │ ├── _classdef/ │ │ │ ├── __init__.py │ │ │ ├── common.py │ │ │ ├── container.py │ │ │ ├── contents.py │ │ │ ├── user.py │ │ │ └── vote.py │ │ ├── _protobuf/ │ │ │ ├── Agree.proto │ │ │ ├── Agree_pb2.py │ │ │ ├── CommonReq.proto │ │ │ ├── CommonReq_pb2.py │ │ │ ├── Error.proto │ │ │ ├── Error_pb2.py │ │ │ ├── ForumList.proto │ │ │ ├── ForumList_pb2.py │ │ │ ├── FrsTabInfo.proto │ │ │ ├── FrsTabInfo_pb2.py │ │ │ ├── Lcm.proto │ │ │ ├── Lcm_pb2.py │ │ │ ├── Media.proto │ │ │ ├── Media_pb2.py │ │ │ ├── Page.proto │ │ │ ├── Page_pb2.py │ │ │ ├── PbContent.proto │ │ │ ├── PbContent_pb2.py │ │ │ ├── PollInfo.proto │ │ │ ├── PollInfo_pb2.py │ │ │ ├── Post.proto │ │ │ ├── PostInfoList.proto │ │ │ ├── PostInfoList_pb2.py │ │ │ ├── Post_pb2.py │ │ │ ├── Rpc.proto │ │ │ ├── Rpc_pb2.py │ │ │ ├── SimpleForum.proto │ │ │ ├── SimpleForum_pb2.py │ │ │ ├── SubPostList.proto │ │ │ ├── SubPostList_pb2.py │ │ │ ├── ThreadInfo.proto │ │ │ ├── ThreadInfo_pb2.py │ │ │ ├── User.proto │ │ │ ├── User_pb2.py │ │ │ ├── VideoInfo.proto │ │ │ ├── VideoInfo_pb2.py │ │ │ ├── Voice.proto │ │ │ ├── Voice_pb2.py │ │ │ └── __init__.py │ │ ├── add_bawu/ │ │ │ ├── __init__.py │ │ │ └── _api.py │ │ ├── add_bawu_blacklist/ │ │ │ ├── __init__.py │ │ │ └── _api.py │ │ ├── add_blacklist_old/ │ │ │ ├── __init__.py │ │ │ └── _api.py │ │ ├── add_post/ │ │ │ ├── __init__.py │ │ │ ├── _api.py │ │ │ └── protobuf/ │ │ │ ├── AddPostReqIdl.proto │ │ │ ├── AddPostReqIdl_pb2.py │ │ │ ├── AddPostResIdl.proto │ │ │ └── AddPostResIdl_pb2.py │ │ ├── agree/ │ │ │ ├── __init__.py │ │ │ └── _api.py │ │ ├── block/ │ │ │ ├── __init__.py │ │ │ └── _api.py │ │ ├── del_bawu/ │ │ │ ├── __init__.py │ │ │ └── _api.py │ │ ├── del_bawu_blacklist/ │ │ │ ├── __init__.py │ │ │ └── _api.py │ │ ├── del_blacklist_old/ │ │ │ ├── __init__.py │ │ │ └── _api.py │ │ ├── del_post/ │ │ │ ├── __init__.py │ │ │ └── _api.py │ │ ├── del_posts/ │ │ │ ├── __init__.py │ │ │ └── _api.py │ │ ├── del_thread/ │ │ │ ├── __init__.py │ │ │ └── _api.py │ │ ├── del_threads/ │ │ │ ├── __init__.py │ │ │ └── _api.py │ │ ├── dislike_forum/ │ │ │ ├── __init__.py │ │ │ └── _api.py │ │ ├── follow_forum/ │ │ │ ├── __init__.py │ │ │ └── _api.py │ │ ├── follow_user/ │ │ │ ├── __init__.py │ │ │ └── _api.py │ │ ├── get_ats/ │ │ │ ├── __init__.py │ │ │ ├── _api.py │ │ │ └── _classdef.py │ │ ├── get_bawu_blacklist/ │ │ │ ├── __init__.py │ │ │ ├── _api.py │ │ │ └── _classdef.py │ │ ├── get_bawu_info/ │ │ │ ├── __init__.py │ │ │ ├── _api.py │ │ │ ├── _classdef.py │ │ │ └── protobuf/ │ │ │ ├── GetBawuInfoReqIdl.proto │ │ │ ├── GetBawuInfoReqIdl_pb2.py │ │ │ ├── GetBawuInfoResIdl.proto │ │ │ └── GetBawuInfoResIdl_pb2.py │ │ ├── get_bawu_perm/ │ │ │ ├── __init__.py │ │ │ ├── _api.py │ │ │ └── _classdef.py │ │ ├── get_bawu_postlogs/ │ │ │ ├── __init__.py │ │ │ ├── _api.py │ │ │ └── _classdef.py │ │ ├── get_bawu_userlogs/ │ │ │ ├── __init__.py │ │ │ ├── _api.py │ │ │ └── _classdef.py │ │ ├── get_blacklist/ │ │ │ ├── __init__.py │ │ │ ├── _api.py │ │ │ └── _classdef.py │ │ ├── get_blacklist_old/ │ │ │ ├── __init__.py │ │ │ ├── _api.py │ │ │ ├── _classdef.py │ │ │ └── protobuf/ │ │ │ ├── UserMuteQueryReqIdl.proto │ │ │ ├── UserMuteQueryReqIdl_pb2.py │ │ │ ├── UserMuteQueryResIdl.proto │ │ │ └── UserMuteQueryResIdl_pb2.py │ │ ├── get_blocks/ │ │ │ ├── __init__.py │ │ │ ├── _api.py │ │ │ └── _classdef.py │ │ ├── get_cid/ │ │ │ ├── __init__.py │ │ │ └── _api.py │ │ ├── get_comments/ │ │ │ ├── __init__.py │ │ │ ├── _api.py │ │ │ ├── _classdef.py │ │ │ └── protobuf/ │ │ │ ├── PbFloorReqIdl.proto │ │ │ ├── PbFloorReqIdl_pb2.py │ │ │ ├── PbFloorResIdl.proto │ │ │ └── PbFloorResIdl_pb2.py │ │ ├── get_dislike_forums/ │ │ │ ├── __init__.py │ │ │ ├── _api.py │ │ │ ├── _classdef.py │ │ │ └── protobuf/ │ │ │ ├── GetDislikeListReqIdl.proto │ │ │ ├── GetDislikeListReqIdl_pb2.py │ │ │ ├── GetDislikeListResIdl.proto │ │ │ └── GetDislikeListResIdl_pb2.py │ │ ├── get_fans/ │ │ │ ├── __init__.py │ │ │ ├── _api.py │ │ │ └── _classdef.py │ │ ├── get_fid/ │ │ │ ├── __init__.py │ │ │ └── _api.py │ │ ├── get_follow_forums/ │ │ │ ├── __init__.py │ │ │ ├── _api.py │ │ │ └── _classdef.py │ │ ├── get_follows/ │ │ │ ├── __init__.py │ │ │ ├── _api.py │ │ │ └── _classdef.py │ │ ├── get_forum/ │ │ │ ├── __init__.py │ │ │ ├── _api.py │ │ │ └── _classdef.py │ │ ├── get_forum_detail/ │ │ │ ├── __init__.py │ │ │ ├── _api.py │ │ │ ├── _classdef.py │ │ │ └── protobuf/ │ │ │ ├── GetForumDetailReqIdl.proto │ │ │ ├── GetForumDetailReqIdl_pb2.py │ │ │ ├── GetForumDetailResIdl.proto │ │ │ └── GetForumDetailResIdl_pb2.py │ │ ├── get_forum_level/ │ │ │ ├── __init__.py │ │ │ ├── _api.py │ │ │ ├── _classdef.py │ │ │ └── protobuf/ │ │ │ ├── GetLevelInfoReqIdl.proto │ │ │ ├── GetLevelInfoReqIdl_pb2.py │ │ │ ├── GetLevelInfoResIdl.proto │ │ │ └── GetLevelInfoResIdl_pb2.py │ │ ├── get_group_msg/ │ │ │ ├── __init__.py │ │ │ ├── _api.py │ │ │ ├── _classdef.py │ │ │ └── protobuf/ │ │ │ ├── GetGroupMsgReqIdl.proto │ │ │ ├── GetGroupMsgReqIdl_pb2.py │ │ │ ├── GetGroupMsgResIdl.proto │ │ │ └── GetGroupMsgResIdl_pb2.py │ │ ├── get_images/ │ │ │ ├── __init__.py │ │ │ ├── _api.py │ │ │ └── _classdef.py │ │ ├── get_last_replyers/ │ │ │ ├── __init__.py │ │ │ ├── _api.py │ │ │ ├── _classdef.py │ │ │ └── protobuf/ │ │ │ ├── FrsPageReqIdl4lp.proto │ │ │ ├── FrsPageReqIdl4lp_pb2.py │ │ │ ├── FrsPageResIdl4lp.proto │ │ │ └── FrsPageResIdl4lp_pb2.py │ │ ├── get_member_users/ │ │ │ ├── __init__.py │ │ │ ├── _api.py │ │ │ └── _classdef.py │ │ ├── get_posts/ │ │ │ ├── __init__.py │ │ │ ├── _api.py │ │ │ ├── _classdef.py │ │ │ └── protobuf/ │ │ │ ├── PbPageReqIdl.proto │ │ │ ├── PbPageReqIdl_pb2.py │ │ │ ├── PbPageResIdl.proto │ │ │ └── PbPageResIdl_pb2.py │ │ ├── get_rank_forums/ │ │ │ ├── __init__.py │ │ │ ├── _api.py │ │ │ └── _classdef.py │ │ ├── get_rank_users/ │ │ │ ├── __init__.py │ │ │ ├── _api.py │ │ │ └── _classdef.py │ │ ├── get_recom_status/ │ │ │ ├── __init__.py │ │ │ ├── _api.py │ │ │ └── _classdef.py │ │ ├── get_recover_info/ │ │ │ ├── __init__.py │ │ │ ├── _api.py │ │ │ └── _classdef.py │ │ ├── get_recovers/ │ │ │ ├── __init__.py │ │ │ ├── _api.py │ │ │ └── _classdef.py │ │ ├── get_replys/ │ │ │ ├── __init__.py │ │ │ ├── _api.py │ │ │ ├── _classdef.py │ │ │ └── protobuf/ │ │ │ ├── ReplyMeReqIdl.proto │ │ │ ├── ReplyMeReqIdl_pb2.py │ │ │ ├── ReplyMeResIdl.proto │ │ │ └── ReplyMeResIdl_pb2.py │ │ ├── get_roomlist_by_fid/ │ │ │ ├── __init__.py │ │ │ ├── _api.py │ │ │ └── _classdef.py │ │ ├── get_self_follow_forums/ │ │ │ ├── __init__.py │ │ │ ├── _api.py │ │ │ └── _classdef.py │ │ ├── get_self_follow_forums_v1/ │ │ │ ├── __init__.py │ │ │ ├── _api.py │ │ │ └── _classdef.py │ │ ├── get_selfinfo_initNickname/ │ │ │ ├── __init__.py │ │ │ ├── _api.py │ │ │ └── _classdef.py │ │ ├── get_selfinfo_moindex/ │ │ │ ├── __init__.py │ │ │ ├── _api.py │ │ │ └── _classdef.py │ │ ├── get_square_forums/ │ │ │ ├── __init__.py │ │ │ ├── _api.py │ │ │ ├── _classdef.py │ │ │ └── protobuf/ │ │ │ ├── GetForumSquareReqIdl.proto │ │ │ ├── GetForumSquareReqIdl_pb2.py │ │ │ ├── GetForumSquareResIdl.proto │ │ │ └── GetForumSquareResIdl_pb2.py │ │ ├── get_statistics/ │ │ │ ├── __init__.py │ │ │ ├── _api.py │ │ │ └── _classdef.py │ │ ├── get_tab_map/ │ │ │ ├── __init__.py │ │ │ ├── _api.py │ │ │ ├── _classdef.py │ │ │ └── protobuf/ │ │ │ ├── SearchPostForumReqIdl.proto │ │ │ ├── SearchPostForumReqIdl_pb2.py │ │ │ ├── SearchPostForumResIdl.proto │ │ │ └── SearchPostForumResIdl_pb2.py │ │ ├── get_threads/ │ │ │ ├── __init__.py │ │ │ ├── _api.py │ │ │ ├── _classdef.py │ │ │ └── protobuf/ │ │ │ ├── FrsPageReqIdl.proto │ │ │ ├── FrsPageReqIdl_pb2.py │ │ │ ├── FrsPageResIdl.proto │ │ │ └── FrsPageResIdl_pb2.py │ │ ├── get_uinfo_getUserInfo_web/ │ │ │ ├── __init__.py │ │ │ ├── _api.py │ │ │ └── _classdef.py │ │ ├── get_uinfo_getuserinfo_app/ │ │ │ ├── __init__.py │ │ │ ├── _api.py │ │ │ ├── _classdef.py │ │ │ └── protobuf/ │ │ │ ├── GetUserInfoReqIdl.proto │ │ │ ├── GetUserInfoReqIdl_pb2.py │ │ │ ├── GetUserInfoResIdl.proto │ │ │ └── GetUserInfoResIdl_pb2.py │ │ ├── get_uinfo_panel/ │ │ │ ├── __init__.py │ │ │ ├── _api.py │ │ │ └── _classdef.py │ │ ├── get_uinfo_user_json/ │ │ │ ├── __init__.py │ │ │ ├── _api.py │ │ │ └── _classdef.py │ │ ├── get_unblock_appeals/ │ │ │ ├── __init__.py │ │ │ ├── _api.py │ │ │ └── _classdef.py │ │ ├── get_user_contents/ │ │ │ ├── __init__.py │ │ │ ├── _classdef.py │ │ │ ├── _const.py │ │ │ ├── get_posts/ │ │ │ │ ├── __init__.py │ │ │ │ └── _api.py │ │ │ ├── get_posts_form/ │ │ │ │ ├── __init__.py │ │ │ │ └── _api.py │ │ │ ├── get_threads/ │ │ │ │ ├── __init__.py │ │ │ │ └── _api.py │ │ │ └── protobuf/ │ │ │ ├── UserPostReqIdl.proto │ │ │ ├── UserPostReqIdl_pb2.py │ │ │ ├── UserPostResIdl.proto │ │ │ └── UserPostResIdl_pb2.py │ │ ├── get_user_forum_info/ │ │ │ ├── __init__.py │ │ │ ├── _api.py │ │ │ └── _classdef.py │ │ ├── good/ │ │ │ ├── __init__.py │ │ │ └── _api.py │ │ ├── handle_unblock_appeals/ │ │ │ ├── __init__.py │ │ │ └── _api.py │ │ ├── init_websocket/ │ │ │ ├── __init__.py │ │ │ ├── _api.py │ │ │ ├── _classdef.py │ │ │ └── protobuf/ │ │ │ ├── UpdateClientInfoReqIdl.proto │ │ │ ├── UpdateClientInfoReqIdl_pb2.py │ │ │ ├── UpdateClientInfoResIdl.proto │ │ │ └── UpdateClientInfoResIdl_pb2.py │ │ ├── init_z_id/ │ │ │ ├── __init__.py │ │ │ └── _api.py │ │ ├── login/ │ │ │ ├── __init__.py │ │ │ ├── _api.py │ │ │ └── _classdef.py │ │ ├── move/ │ │ │ ├── __init__.py │ │ │ └── _api.py │ │ ├── profile/ │ │ │ ├── __init__.py │ │ │ ├── _classdef.py │ │ │ ├── _const.py │ │ │ ├── get_homepage/ │ │ │ │ ├── __init__.py │ │ │ │ └── _api.py │ │ │ ├── get_uinfo_profile/ │ │ │ │ ├── __init__.py │ │ │ │ └── _api.py │ │ │ └── protobuf/ │ │ │ ├── ProfileReqIdl.proto │ │ │ ├── ProfileReqIdl_pb2.py │ │ │ ├── ProfileResIdl.proto │ │ │ └── ProfileResIdl_pb2.py │ │ ├── push_notify/ │ │ │ ├── __init__.py │ │ │ ├── _api.py │ │ │ ├── _classdef.py │ │ │ └── protobuf/ │ │ │ ├── PushNotifyResIdl.proto │ │ │ └── PushNotifyResIdl_pb2.py │ │ ├── recommend/ │ │ │ ├── __init__.py │ │ │ └── _api.py │ │ ├── recover/ │ │ │ ├── __init__.py │ │ │ └── _api.py │ │ ├── remove_fan/ │ │ │ ├── __init__.py │ │ │ └── _api.py │ │ ├── search_exact/ │ │ │ ├── __init__.py │ │ │ ├── _api.py │ │ │ └── _classdef.py │ │ ├── send_chatroom_msg/ │ │ │ ├── __init__.py │ │ │ └── _api.py │ │ ├── send_msg/ │ │ │ ├── __init__.py │ │ │ ├── _api.py │ │ │ └── protobuf/ │ │ │ ├── CommitPersonalMsgReqIdl.proto │ │ │ ├── CommitPersonalMsgReqIdl_pb2.py │ │ │ ├── CommitPersonalMsgResIdl.proto │ │ │ └── CommitPersonalMsgResIdl_pb2.py │ │ ├── set_bawu_perm/ │ │ │ ├── __init__.py │ │ │ └── _api.py │ │ ├── set_blacklist/ │ │ │ ├── __init__.py │ │ │ ├── _api.py │ │ │ └── protobuf/ │ │ │ ├── SetUserBlackReqIdl.proto │ │ │ ├── SetUserBlackReqIdl_pb2.py │ │ │ ├── SetUserBlackResIdl.proto │ │ │ └── SetUserBlackResIdl_pb2.py │ │ ├── set_msg_readed/ │ │ │ ├── __init__.py │ │ │ ├── _api.py │ │ │ └── protobuf/ │ │ │ ├── CommitReceivedPmsgReqIdl.proto │ │ │ ├── CommitReceivedPmsgReqIdl_pb2.py │ │ │ ├── CommitReceivedPmsgResIdl.proto │ │ │ └── CommitReceivedPmsgResIdl_pb2.py │ │ ├── set_nickname_old/ │ │ │ ├── __init__.py │ │ │ └── _api.py │ │ ├── set_profile/ │ │ │ ├── __init__.py │ │ │ └── _api.py │ │ ├── set_thread_privacy/ │ │ │ ├── __init__.py │ │ │ └── _api.py │ │ ├── sign_forum/ │ │ │ ├── __init__.py │ │ │ └── _api.py │ │ ├── sign_forums/ │ │ │ ├── __init__.py │ │ │ └── _api.py │ │ ├── sign_growth/ │ │ │ ├── __init__.py │ │ │ └── _api.py │ │ ├── sync/ │ │ │ ├── __init__.py │ │ │ └── _api.py │ │ ├── tieba_uid2user_info/ │ │ │ ├── __init__.py │ │ │ ├── _api.py │ │ │ ├── _classdef.py │ │ │ └── protobuf/ │ │ │ ├── GetUserByTiebaUidReqIdl.proto │ │ │ ├── GetUserByTiebaUidReqIdl_pb2.py │ │ │ ├── GetUserByTiebaUidResIdl.proto │ │ │ └── GetUserByTiebaUidResIdl_pb2.py │ │ ├── top/ │ │ │ ├── __init__.py │ │ │ └── _api.py │ │ ├── unblock/ │ │ │ ├── __init__.py │ │ │ └── _api.py │ │ ├── undislike_forum/ │ │ │ ├── __init__.py │ │ │ └── _api.py │ │ ├── unfollow_forum/ │ │ │ ├── __init__.py │ │ │ └── _api.py │ │ ├── unfollow_user/ │ │ │ ├── __init__.py │ │ │ └── _api.py │ │ └── ungood/ │ │ ├── __init__.py │ │ └── _api.py │ ├── client.py │ ├── config.py │ ├── const.py │ ├── core/ │ │ ├── __init__.py │ │ ├── account.py │ │ ├── blcp.py │ │ ├── http.py │ │ ├── net.py │ │ └── websocket.py │ ├── enums.py │ ├── exception.py │ ├── helper/ │ │ ├── __init__.py │ │ ├── cache.py │ │ ├── crypto/ │ │ │ ├── CMakeLists.txt │ │ │ ├── __init__.py │ │ │ ├── crypto.pyi │ │ │ ├── include/ │ │ │ │ ├── base32/ │ │ │ │ │ └── base32.h │ │ │ │ ├── crc/ │ │ │ │ │ └── crc32.h │ │ │ │ ├── mbedtls/ │ │ │ │ │ ├── alignment.h │ │ │ │ │ ├── common.h │ │ │ │ │ ├── md5.h │ │ │ │ │ ├── private_access.h │ │ │ │ │ └── sha1.h │ │ │ │ ├── rapidjson/ │ │ │ │ │ └── itoa.h │ │ │ │ ├── tbcrypto/ │ │ │ │ │ ├── bb64.h │ │ │ │ │ ├── const.h │ │ │ │ │ ├── cuid.h │ │ │ │ │ ├── error.h │ │ │ │ │ ├── pywrap.h │ │ │ │ │ ├── rc442.h │ │ │ │ │ └── sign.h │ │ │ │ └── xxHash/ │ │ │ │ └── xxhash.h │ │ │ └── src/ │ │ │ ├── base32/ │ │ │ │ └── base32.c │ │ │ ├── crc/ │ │ │ │ └── crc32.c │ │ │ ├── mbedtls/ │ │ │ │ ├── md5.c │ │ │ │ └── sha1.c │ │ │ └── tbcrypto/ │ │ │ ├── bb64.c │ │ │ ├── cuid.c │ │ │ ├── lib.c │ │ │ ├── rc442.c │ │ │ └── sign.c │ │ └── utils.py │ ├── logging.py │ └── typing.py └── tests/ ├── conftest.py ├── test_crypto.py ├── test_get_ats.py ├── test_get_blocks.py ├── test_get_comments.py ├── test_get_fans.py ├── test_get_follow_forums.py ├── test_get_follows.py ├── test_get_forum_detail.py ├── test_get_homepage.py ├── test_get_posts.py ├── test_get_recovers.py ├── test_get_threads.py ├── test_get_user_info.py └── test_get_user_posts.py