Skip to content
This repository has been archived by the owner on Aug 5, 2020. It is now read-only.

Develop #34

Open
wants to merge 10 commits into
base: master
Choose a base branch
from
22 changes: 17 additions & 5 deletions docs/messages.rst
Original file line number Diff line number Diff line change
Expand Up @@ -45,17 +45,13 @@
# 系统
SYSTEM = 'System'

.. attribute:: Message.create_time

消息的发送时间戳

.. attribute:: Message.bot

接收此消息的 :class:`机器人对象 <Bot>`

.. attribute:: Message.id

消息的唯一ID
消息的唯一 ID (通常为大于 0 的 64 位整型)


内容数据
Expand Down Expand Up @@ -117,6 +113,22 @@
当消息来自群聊,且被 @ 时,为 True


时间相关
^^^^^^^^^^^^^^^^^

.. attribute:: Message.create_time

消息的发送时间

.. attribute:: Message.receive_time

消息的接收时间

.. attribute:: Message.latency

消息的延迟秒数 (发送时间和接收时间的差值)


其他属性
^^^^^^^^^^^^^^^^

Expand Down
11 changes: 6 additions & 5 deletions wxpy/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,19 +42,20 @@ def reply_my_friend(msg):


"""

import sys

from .api.bot import Bot
from .api.chats import Chat, Chats, Friend, Group, Groups, MP, Member, User
from .api.chats import FEMALE, MALE
from .api.messages import ATTACHMENT, CARD, FRIENDS, MAP, NOTE, PICTURE, RECORDING, SHARING, SYSTEM, TEXT, VIDEO
from .api.messages import Message, Messages
from .api.consts import ATTACHMENT, CARD, FRIENDS, MAP, NOTE, PICTURE, RECORDING, SHARING, SYSTEM, TEXT, VIDEO
from .api.consts import FEMALE, MALE
from .api.messages import Message, Messages, SentMessage
from .exceptions import ResponseError
from .ext import Tuling, WeChatLoggingHandler, XiaoI, get_wechat_logger, sync_message_in_groups
from .utils import dont_raise_response_error, embed, ensure_one, mutual_friends
from .utils import BaseRequest, dont_raise_response_error, embed, ensure_one, mutual_friends

__title__ = 'wxpy'
__version__ = '0.3.6'
__version__ = '0.3.7'
__author__ = 'Youfou'
__license__ = 'MIT'
__copyright__ = '2017, Youfou'
Expand Down
43 changes: 27 additions & 16 deletions wxpy/api/bot.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,16 @@
import logging
import os.path
import queue
import re
import tempfile
from pprint import pformat
from threading import Thread

import itchat

from wxpy.api.chats import Chat, Chats, Friend, Group, MP, User
from wxpy.api.messages import Message, MessageConfig, Messages, Registered, SYSTEM
from wxpy.utils import enhance_connection, ensure_list, get_user_name, handle_response, wrap_user_name
from ..api.chats import Chat, Chats, Friend, Group, MP, User
from ..api.consts import SYSTEM
from ..api.messages import Message, MessageConfig, Messages, Registered
from ..utils import enhance_connection, ensure_list, get_user_name, handle_response, start_new_thread, wrap_user_name

logger = logging.getLogger(__name__)

Expand Down Expand Up @@ -61,7 +61,7 @@ def __init__(
loginCallback=login_callback, exitCallback=logout_callback
)

self.self = Friend(self.core.loginInfo['User'], self)
self.self = User(self.core.loginInfo['User'], self)
self.file_helper = Chat(wrap_user_name('filehelper'), self)

self.messages = Messages()
Expand Down Expand Up @@ -235,26 +235,38 @@ def add_friend(self, user, verify_content=''):
"""
添加用户为好友

:param user: 用户对象、微信ID,或 user_name
:param user: 用户对象,或 user_name,或用户的微信ID
:param verify_content: 验证说明信息
"""

logger.info('{}: adding {} (verify_content: {})'.format(self, user, verify_content))

user_name = get_user_name(user)

if re.match(r'^@[\da-f]{32,}$', user_name):
status = 2
else:
status = 1

return self.core.add_friend(
userName=user_name,
status=status,
status=2,
verifyContent=verify_content,
autoUpdate=True
)

@handle_response()
def add_mp(self, user):

"""
添加/关注 公众号

:param user: 公众号对象,或 user_name, 或公众号的微信ID
"""

logger.info('{}: adding {}'.format(self, user))
user_name = get_user_name(user)

return self.core.add_friend(
userName=user_name,
status=1,
autoUpdate=True
)

def accept_friend(self, user, verify_content=''):
"""
接受用户为好友
Expand Down Expand Up @@ -366,7 +378,7 @@ def process():
logger.exception('\nAn error occurred in {}.'.format(config.func))

if config.run_async:
Thread(target=process, daemon=True).start()
start_new_thread(process, use_caller_name=True)
else:
process()

Expand Down Expand Up @@ -420,8 +432,7 @@ def start(self):
elif self.is_listening:
logger.warning('{} is already running, no need to start again.'.format(self))
else:
self.listening_thread = Thread(target=self._listen, daemon=True)
self.listening_thread.start()
self.listening_thread = start_new_thread(self._listen)

def stop(self):
"""
Expand Down
1 change: 0 additions & 1 deletion wxpy/api/chats/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,4 @@
from .groups import Groups
from .member import Member
from .mp import MP
from .user import FEMALE, MALE
from .user import User
Loading