reywechat 1.0.26__py3-none-any.whl → 1.0.27__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/rdb.py CHANGED
@@ -77,11 +77,11 @@ class WeChatDatabase(BaseWeChat):
77
77
  self.build()
78
78
 
79
79
  # Add handler.
80
- self.__add_handler_to_contact_user()
81
- self.__add_handler_to_contact_room()
82
- self.__add_handler_to_contact_room_user()
83
- self.__add_handler_to_message_receive()
84
- self.__add_handler_update_send_status()
80
+ self.__add_receiver_handler_to_contact_user()
81
+ self.__add_receiver_handler_to_contact_room()
82
+ self.__add_receiver_handler_to_contact_room_user()
83
+ self.__add_receiver_handler_to_message_receive()
84
+ self.__add_sender_handler_update_send_status()
85
85
 
86
86
  # Loop.
87
87
  self.__start_from_message_send()
@@ -714,14 +714,14 @@ class WeChatDatabase(BaseWeChat):
714
714
  conn.close()
715
715
 
716
716
 
717
- def __add_handler_to_contact_user(self) -> None:
717
+ def __add_receiver_handler_to_contact_user(self) -> None:
718
718
  """
719
- Add handler, write record to table `contact_user`.
719
+ Add receiver handler, write record to table `contact_user`.
720
720
  """
721
721
 
722
722
 
723
723
  # Define.
724
- def handler_to_contact_user(message: WeChatMessage) -> None:
724
+ def receiver_handler_to_contact_user(message: WeChatMessage) -> None:
725
725
  """
726
726
  Write record to table `contact_user`.
727
727
 
@@ -750,17 +750,17 @@ class WeChatDatabase(BaseWeChat):
750
750
 
751
751
 
752
752
  # Add handler.
753
- self.wechat.receiver.add_handler(handler_to_contact_user)
753
+ self.wechat.receiver.add_handler(receiver_handler_to_contact_user)
754
754
 
755
755
 
756
- def __add_handler_to_contact_room(self) -> None:
756
+ def __add_receiver_handler_to_contact_room(self) -> None:
757
757
  """
758
- Add handler, write record to table `contact_room`.
758
+ Add receiver handler, write record to table `contact_room`.
759
759
  """
760
760
 
761
761
 
762
762
  # Define.
763
- def handler_to_contact_room(message: WeChatMessage) -> None:
763
+ def receiver_handler_to_contact_room(message: WeChatMessage) -> None:
764
764
  """
765
765
  Write record to table `contact_room`.
766
766
 
@@ -834,17 +834,17 @@ class WeChatDatabase(BaseWeChat):
834
834
 
835
835
 
836
836
  # Add handler.
837
- self.wechat.receiver.add_handler(handler_to_contact_room)
837
+ self.wechat.receiver.add_handler(receiver_handler_to_contact_room)
838
838
 
839
839
 
840
- def __add_handler_to_contact_room_user(self) -> None:
840
+ def __add_receiver_handler_to_contact_room_user(self) -> None:
841
841
  """
842
- Add handler, write record to table `contact_room_user`.
842
+ Add receiver handler, write record to table `contact_room_user`.
843
843
  """
844
844
 
845
845
 
846
846
  # Define.
847
- def handler_to_contact_room_user(message: WeChatMessage) -> None:
847
+ def receiver_handler_to_contact_room_user(message: WeChatMessage) -> None:
848
848
  """
849
849
  Write record to table `contact_room_user`.
850
850
 
@@ -864,17 +864,17 @@ class WeChatDatabase(BaseWeChat):
864
864
 
865
865
 
866
866
  # Add handler.
867
- self.wechat.receiver.add_handler(handler_to_contact_room_user)
867
+ self.wechat.receiver.add_handler(receiver_handler_to_contact_room_user)
868
868
 
869
869
 
870
- def __add_handler_to_message_receive(self) -> None:
870
+ def __add_receiver_handler_to_message_receive(self) -> None:
871
871
  """
872
- Add handler, write record to table `message_receive`.
872
+ Add receiver handler, write record to table `message_receive`.
873
873
  """
874
874
 
875
875
 
876
876
  # Define.
877
- def handler_to_message_receive(message: WeChatMessage) -> None:
877
+ def receiver_handler_to_message_receive(message: WeChatMessage) -> None:
878
878
  """
879
879
  Write record to table `message_receive`.
880
880
 
@@ -915,17 +915,17 @@ class WeChatDatabase(BaseWeChat):
915
915
 
916
916
 
917
917
  # Add handler.
918
- self.wechat.receiver.add_handler(handler_to_message_receive)
918
+ self.wechat.receiver.add_handler(receiver_handler_to_message_receive)
919
919
 
920
920
 
921
- def __add_handler_update_send_status(self) -> None:
921
+ def __add_sender_handler_update_send_status(self) -> None:
922
922
  """
923
- In the thread, loop read record from table `message_send`, put send queue.
923
+ Add sender handler, update field `status` of table `message_send`.
924
924
  """
925
925
 
926
926
 
927
927
  # Define.
928
- def handler_update_send_status(sendparam: WeChatSendParameter) -> None:
928
+ def sender_handler_update_send_status(sendparam: WeChatSendParameter) -> None:
929
929
  """
930
930
  Update field `status` of table `message_send`.
931
931
 
@@ -953,7 +953,7 @@ class WeChatDatabase(BaseWeChat):
953
953
 
954
954
 
955
955
  # Add handler.
956
- self.wechat.sender.add_handler(handler_update_send_status)
956
+ self.wechat.sender.add_handler(sender_handler_update_send_status)
957
957
 
958
958
 
959
959
  def __download_file(
@@ -1068,7 +1068,7 @@ class WeChatDatabase(BaseWeChat):
1068
1068
  send_id,
1069
1069
  **parameter
1070
1070
  )
1071
- self.wechat.sender.__send(sendparam)
1071
+ self.wechat.sender.queue.put(sendparam)
1072
1072
 
1073
1073
  # Commit.
1074
1074
  conn.commit()
reywechat/rreceive.py CHANGED
@@ -12,6 +12,7 @@
12
12
  from __future__ import annotations
13
13
  from typing import Any, TypedDict, Literal, overload
14
14
  from collections.abc import Callable
15
+ from os.path import join as os_join
15
16
  from queue import Queue
16
17
  from json import loads as json_loads
17
18
  from bs4 import BeautifulSoup as BSBeautifulSoup
@@ -1011,21 +1012,22 @@ class WechatReceiver(BaseWeChat):
1011
1012
 
1012
1013
  # Set parameter.
1013
1014
  handlers = [
1014
- self.__handler_room,
1015
- self.__handler_file,
1015
+ self.__receiver_handler_room,
1016
+ self.__receiver_handler_file,
1016
1017
  *self.handlers
1017
1018
  ]
1018
1019
 
1019
1020
  # Handle.
1020
1021
 
1021
1022
  ## Define.
1022
- def handle_handler_exception() -> None:
1023
+ def handle_handler_exception(exc_report, *_) -> None:
1023
1024
  """
1024
1025
  Handle Handler exception.
1025
- """
1026
1026
 
1027
- # Catch exception.
1028
- exc_report, *_ = catch_exc()
1027
+ Parameters
1028
+ ----------
1029
+ exc_report : Exception report text.
1030
+ """
1029
1031
 
1030
1032
  # Save.
1031
1033
  message.exc_reports.append(exc_report)
@@ -1080,7 +1082,7 @@ class WechatReceiver(BaseWeChat):
1080
1082
  self.handlers.append(handler)
1081
1083
 
1082
1084
 
1083
- def __handler_room(
1085
+ def __receiver_handler_room(
1084
1086
  self,
1085
1087
  message: WeChatMessage
1086
1088
  ) -> None:
@@ -1105,7 +1107,7 @@ class WechatReceiver(BaseWeChat):
1105
1107
  message.user = None
1106
1108
 
1107
1109
 
1108
- def __handler_file(
1110
+ def __receiver_handler_file(
1109
1111
  self,
1110
1112
  message: WeChatMessage
1111
1113
  ) -> None:
@@ -1120,7 +1122,6 @@ class WechatReceiver(BaseWeChat):
1120
1122
 
1121
1123
  ## Image.
1122
1124
  case 3:
1123
-
1124
1125
  ### Get attribute.
1125
1126
  file_name = f'{message.id}.jpg'
1126
1127
  pattern = r'length="(\d+)".*?md5="([\da-f]{32})"'
@@ -1228,19 +1229,16 @@ class WechatReceiver(BaseWeChat):
1228
1229
 
1229
1230
  ## Move.
1230
1231
  rfile = File(generate_path)
1231
- cache_path = None
1232
1232
  if file_md5 is None:
1233
1233
  file_md5 = rfile.md5
1234
-
1235
- ### Exist.
1236
1234
  pattern = f'^{file_md5}$'
1237
1235
  cache_path = folder.search(pattern)
1238
-
1239
1236
  if cache_path is None:
1237
+ cache_path = os_join(self.wechat.dir_cache, file_md5)
1240
1238
  rfile.move(cache_path)
1241
1239
 
1242
1240
  # Set parameter.
1243
- file: MessageParameter = {
1241
+ file: MessageParameterFile = {
1244
1242
  'path': cache_path,
1245
1243
  'name': file_name,
1246
1244
  'md5': file_md5,
reywechat/rsend.py CHANGED
@@ -73,7 +73,7 @@ class WeChatSendParameter(BaseWeChat):
73
73
  sender: WeChatSender,
74
74
  send_type: Literal[WeChatSendEnum.SEND_TEXT],
75
75
  receive_id: str,
76
- send_id: int | None = None,
76
+ send_id: int,
77
77
  *,
78
78
  text: str
79
79
  ) -> None: ...
@@ -84,7 +84,7 @@ class WeChatSendParameter(BaseWeChat):
84
84
  sender: WeChatSender,
85
85
  send_type: Literal[WeChatSendEnum.SEND_TEXT_AT],
86
86
  receive_id: str,
87
- send_id: int | None = None,
87
+ send_id: int,
88
88
  *,
89
89
  user_id: str | list[str] | Literal['notify@all'],
90
90
  text: str
@@ -96,7 +96,7 @@ class WeChatSendParameter(BaseWeChat):
96
96
  sender: WeChatSender,
97
97
  send_type: Literal[WeChatSendEnum.SEND_FILE, WeChatSendEnum.SEND_IMAGE, WeChatSendEnum.SEND_EMOTION],
98
98
  receive_id: str,
99
- send_id: int | None = None,
99
+ send_id: int,
100
100
  *,
101
101
  file_path: str,
102
102
  file_name: str
@@ -108,7 +108,7 @@ class WeChatSendParameter(BaseWeChat):
108
108
  sender: WeChatSender,
109
109
  send_type: Literal[WeChatSendEnum.SEND_PAT],
110
110
  receive_id: str,
111
- send_id: int | None = None,
111
+ send_id: int,
112
112
  *,
113
113
  user_id: str
114
114
  ) -> None: ...
@@ -119,7 +119,7 @@ class WeChatSendParameter(BaseWeChat):
119
119
  sender: WeChatSender,
120
120
  send_type: Literal[WeChatSendEnum.SEND_PUBLIC],
121
121
  receive_id: str,
122
- send_id: int | None = None,
122
+ send_id: int,
123
123
  *,
124
124
  page_url: str,
125
125
  title: str,
@@ -135,7 +135,7 @@ class WeChatSendParameter(BaseWeChat):
135
135
  sender: WeChatSender,
136
136
  send_type: Literal[WeChatSendEnum.SEND_FORWARD],
137
137
  receive_id: str,
138
- send_id: int | None = None,
138
+ send_id: int,
139
139
  *,
140
140
  message_id: str
141
141
  ) -> None: ...
@@ -145,7 +145,7 @@ class WeChatSendParameter(BaseWeChat):
145
145
  sender: WeChatSender,
146
146
  send_type: WeChatSendEnum,
147
147
  receive_id: str,
148
- send_id: int | None = None,
148
+ send_id: int,
149
149
  **params: Any
150
150
  ) -> None:
151
151
  """
@@ -175,6 +175,7 @@ class WeChatSendParameter(BaseWeChat):
175
175
  self.send_id = send_id
176
176
  self.params = params
177
177
  self.exc_reports: list[str] = []
178
+ self.sent: bool = False
178
179
 
179
180
 
180
181
  class WeChatSender(BaseWeChat):
@@ -200,7 +201,6 @@ class WeChatSender(BaseWeChat):
200
201
 
201
202
  # Set attribute.
202
203
  self.wechat = wechat
203
- self.send = self.__call__ = self.wechat.database.send
204
204
  self.queue: Queue[WeChatSendParameter] = Queue()
205
205
  self.handlers: list[Callable[[WeChatSendParameter], Any]] = []
206
206
  self.started: bool | None = False
@@ -215,6 +215,21 @@ class WeChatSender(BaseWeChat):
215
215
  Start sender, that will sequentially send message in the send queue.
216
216
  """
217
217
 
218
+
219
+ # Define.
220
+ def handle_handler_exception(exc_report, *_) -> None:
221
+ """
222
+ Handle Handler exception.
223
+
224
+ Parameters
225
+ ----------
226
+ exc_report : Exception report text.
227
+ """
228
+
229
+ # Save.
230
+ sendparam.exc_reports.append(exc_report)
231
+
232
+
218
233
  # Loop.
219
234
  while True:
220
235
  match self.started:
@@ -228,8 +243,14 @@ class WeChatSender(BaseWeChat):
228
243
  case None:
229
244
  break
230
245
 
231
- ## Send.
232
246
  sendparam = self.queue.get()
247
+
248
+ ## Handler.
249
+ for handler in self.handlers:
250
+ handler = wrap_exc(handler, handler=handle_handler_exception)
251
+ handler(sendparam)
252
+
253
+ ## Send.
233
254
  try:
234
255
  self.__send(sendparam)
235
256
 
@@ -242,23 +263,9 @@ class WeChatSender(BaseWeChat):
242
263
  # Save.
243
264
  sendparam.exc_reports.append(exc_report)
244
265
 
266
+ sendparam.sent = True
245
267
 
246
- ## Handle.
247
-
248
- ### Define.
249
- def handle_handler_exception() -> None:
250
- """
251
- Handle Handler exception.
252
- """
253
-
254
- # Catch exception.
255
- exc_report, *_ = catch_exc()
256
-
257
- # Save.
258
- sendparam.exc_reports.append(exc_report)
259
-
260
-
261
- ### Loop.
268
+ ## Handler.
262
269
  for handler in self.handlers:
263
270
  handler = wrap_exc(handler, handler=handle_handler_exception)
264
271
  handler(sendparam)
@@ -362,6 +369,7 @@ class WeChatSender(BaseWeChat):
362
369
  file_path is not None
363
370
  and file_name is not None
364
371
  ):
372
+ sleep(1)
365
373
  file = File(file_path_rename)
366
374
  file.rename(file_old_name)
367
375
 
reywechat/rtrigger.py CHANGED
@@ -48,15 +48,15 @@ class WeChatTrigger(BaseWeChat):
48
48
  self.rules: list[TriggerRule] = []
49
49
 
50
50
  # Add handler.
51
- self.handler = self.__add_handler_trigger_by_rule()
51
+ self.handler = self.__add_receiver_handler_trigger_by_rule()
52
52
 
53
53
  # Add trigger.
54
54
  self.__add_trigger_valid()
55
55
 
56
56
 
57
- def __add_handler_trigger_by_rule(self) -> Callable[[WeChatMessage], None]:
57
+ def __add_receiver_handler_trigger_by_rule(self) -> Callable[[WeChatMessage], None]:
58
58
  """
59
- Add handler, trigger message by rules.
59
+ Add receiver handler, trigger message by rules.
60
60
 
61
61
  Returns
62
62
  -------
@@ -65,7 +65,7 @@ class WeChatTrigger(BaseWeChat):
65
65
 
66
66
 
67
67
  # Define.
68
- def handler_trigger_by_rule(message: WeChatMessage) -> None:
68
+ def receiver_handler_trigger_by_rule(message: WeChatMessage) -> None:
69
69
  """
70
70
  Trigger message by rules.
71
71
 
@@ -111,9 +111,9 @@ class WeChatTrigger(BaseWeChat):
111
111
 
112
112
 
113
113
  # Add handler.
114
- self.receiver.add_handler(handler_trigger_by_rule)
114
+ self.receiver.add_handler(receiver_handler_trigger_by_rule)
115
115
 
116
- return handler_trigger_by_rule
116
+ return receiver_handler_trigger_by_rule
117
117
 
118
118
 
119
119
  def add_rule(
@@ -199,4 +199,4 @@ class WeChatTrigger(BaseWeChat):
199
199
 
200
200
 
201
201
  # Add.
202
- self.add_rule(trigger_valid, float('inf'))
202
+ self.add_rule(trigger_valid, float('inf'), False)
reywechat/rwechat.py CHANGED
@@ -98,15 +98,18 @@ class WeChat(BaseWeChat):
98
98
  self.receive_start = self.receiver.start
99
99
  self.receive_stop = self.receiver.stop
100
100
 
101
+ ## Trigger.
102
+ self.trigger_add_rule = self.trigger.add_rule
103
+
101
104
  ## Send.
102
105
  self.send_add_handler = self.sender.add_handler
103
- self.send = self.sender.send
106
+ self.send = self.database.send
104
107
  self.send_start = self.sender.start
105
108
  self.send_stop = self.sender.stop
106
109
  self.wrap_try_send = self.sender.wrap_try_send
107
110
 
108
- ## Trigger.
109
- self.trigger_add_rule = self.trigger.add_rule
111
+ ## Database.
112
+ self.send = self.database.send
110
113
 
111
114
  ## Schedule.
112
115
  self.schedule_add_task = self.schedule.add_task
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: reywechat
3
- Version: 1.0.26
3
+ Version: 1.0.27
4
4
  Summary: WeChat method set.
5
5
  Project-URL: homepage, https://github.com/reyxbo/reywechat/
6
6
  Author-email: Rey <reyxbo@163.com>
@@ -0,0 +1,16 @@
1
+ reywechat/__init__.py,sha256=CBcaezJsuYnBzunuzRoRwz-q_HDQq7XsGKtNxCWAQoY,488
2
+ reywechat/rall.py,sha256=KAHdmzvrmDel_ttvZKR0tkfg21Amm3sKMvGJDkNA14U,374
3
+ reywechat/rbase.py,sha256=0NunIUIXra2ML2N6odwMk5oENTE0r6VSBHWXUvgI-lc,1124
4
+ reywechat/rclient.py,sha256=gtTYaoqhgh9kRFslETKjBJiAAdzJfeOxIJbdCkGAFhM,22577
5
+ reywechat/rdb.py,sha256=JBrJw-Xev9BNogOg2G31-da80y7edpSjtAzFHZkDs3g,40313
6
+ reywechat/rlog.py,sha256=rIl3fy1SFuAAiUnxVnOFJv-gK51AunDljJgsFUx6I50,4745
7
+ reywechat/rreceive.py,sha256=pgo--mHTSpCtb_ScIreoiiWAtIVsqe2Tut88W7MrBc8,32403
8
+ reywechat/rschedule.py,sha256=fn11rH0HqxbnJYxARCBBiSdzBpYfQFhcjNmkvihVMTc,1854
9
+ reywechat/rsend.py,sha256=q1stNggg40WPqI5h8_coAXsbFRM6M6dxsDxq2-L3CJs,14286
10
+ reywechat/rtrigger.py,sha256=GHfkhNrS8rV4uXWC3N54UTjak7nKGfqJWX6pe57Hsgg,4953
11
+ reywechat/rwechat.py,sha256=Niu2TTyElpzXtb6fn-xzwa1QjkwrvLwFyP3U-2ALrl4,5595
12
+ reywechat/data/client_api.dll,sha256=H9uj-x9Ztg0jFZK0yY6NsnyH5_119dQRFfoVVMidxRs,592384
13
+ reywechat-1.0.27.dist-info/METADATA,sha256=Y9h0Dr56SY6w5krZ163ufW6FdT3-kgdUkOD5jw6O7JM,1551
14
+ reywechat-1.0.27.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
15
+ reywechat-1.0.27.dist-info/licenses/LICENSE,sha256=UYLPqp7BvPiH8yEZduJqmmyEl6hlM3lKrFIefiD4rvk,1059
16
+ reywechat-1.0.27.dist-info/RECORD,,
@@ -1,16 +0,0 @@
1
- reywechat/__init__.py,sha256=CBcaezJsuYnBzunuzRoRwz-q_HDQq7XsGKtNxCWAQoY,488
2
- reywechat/rall.py,sha256=KAHdmzvrmDel_ttvZKR0tkfg21Amm3sKMvGJDkNA14U,374
3
- reywechat/rbase.py,sha256=0NunIUIXra2ML2N6odwMk5oENTE0r6VSBHWXUvgI-lc,1124
4
- reywechat/rclient.py,sha256=gtTYaoqhgh9kRFslETKjBJiAAdzJfeOxIJbdCkGAFhM,22577
5
- reywechat/rdb.py,sha256=R1IFo5qeMAm2YYMpmp_HmChv6sNWyBhYco6aLpb2KJQ,40110
6
- reywechat/rlog.py,sha256=rIl3fy1SFuAAiUnxVnOFJv-gK51AunDljJgsFUx6I50,4745
7
- reywechat/rreceive.py,sha256=fOepHDQ0TSIGUE1LojOk8zvXEnDMtn-Tqx1v0nPxPvE,32279
8
- reywechat/rschedule.py,sha256=fn11rH0HqxbnJYxARCBBiSdzBpYfQFhcjNmkvihVMTc,1854
9
- reywechat/rsend.py,sha256=rzxFWTtivhLW-rejgJNJ-xxswLHiliEKpG10vXXJ5Rs,14193
10
- reywechat/rtrigger.py,sha256=dgoj0YLW9-jOpwC70L6-sNopqw_f0mNcKfgsBU9h2E0,4892
11
- reywechat/rwechat.py,sha256=btTwfVP0Ovo18D6XJGXKIKEOrdcIZiq8umWvgfqvr0s,5529
12
- reywechat/data/client_api.dll,sha256=H9uj-x9Ztg0jFZK0yY6NsnyH5_119dQRFfoVVMidxRs,592384
13
- reywechat-1.0.26.dist-info/METADATA,sha256=ijvubTWYfoiTkNDKNGw6Ttixn82pOn-DMc8ovJ-a1fI,1551
14
- reywechat-1.0.26.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
15
- reywechat-1.0.26.dist-info/licenses/LICENSE,sha256=UYLPqp7BvPiH8yEZduJqmmyEl6hlM3lKrFIefiD4rvk,1059
16
- reywechat-1.0.26.dist-info/RECORD,,