reywechat 1.0.45__py3-none-any.whl → 1.0.46__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- reywechat/rreceive.py +88 -91
- {reywechat-1.0.45.dist-info → reywechat-1.0.46.dist-info}/METADATA +1 -1
- {reywechat-1.0.45.dist-info → reywechat-1.0.46.dist-info}/RECORD +5 -5
- {reywechat-1.0.45.dist-info → reywechat-1.0.46.dist-info}/WHEEL +0 -0
- {reywechat-1.0.45.dist-info → reywechat-1.0.46.dist-info}/licenses/LICENSE +0 -0
reywechat/rreceive.py
CHANGED
@@ -79,9 +79,7 @@ class WeChatMessage(BaseWeChat):
|
|
79
79
|
type_: int,
|
80
80
|
display: str,
|
81
81
|
data: str,
|
82
|
-
|
83
|
-
room: str | None = None,
|
84
|
-
file: MessageParameterFile | None = None
|
82
|
+
window: str
|
85
83
|
) -> None:
|
86
84
|
"""
|
87
85
|
Build instance attributes.
|
@@ -95,19 +93,7 @@ class WeChatMessage(BaseWeChat):
|
|
95
93
|
type : Message type.
|
96
94
|
display : Message description text.
|
97
95
|
data : Message source data.
|
98
|
-
|
99
|
-
- `None`: System message.
|
100
|
-
- `str`: User messages.
|
101
|
-
room : Message chat room ID.
|
102
|
-
- `None`: Private chat.
|
103
|
-
- `str`: Chat room chat.
|
104
|
-
file : Message file information.
|
105
|
-
- `None`: Non file message.
|
106
|
-
- `dict`: File message.
|
107
|
-
`Key 'path'`: File path.
|
108
|
-
`Key 'name'`: File name.
|
109
|
-
`Key 'md5'`: File MD5.
|
110
|
-
`Key 'size'`: File byte size.
|
96
|
+
window : Message sende window ID.
|
111
97
|
"""
|
112
98
|
|
113
99
|
# Import.
|
@@ -121,9 +107,26 @@ class WeChatMessage(BaseWeChat):
|
|
121
107
|
self.type = type_
|
122
108
|
self.display = display
|
123
109
|
self.data = data
|
124
|
-
self.
|
125
|
-
self.
|
126
|
-
self.
|
110
|
+
self.window = window
|
111
|
+
self.file: MessageParameterFile | None = None
|
112
|
+
self.trigger_rule: TriggerRule | None = None
|
113
|
+
self.trigger_continue = self.receiver.trigger.continue_
|
114
|
+
self.trigger_break = self.receiver.trigger.break_
|
115
|
+
self.replied: bool = False
|
116
|
+
self.exc_reports: list[str] = []
|
117
|
+
|
118
|
+
## Room and user.
|
119
|
+
if self.window.endswith('chatroom'):
|
120
|
+
self.room = self.window
|
121
|
+
if ':\n' in self.data:
|
122
|
+
self.user, self.data = self.data.split(':\n', 1)
|
123
|
+
else:
|
124
|
+
self.user = None
|
125
|
+
else:
|
126
|
+
self.room = None
|
127
|
+
self.user = self.window
|
128
|
+
|
129
|
+
## Cache.
|
127
130
|
self._window: str | None = None
|
128
131
|
self._user_name: str | None = None
|
129
132
|
self._room_name: str | None = None
|
@@ -136,6 +139,8 @@ class WeChatMessage(BaseWeChat):
|
|
136
139
|
self._is_at_self: bool | None = None
|
137
140
|
self._is_call: bool | None = None
|
138
141
|
self._call_text: str | None = None
|
142
|
+
self._is_call_next: bool | None = None
|
143
|
+
self._is_last_call: bool | None = None
|
139
144
|
self._is_new_user: bool | None = None
|
140
145
|
self._is_new_room: bool | None = None
|
141
146
|
self._is_new_room_user: bool | None = None
|
@@ -150,11 +155,9 @@ class WeChatMessage(BaseWeChat):
|
|
150
155
|
self._is_app: bool | None = None
|
151
156
|
self._app_params: dict | None = None
|
152
157
|
self._valid: bool | None = None
|
153
|
-
|
154
|
-
|
155
|
-
self.
|
156
|
-
self.replied: bool = False
|
157
|
-
self.exc_reports: list[str] = []
|
158
|
+
|
159
|
+
## Update call.
|
160
|
+
self.is_call
|
158
161
|
|
159
162
|
|
160
163
|
@property
|
@@ -198,29 +201,6 @@ class WeChatMessage(BaseWeChat):
|
|
198
201
|
return params_str
|
199
202
|
|
200
203
|
|
201
|
-
@property
|
202
|
-
def window(self) -> str:
|
203
|
-
"""
|
204
|
-
Message sender window ID.
|
205
|
-
|
206
|
-
Returns
|
207
|
-
-------
|
208
|
-
Window ID.
|
209
|
-
"""
|
210
|
-
|
211
|
-
# Cache.
|
212
|
-
if self._window is not None:
|
213
|
-
return self._window
|
214
|
-
|
215
|
-
# Set.
|
216
|
-
if self.room is None:
|
217
|
-
self._window = self.user
|
218
|
-
else:
|
219
|
-
self._window = self.room
|
220
|
-
|
221
|
-
return self._window
|
222
|
-
|
223
|
-
|
224
204
|
@property
|
225
205
|
def user_name(self) -> str:
|
226
206
|
"""
|
@@ -507,8 +487,11 @@ class WeChatMessage(BaseWeChat):
|
|
507
487
|
# Judge.
|
508
488
|
if (
|
509
489
|
|
490
|
+
## Last call.
|
491
|
+
self.is_last_call
|
492
|
+
|
510
493
|
## Private chat.
|
511
|
-
self.room is None
|
494
|
+
or self.room is None
|
512
495
|
|
513
496
|
## At self.
|
514
497
|
or is_at_self
|
@@ -522,31 +505,25 @@ class WeChatMessage(BaseWeChat):
|
|
522
505
|
):
|
523
506
|
is_call = True
|
524
507
|
call_text = text
|
525
|
-
|
526
|
-
## Call next.
|
527
|
-
elif (
|
528
|
-
self.room is not None
|
529
|
-
and (value := f'{self.room}_{self.user}') in self.receiver.call_next_mark
|
530
|
-
):
|
531
|
-
self.receiver.call_next_mark.remove(value)
|
532
|
-
is_call = True
|
533
|
-
call_text = text
|
534
|
-
|
535
508
|
else:
|
536
509
|
is_call = False
|
537
510
|
call_text = None
|
538
511
|
|
539
|
-
|
540
|
-
|
541
|
-
|
512
|
+
## Call next.
|
513
|
+
is_call_next = (
|
514
|
+
self.room is not None
|
515
|
+
and is_call
|
542
516
|
and call_text is None
|
543
|
-
|
544
|
-
|
545
|
-
|
546
|
-
|
517
|
+
)
|
518
|
+
|
519
|
+
### Mark.
|
520
|
+
if is_call_next:
|
521
|
+
call_next_mark_value = f'{self.user}_{self.room}'
|
522
|
+
self.receiver.call_next_mark(call_next_mark_value)
|
547
523
|
|
548
524
|
self._is_call = is_call
|
549
525
|
self._call_text = call_text
|
526
|
+
self._is_call_next = is_call_next
|
550
527
|
|
551
528
|
return self._is_call
|
552
529
|
|
@@ -572,6 +549,52 @@ class WeChatMessage(BaseWeChat):
|
|
572
549
|
return self._call_text
|
573
550
|
|
574
551
|
|
552
|
+
@property
|
553
|
+
def is_call_next(self) -> str:
|
554
|
+
"""
|
555
|
+
Whether if is message of call next message.
|
556
|
+
|
557
|
+
Returns
|
558
|
+
-------
|
559
|
+
Judge result.
|
560
|
+
"""
|
561
|
+
|
562
|
+
# Cache.
|
563
|
+
if self._is_call_next is not None:
|
564
|
+
return self._is_call_next
|
565
|
+
|
566
|
+
# Judge.
|
567
|
+
self.is_call
|
568
|
+
|
569
|
+
return self._is_call_next
|
570
|
+
|
571
|
+
|
572
|
+
@property
|
573
|
+
def is_last_call(self) -> str:
|
574
|
+
"""
|
575
|
+
Whether if is message of last message call this time.
|
576
|
+
|
577
|
+
Returns
|
578
|
+
-------
|
579
|
+
Judge result.
|
580
|
+
"""
|
581
|
+
|
582
|
+
# Cache.
|
583
|
+
if self._is_last_call is not None:
|
584
|
+
return self._is_last_call
|
585
|
+
|
586
|
+
# Judge.
|
587
|
+
call_next_mark_value = f'{self.user}_{self.room}'
|
588
|
+
self._is_last_call = call_next_mark_value in self.receiver.call_next_mark
|
589
|
+
|
590
|
+
# Mark.
|
591
|
+
if self._is_last_call:
|
592
|
+
call_next_mark_value = f'{self.user}_{self.room}'
|
593
|
+
self.receiver.call_next_mark.remove(call_next_mark_value)
|
594
|
+
|
595
|
+
return self.is_last_call
|
596
|
+
|
597
|
+
|
575
598
|
@property
|
576
599
|
def is_new_user(self) -> bool:
|
577
600
|
"""
|
@@ -1171,7 +1194,6 @@ class WechatReceiver(BaseWeChat):
|
|
1171
1194
|
|
1172
1195
|
# Set parameter.
|
1173
1196
|
handlers = [
|
1174
|
-
self.__receiver_handler_room,
|
1175
1197
|
self.__receiver_handler_file,
|
1176
1198
|
*self.handlers
|
1177
1199
|
]
|
@@ -1241,31 +1263,6 @@ class WechatReceiver(BaseWeChat):
|
|
1241
1263
|
self.handlers.append(handler)
|
1242
1264
|
|
1243
1265
|
|
1244
|
-
def __receiver_handler_room(
|
1245
|
-
self,
|
1246
|
-
message: WeChatMessage
|
1247
|
-
) -> None:
|
1248
|
-
"""
|
1249
|
-
Handle room message.
|
1250
|
-
"""
|
1251
|
-
|
1252
|
-
# Break.
|
1253
|
-
if (
|
1254
|
-
type(message.user) != str
|
1255
|
-
or not message.user.endswith('chatroom')
|
1256
|
-
):
|
1257
|
-
return
|
1258
|
-
|
1259
|
-
# Set attribute.
|
1260
|
-
message.room = message.user
|
1261
|
-
if ':\n' in message.data:
|
1262
|
-
user, data = message.data.split(':\n', 1)
|
1263
|
-
message.user = user
|
1264
|
-
message.data = data
|
1265
|
-
else:
|
1266
|
-
message.user = None
|
1267
|
-
|
1268
|
-
|
1269
1266
|
def __receiver_handler_file(
|
1270
1267
|
self,
|
1271
1268
|
message: WeChatMessage
|
@@ -5,13 +5,13 @@ reywechat/rcache.py,sha256=Hh_HE-t_KUMlrz4gEFPh1AjmhnrSgH520IFJPumWb7A,908
|
|
5
5
|
reywechat/rclient.py,sha256=MEvQB3pHb5ORukKbKntalRtFcKIOP9BGtDsMt5ihQfM,22524
|
6
6
|
reywechat/rdb.py,sha256=akIQsx4CZIt-H6kXWn2vpUYjo5MgD8MluzBMnSdmLaM,40051
|
7
7
|
reywechat/rlog.py,sha256=IJL2WquiOYfB9iEai9xjojkuxPxiRHkdzZ5vCeaSA98,5261
|
8
|
-
reywechat/rreceive.py,sha256=
|
8
|
+
reywechat/rreceive.py,sha256=zANspJOxn2sQLW0CdA-vFsIeqG1OuVwDyytGM5LxQvQ,35483
|
9
9
|
reywechat/rschedule.py,sha256=X9kreXdClTeItJHmNPJNqb_lct-BiLCyusMQxsj5hWU,1865
|
10
10
|
reywechat/rsend.py,sha256=GfCv5O1-81r-o-RLzMMW_MQE99KwO9gZ3-93HaJ97W8,17595
|
11
11
|
reywechat/rtrigger.py,sha256=n8kUNovh62r7crlXrp33uaKvbILT-wcfvUqeyGt7YhM,4956
|
12
12
|
reywechat/rwechat.py,sha256=OcElINAi9jM-eDb_OTtseBW3kyG_3jD4V4QmltR6MeE,4874
|
13
13
|
reywechat/data/client_api.dll,sha256=H9uj-x9Ztg0jFZK0yY6NsnyH5_119dQRFfoVVMidxRs,592384
|
14
|
-
reywechat-1.0.
|
15
|
-
reywechat-1.0.
|
16
|
-
reywechat-1.0.
|
17
|
-
reywechat-1.0.
|
14
|
+
reywechat-1.0.46.dist-info/METADATA,sha256=R7vaJAjsObdA7VXgbOaB-Sj4k8kasY9i5EJhSg564JQ,1551
|
15
|
+
reywechat-1.0.46.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
16
|
+
reywechat-1.0.46.dist-info/licenses/LICENSE,sha256=UYLPqp7BvPiH8yEZduJqmmyEl6hlM3lKrFIefiD4rvk,1059
|
17
|
+
reywechat-1.0.46.dist-info/RECORD,,
|
File without changes
|
File without changes
|