wechat-article-extractor
Audited by Runlayer on Feb 21, 2026
Malicious tool definition detected
Tool: .gitignore Description: # Dependencies node_modules/ npm-debug.log* yarn-debug.log* yarn-error.log* package-lock.json yarn.lock # Runtime data pids *.pid *.seed *.pid.lock # Coverage directory used by tools like istanbul coverage/ # nyc test coverage .nyc_output # Grunt intermediate storage .grunt # Bower dependency directory bower_components # node-waf configuration .lock-wscript # Compiled binary addons build/Release # Dependency directories node_modules/ jspm_packages/
Malicious tool definition detected
Tool: README.md Description: # WeChat Article Extractor [](https://nodejs.org/) [](LICENSE) 一个 Claude Code Skill,用于提取微信公众号文章的元数据和内容。支持多种文章类型,包括图文、视频、图片集、语音和转载文章。当用户需要提供微信公众号文章链接(mp.weixin.qq.com)时,Claude 会自动触发此 Skill 来提取文章信息。 ## 功能特性 - 解析微信公众号文章 URL (`mp.weixin.qq.com`) - 提取文章元数据:标题、作者、摘要、发布时间 - 获取公众号信息:名称、头像、微信号、功能介绍 - 提取文章内容(HTML 格式) - 获取封面图片 URL - 支持多种文章类型:图文、视频、图片集、语音、纯文
Malicious tool definition detected
Tool: SKILL.md Description: --- name: wechat-article-extractor description: Extract metadata and content from WeChat Official Account articles.
Malicious tool definition detected
Tool: convert.js Description: const cheerio = require('cheerio'); const fs = require('fs'); const htmlContent = fs.readFileSync('/Users/canghe/.claude/projects/-Users-canghe/1a7db960-136f-49cc-a1fc-983884c098fd/tool-results/b97eb13.txt', 'utf8'); const data = JSON.parse(htmlContent); const $ = cheerio.load(data.msg_content, { decodeEntities: false }); let markdown = `--- title: "${data.msg_title}" author: "${data.msg_author || data.account_name}" date: "${data.msg_publish_time_str}" source: "${d
Malicious tool definition detected
Tool: package-lock.json [1/3]
Tool: package-lock.json [2/3]
Tool: package-lock.json [3/3] Description: "Unlicense", "peer": true }, "node_modules/undici": { "version": "7.22.0", "resolved": "https://registry.npmjs.org/undici/-/undici-7.22.0.tgz", "integrity": "sha512-RqslV2Us5BrllB+JeiZnK4peryVTndy9Dnqq62S3yYRRTj0tFQCwEniUy2167skdGOy3vqRzEvl1Dm4sV2ReDg==", "license": "MIT", "engines": { "node": ">=20.18.1" } }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1y
Malicious tool definition detected
Tool: package.json Description: { "dependencies": { "cheerio": "^1.2.0", "dayjs": "^1.11.19",
Malicious tool definition detected
Tool: scripts/errors.js Description: module.exports = { 1000: '文章获取失败', 1001: '无法获取文章信息', 1002: '请求失败', 1003: '响应为空', 1004: '访问过于频繁', 1005: '脚本解析失败', 1006: '公众号已迁移', 2001: '请提供文章内容或链接', 2002: '链接已过期', 2003: '内容涉嫌侵权,无法查看', 2004: '无法获取迁移后的链接',
Malicious tool definition detected
Tool: scripts/extract.js [1/3] Description: const qs = require('qs'); const dayjs = require('dayjs'); const request = require('request-promise'); const cheerio = require('cheerio'); const unescape = require('lodash.unescape'); const errors = require('./errors'); const defaultConfig = { shouldReturnRawMeta: false, shouldReturnContent: true, shouldFollowTransferLink: true, shouldExtractMpLinks: false, shouldExtractTags: false, shouldExtractRepostMeta: false }; function getError(code) { return { do
Tool: scripts/extract.js [2/3] Description: * 1000); post.msg_publish_time_str = dayjs(post.msg_publish_time).format('YYYY/MM/DD HH:mm:ss'); } if (shouldReturnRawMeta) post.raw_data = data; } catch (e) { return getError(1005); } } // Post/repost type if ((type === 'post' || type === 'repost') && script.includes('var msg_link =')) { try { const lines = script.split(' '); let code = lines.slice(1, lines.length - 1) .filter(line => !line.includes('var title')) .map(line => { if (/var\s+msg_desc/.te
Tool: scripts/extract.js [3/3]