pywxclient.core package

Module contents

pywxclient core functions package.

class pywxclient.core.Client(session, api_cls=<class 'pywxclient.core.api.WeChatAPI'>)

Bases: object

WeChat client base class.

authorize()

Request WeChat authorize.

close()

Close client.

dump()

Dump client object as dict.

flush_sync_key()

Update WeChat session sync key.

This must be invoked after successfully handling new messages. Otherwise client is at risk of losing messages.

get_authorize_url()

Get WeChat authorize url.

get_batch_contact(user_list)

Batch getting WeChat contacts.

Parameters:user_list – a list contains dict like { ‘UserName’: ‘username’, ‘EncryChatRoomId’: ‘’}.
get_contact()

Get WeChat contacts.

classmethod load(client_dict)

Restore client from dict.

login()

Login in WeChat.

logout()

Logout WeChat.

ok_login_code = (200, 201, 400, 408)
send_message(message)

Send WeChat message.

sync_check()

Check WeChat sync status.

sync_message()

Sync WeChat message.

upload(file_obj, to_username)

Upload message resource to WeChat.

class pywxclient.core.SyncClient(session, api_cls=<class 'pywxclient.core.api.WeChatAPI'>)

Bases: pywxclient.core.client.Client

Sync request WeChat client.

authorize()

Start wechat authorization.

get_authorize_url()

Get WeChat authorize url.

get_batch_contact(user_list)

Batch getting contact.

get_contact()

Get wechat contact.

get_head_img(headimg_url)

Get user head image.

Parameters:headimg_url – headimg url.
get_icon(icon_url)

Get user icon.

Parameters:icon_url – icon url.
get_message_media(message)

Get message media content.

login()

Login wechat session.

logout()

Logout wechat session.

msg_send_routines = {1: <bound method WeChatAPI.send_text_message of <class 'pywxclient.core.api.WeChatAPI'>>, 3: <bound method WeChatAPI.send_image_message of <class 'pywxclient.core.api.WeChatAPI'>>, 6: <bound method WeChatAPI.send_file_message of <class 'pywxclient.core.api.WeChatAPI'>>, 43: <bound method WeChatAPI.send_video_message of <class 'pywxclient.core.api.WeChatAPI'>>, 47: <bound method WeChatAPI.send_gif_message of <class 'pywxclient.core.api.WeChatAPI'>>}
open_authorize_url()

Open WeChat authorization url in system-default browser.

send_message(message)

Send message to WeChat.

set_user_remark(username, remark)

Set user wechat remark.

sync_check()

Check session status.

sync_message()

Sync wechat message.

upload(file_obj, to_username)

Upload resource to WeChat.

class pywxclient.core.TextMessage(from_user, to_user, message, local_msg_id=None, create_time=None, msg_id=None)

Bases: pywxclient.core.message.MessageBase

WeChat text message.

msg_type = 1
class pywxclient.core.ImageMessage(from_user, to_user, media_id, message='', local_msg_id=None, create_time=None, msg_id=None)

Bases: pywxclient.core.message.MediaMessagebase

WeChat image message.

msg_type = 3
class pywxclient.core.GifImageMessage(from_user, to_user, media_id, message='', local_msg_id=None, create_time=None, msg_id=None)

Bases: pywxclient.core.message.MediaMessagebase

WeChat gif image message.

msg_type = 47
class pywxclient.core.VoiceMessage(from_user, to_user, media_id, message='', local_msg_id=None, create_time=None, msg_id=None)

Bases: pywxclient.core.message.MediaMessagebase

WeChat voice message.

msg_type = 34
class pywxclient.core.FileMessage(from_user, to_user, media_id, filename, filesize, fileext, message='', local_msg_id=None, create_time=None, msg_id=None)

Bases: pywxclient.core.message.MediaMessagebase

WeChat file message.

fileext
filename
filesize
classmethod from_value(msg_value)

Construct a message object from message value.

get_body_value()

Return message body.

get_message_content()

Return file message content.

msg_type = 6
class pywxclient.core.VideoMessage(from_user, to_user, media_id, message='', local_msg_id=None, create_time=None, msg_id=None)

Bases: pywxclient.core.message.MediaMessagebase

WeChat video message.

msg_type = 43
class pywxclient.core.ExtendMessage(from_user, to_user, message, local_msg_id=None, create_time=None, msg_id=None)

Bases: pywxclient.core.message.MessageBase

Extend message.

msg_type = 49
class pywxclient.core.LocationShareMessage(from_user, to_user, message, local_msg_id=None, create_time=None, msg_id=None)

Bases: pywxclient.core.message.MessageBase

Location share message.

classmethod from_value(msg_value)

Construct message instance.

msg_type = 17
class pywxclient.core.BusinessCardMessage(from_user, to_user, message, local_msg_id=None, create_time=None, msg_id=None)

Bases: pywxclient.core.message.MessageBase

Business card message.

msg_type = 42
class pywxclient.core.TransferMessage(from_user, to_user, message, local_msg_id=None, create_time=None, msg_id=None)

Bases: pywxclient.core.message.MessageBase

Transfer message.

msg_type = 2000
class pywxclient.core.ChatLogMessage(from_user, to_user, message, local_msg_id=None, create_time=None, msg_id=None)

Bases: pywxclient.core.message.MessageBase

Chatlog message.

msg_type = 0
class pywxclient.core.ShareLinkMessage(from_user, to_user, message, local_msg_id=None, create_time=None, msg_id=None)

Bases: pywxclient.core.message.MessageBase

Link share message.

msg_type = 5
class pywxclient.core.WeAppMessage(from_user, to_user, message, local_msg_id=None, create_time=None, msg_id=None)

Bases: pywxclient.core.message.MessageBase

WeApp message.

msg_type = 33
class pywxclient.core.NoticeMessage(from_user, to_user, message, local_msg_id=None, create_time=None, msg_id=None)

Bases: pywxclient.core.message.MessageBase

WeChat notice message.

msg_type = 10000
class pywxclient.core.RevokeMessage(from_user, to_user, message, local_msg_id=None, create_time=None, msg_id=None)

Bases: pywxclient.core.message.MessageBase

WeChat revoke message.

msg_type = 10002
class pywxclient.core.StatusNotifyMessage(from_user, to_user, message, local_msg_id=None, create_time=None, msg_id=None)

Bases: pywxclient.core.message.MessageBase

WeChat user status notify message.

msg_type = 51
pywxclient.core.parse_message(msg_value)

Parse mesage value to specific MesageBase object.

class pywxclient.core.Session(request_session_cls=<class 'pywxclient.core.session.RequestsSession'>, session_data=None, endpoint=None, **kwargs)

Bases: object

WeChat client session class.

authorized

Indicate whether session has authorized.

close()

Close session.

dump()

Dump session as a dict.

finish_authorize(endpoint)

Session has authorized successfully.

get_session_cookies()

Return session cookies.

get_wx_session_data()

Return WxSession related data.

initialize_wx_session(wx_session_data)

Initialize WxSession instance.

is_active()

Check whether session is active.

load(session_data)

Load session from data.

sync(sync_key)

Sync session state.

wx_endpoint

Return wechat session endpoint.

class pywxclient.core.WeChatAPI

Bases: object

WeChat http api.

api_url_template = '{schema}://{endpoint}{url}'
appid = 'wx782c26e4c19acffb'
batch_contact_list_url = '/cgi-bin/mmwebwx-bin/webwxbatchgetcontact'
classmethod check_sync(session)

Check sync status.

contact_list_url = '/cgi-bin/mmwebwx-bin/webwxgetcontact'
classmethod do_sync(session)

Do WeChat session status sync.

do_sync_url = '/cgi-bin/mmwebwx-bin/webwxsync'
file_sub_host = 'file.'
classmethod get_base_request(wx_session_data)

Construct base request.

classmethod get_client_msg_id()

Generate client message id.

classmethod get_contact_list(session)

Get user contact list.

classmethod get_device_id()

Generate a random device id.

classmethod get_file_endpoint(session)

Return wechat file related api endpoint.

classmethod get_head_img(session, headimg_url)

Get wechat head img.

classmethod get_icon(session, icon_url)

Get user wechat icon.

classmethod get_login_endpoint(session)

Return wechat login related api endpoint.

classmethod get_login_info(session, uuid)

Get login authorize info.

classmethod get_msg_img(session, msg_id, original=True, stream=True)

Get message image.

classmethod get_msg_media(session, from_username, media_id, filename, stream=True)

Get message media data.

classmethod get_msg_voice(session, msg_id, stream=True)

Get voice message data.

classmethod get_push_endpoint(session)

Return wechat push related api endpoint.

classmethod get_qrcode_url(session, uuid)

Get authorize qrcode url.

classmethod get_qrcode_uuid(session)

Get login qrcode uuid.

classmethod get_wx_endpoint()

Return wechat api endpoint.

high_timeout = (30, 60)
init_url = '/cgi-bin/mmwebwx-bin/webwxinit'
login_sub_host = 'login.'
login_url = '/cgi-bin/mmwebwx-bin/login'
classmethod logout(session)

Logout wechat session.

logout_url = '/cgi-bin/mmwebwx-bin/webwxlogout'
low_timeout = (10, 15)
max_file_body = 524288
classmethod mget_contact_list(session, user_list)

Batch get user contact list.

middle_timeout = (15, 30)
msg_img_url = '/cgi-bin/mmwebwx-bin/webwxgetmsgimg'
msg_media_url = '/cgi-bin/mmwebwx-bin/webwxgetmedia'
msg_voice_url = '/cgi-bin/mmwebwx-bin/webwxgetvoice'
classmethod new_login_page(session, login_api_path)

Create login page.

classmethod notify_status(session, user)

Notify session status.

oplog_url = '/cgi-bin/mmwebwx-bin/webwxoplog'
push_sub_host = 'webpush.'
qrcode_url = '/qrcode'
qrcode_uuid_url = '/jslogin'
schema = 'https'
classmethod send_app_message(session, message)

Send app message api.

classmethod send_file_message(session, message)

Send file message api.

classmethod send_gif_message(session, message)

Send gif message api.

classmethod send_image_message(session, message)

Send image message api.

classmethod send_text_message(session, message)

Send text message api.

classmethod send_video_message(session, message)

Send video message api.

sendmsg_app_url = '/cgi-bin/mmwebwx-bin/webwxsendappmsg'
sendmsg_gif_url = '/cgi-bin/mmwebwx-bin/webwxsendemoticon'
sendmsg_img_url = '/cgi-bin/mmwebwx-bin/webwxsendmsgimg'
sendmsg_url = '/cgi-bin/mmwebwx-bin/webwxsendmsg'
sendmsg_video_url = '/cgi-bin/mmwebwx-bin/webwxsendvideomsg'
classmethod set_user_remark(session, username, remark)

Set user remark api.

status_notify_url = '/cgi-bin/mmwebwx-bin/webwxstatusnotify'
sync_check_url = '/cgi-bin/mmwebwx-bin/synccheck'
classmethod upload_file(session, file_obj, from_username, to_username)

Upload file to WeChat.

upload_file_url = '/cgi-bin/mmwebwx-bin/webwxuploadmedia'
wx_endpoints = ('wx.qq.com', 'wx2.qq.com')
classmethod wx_init(session)

Initialize WeChat session.