diff --git a/gateway/scripts/wechat_agent.py b/gateway/scripts/wechat_agent.py index 5935a36..e56f3b1 100644 --- a/gateway/scripts/wechat_agent.py +++ b/gateway/scripts/wechat_agent.py @@ -636,12 +636,16 @@ def process_msg(raw_data): if not urls: urls = re.findall(r'(https?://mp\.weixin\.qq\.com[^<]+)', ct) url = urls[0] if urls else None + # Decode HTML entities (& → &) — WeChat XML uses & in URLs + if url: + import html as _html + url = _html.unescape(url) # Extract title from XML titles = re.findall(r'(.*?)', ct) - title = titles[0] if titles else "" + title = _html.unescape(titles[0]) if titles else "" # Extract description descs = re.findall(r'(.*?)', ct) - desc = descs[0] if descs else "" + desc = _html.unescape(descs[0]) if descs else "" if url: log(f"ARTICLE URL: {url}")