@@ -146,43 +146,26 @@ async def get_dynamics(page: int = 1) -> Dynamics:
146146
147147
148148async def broadcast (dynamic : Dynamic ):
149- uids = {str (dynamic ["modules" ]["module_author" ]["mid" ])}
150-
151- if dynamic ["type" ] in (
152- "DYNAMIC_TYPE_DRAW" ,
153- "DYNAMIC_TYPE_WORD" ,
154- "DYNAMIC_TYPE_FORWARD" ,
155- ):
156- if dynamic ["type" ] == "DYNAMIC_TYPE_FORWARD" :
157- nodes = dynamic ["modules" ]["module_dynamic" ]["desc" ]["rich_text_nodes" ]
158- else :
159- nodes = dynamic ["modules" ]["module_dynamic" ]["major" ]["opus" ]["summary" ][
160- "rich_text_nodes"
161- ]
162-
163- for node in nodes :
164- if node ["type" ] == "RICH_TEXT_NODE_TYPE_AT" :
165- uids .add (node ["rid" ])
166-
167- sessions = {sub .session for uid in uids for sub in dynamic_subs .get (uid , ())}
168-
169- if not sessions :
170- return
171-
172149 screenshot , url = await gather (
173150 render_screenshot (dynamic ),
174151 get_share_click (dynamic ["id_str" ], "dynamic" , "dt.dt-detail.0.0.pv" ),
175152 )
176- message = plugin_config .template .format (
177- name = dynamic ["modules" ]["module_author" ]["name" ],
178- action = dynamic ["modules" ]["module_author" ]["pub_action" ]
179- or plugin_config .types [dynamic ["type" ]],
180- screenshot = Image (raw = screenshot ),
181- url = url ,
153+ await gather (
154+ * [
155+ send_message (
156+ sub .session .session ,
157+ plugin_config .template .format (
158+ name = dynamic ["modules" ]["module_author" ]["name" ],
159+ action = dynamic ["modules" ]["module_author" ]["pub_action" ]
160+ or plugin_config .types [dynamic ["type" ]],
161+ screenshot = Image (raw = screenshot ),
162+ url = url ,
163+ ),
164+ )
165+ for sub in dynamic_subs [str (dynamic ["modules" ]["module_author" ]["mid" ])]
166+ ]
182167 )
183168
184- await gather (* (send_message (sess .session , message ) for sess in sessions ))
185-
186169
187170@backoff .on_exception (backoff .constant , TimeoutError , max_tries = 3 )
188171async def render_screenshot (dynamic : Dynamic ) -> bytes :
0 commit comments