MCPcopy Create free account
hub / github.com/doraemonext/wechat-python-sdk / ArticleReply

Class ArticleReply

wechat_sdk/reply.py:195–237  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

193
194
195class ArticleReply(WechatReply):
196 TEMPLATE = u"""
197 <xml>
198 <ToUserName><![CDATA[{target}]]></ToUserName>
199 <FromUserName><![CDATA[{source}]]></FromUserName>
200 <CreateTime>{time}</CreateTime>
201 <MsgType><![CDATA[news]]></MsgType>
202 <ArticleCount>{count}</ArticleCount>
203 <Articles>{items}</Articles>
204 </xml>
205 """
206
207 ITEM_TEMPLATE = u"""
208 <item>
209 <Title><![CDATA[{title}]]></Title>
210 <Description><![CDATA[{description}]]></Description>
211 <PicUrl><![CDATA[{picurl}]]></PicUrl>
212 <Url><![CDATA[{url}]]></Url>
213 </item>
214 """
215
216 def __init__(self, message, **kwargs):
217 super(ArticleReply, self).__init__(message, **kwargs)
218 self._articles = []
219
220 def add_article(self, article):
221 if len(self._articles) >= 10:
222 raise AttributeError("Can't add more than 10 articles in an ArticleReply")
223 else:
224 self._articles.append(article)
225
226 def render(self):
227 items = []
228 for article in self._articles:
229 items.append(ArticleReply.ITEM_TEMPLATE.format(
230 title=article.title,
231 description=article.description,
232 picurl=article.picurl,
233 url=article.url,
234 ))
235 self._args["items"] = ''.join(items)
236 self._args["count"] = len(items)
237 return ArticleReply.TEMPLATE.format(**self._args)
238
239
240class GroupTransferReply(WechatReply):

Callers 1

response_newsMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected