80 lines
1.8 KiB
Python
80 lines
1.8 KiB
Python
from .base import (
|
|
BaseMessage,
|
|
HumanMessage
|
|
)
|
|
from wechatauto import uia
|
|
from wechatauto.param import (
|
|
WxParam,
|
|
WxResponse,
|
|
PROJECT_NAME
|
|
)
|
|
|
|
from typing import (
|
|
Dict,
|
|
List,
|
|
Any,
|
|
TYPE_CHECKING
|
|
)
|
|
if TYPE_CHECKING:
|
|
from wechatauto.ui.chatbox import ChatBox
|
|
|
|
|
|
class SystemMessage(BaseMessage):
|
|
attr = 'system'
|
|
|
|
def __init__(
|
|
self,
|
|
control: uia.Control,
|
|
parent: "ChatBox",
|
|
additonal_attr: Dict[str, Any] = {}
|
|
):
|
|
super().__init__(control, parent, additonal_attr)
|
|
self.sender = 'system'
|
|
self.sender_remark = 'system'
|
|
|
|
|
|
class FriendMessage(HumanMessage):
|
|
attr = 'friend'
|
|
|
|
def __init__(
|
|
self,
|
|
control: uia.Control,
|
|
parent: "ChatBox",
|
|
additonal_attr: Dict[str, Any] = {}
|
|
):
|
|
super().__init__(control, parent, additonal_attr)
|
|
|
|
def _click(self, x, y, right=False):
|
|
self.roll_into_view()
|
|
if right:
|
|
self.control.RightClick(x=x, y=y, ratioX=0, ratioY=0)
|
|
else:
|
|
self.control.Click(ratioX=0, ratioY=0)
|
|
|
|
@property
|
|
def _bias(self):
|
|
return WxParam.DEFAULT_MESSAGE_XBIAS
|
|
|
|
|
|
class SelfMessage(HumanMessage):
|
|
attr = 'self'
|
|
|
|
def __init__(
|
|
self,
|
|
control: uia.Control,
|
|
parent: "ChatBox",
|
|
additonal_attr: Dict[str, Any] = {}
|
|
):
|
|
super().__init__(control, parent, additonal_attr)
|
|
|
|
def _click(self, x, y, right=False):
|
|
self.roll_into_view()
|
|
if right:
|
|
self.control.RightClick(x=x, y=y, ratioX=1, ratioY=0)
|
|
else:
|
|
self.control.Click(x=x, y=y, ratioX=1, ratioY=0)
|
|
|
|
@property
|
|
def _bias(self):
|
|
return -WxParam.DEFAULT_MESSAGE_XBIAS
|