UNPKG

mcp-trends-hub

Version:

🔥 基于 Model Context Protocol (MCP) 协议的全网热点趋势一站式聚合服务

955 lines 71.6 kB
#!/usr/bin/env node var __webpack_modules__ = { "./src/tools sync recursive \\.(js%7Cts)$": function(module, __unused_webpack_exports, __webpack_require__) { var map = { "./$custom-rss.ts": "./src/tools/$custom-rss.ts", "./36kr.ts": "./src/tools/36kr.ts", "./9to5mac.ts": "./src/tools/9to5mac.ts", "./bbc.ts": "./src/tools/bbc.ts", "./bilibili.ts": "./src/tools/bilibili.ts", "./douban.ts": "./src/tools/douban.ts", "./douyin.ts": "./src/tools/douyin.ts", "./gcores.ts": "./src/tools/gcores.ts", "./ifanr.ts": "./src/tools/ifanr.ts", "./infoq.ts": "./src/tools/infoq.ts", "./juejin.ts": "./src/tools/juejin.ts", "./netease-news.ts": "./src/tools/netease-news.ts", "./nytimes.ts": "./src/tools/nytimes.ts", "./smzdm.ts": "./src/tools/smzdm.ts", "./sspai.ts": "./src/tools/sspai.ts", "./tencent-news.ts": "./src/tools/tencent-news.ts", "./thepaper.ts": "./src/tools/thepaper.ts", "./theverge.ts": "./src/tools/theverge.ts", "./toutiao.ts": "./src/tools/toutiao.ts", "./weibo.ts": "./src/tools/weibo.ts", "./weread.ts": "./src/tools/weread.ts", "./zhihu.ts": "./src/tools/zhihu.ts" }; function webpackContext(req) { var id = webpackContextResolve(req); return __webpack_require__(id); } function webpackContextResolve(req) { if (!__webpack_require__.o(map, req)) { var e = new Error("Cannot find module '" + req + "'"); e.code = 'MODULE_NOT_FOUND'; throw e; } return map[req]; } webpackContext.keys = function() { return Object.keys(map); }; webpackContext.resolve = webpackContextResolve; module.exports = webpackContext; webpackContext.id = "./src/tools sync recursive \\.(js%7Cts)$"; }, "./src/tools/$custom-rss.ts": function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); __webpack_require__.d(__webpack_exports__, { default: ()=>__WEBPACK_DEFAULT_EXPORT__ }); var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/utils/index.ts"); const __WEBPACK_DEFAULT_EXPORT__ = (0, _utils__WEBPACK_IMPORTED_MODULE_0__.aM)(async ()=>{ var _resp_rss; const rssUrl = process.env.TRENDS_HUB_CUSTOM_RSS_URL; if (!rssUrl) throw new Error('TRENDS_HUB_CUSTOM_RSS_URL not found'); const resp = await (0, _utils__WEBPACK_IMPORTED_MODULE_0__.P_)(rssUrl); if (!(null == resp ? void 0 : null === (_resp_rss = resp.rss) || void 0 === _resp_rss ? void 0 : _resp_rss.channel)) throw new Error('Invalid RSS feed'); let description = resp.rss.channel.title; if (resp.rss.channel.description) description += ` - ${resp.rss.channel.description}`; return { name: 'custom-rss', description, func: ()=>(0, _utils__WEBPACK_IMPORTED_MODULE_0__.uf)(rssUrl) }; }); }, "./src/tools/36kr.ts": function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); __webpack_require__.d(__webpack_exports__, { default: ()=>__WEBPACK_DEFAULT_EXPORT__ }); var zod__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("zod"); var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/utils/index.ts"); const get36krRequestSchema = zod__WEBPACK_IMPORTED_MODULE_0__.z.object({ type: zod__WEBPACK_IMPORTED_MODULE_0__.z.union([ zod__WEBPACK_IMPORTED_MODULE_0__.z.literal('hot').describe('人气榜'), zod__WEBPACK_IMPORTED_MODULE_0__.z.literal('video').describe('视频榜'), zod__WEBPACK_IMPORTED_MODULE_0__.z.literal('comment').describe('热议榜'), zod__WEBPACK_IMPORTED_MODULE_0__.z.literal('collect').describe('收藏榜') ]).optional().default('hot').describe('分类') }); const LIST_TYPE_MAP = { hot: 'hotRankList', video: 'videoList', comment: 'remarkList', collect: 'collectList' }; const __WEBPACK_DEFAULT_EXPORT__ = (0, _utils__WEBPACK_IMPORTED_MODULE_1__.aM)({ name: 'get-36kr-trending', description: '获取 36 氪热榜,提供创业、商业、科技领域的热门资讯,包含投融资动态、新兴产业分析和商业模式创新信息', zodSchema: get36krRequestSchema, func: async (args)=>{ const { type } = get36krRequestSchema.parse(args); const resp = await _utils__WEBPACK_IMPORTED_MODULE_1__.dJ.post(`https://gateway.36kr.com/api/mis/nav/home/nav/rank/${type}`, { partner_id: 'wap', param: { siteId: 1, platformId: 2 }, timestamp: Date.now() }, { headers: { 'Content-Type': 'application/json; charset=utf-8' } }); return resp.data.data[LIST_TYPE_MAP[type]].map((item)=>{ const data = item.templateMaterial; return { title: data.widgetTitle, cover: data.widgetImage, author: data.authorName, publish_time: (0, _utils__WEBPACK_IMPORTED_MODULE_1__.Bv)(data.publishTime).toISOString(), read_count: data.statRead, collect_count: data.statCollect, comment_count: data.statComment, praise_count: data.statPraise, link: `https://www.36kr.com/p/${data.itemId}` }; }); } }); }, "./src/tools/9to5mac.ts": function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); __webpack_require__.d(__webpack_exports__, { default: ()=>__WEBPACK_DEFAULT_EXPORT__ }); var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/utils/index.ts"); const __WEBPACK_DEFAULT_EXPORT__ = (0, _utils__WEBPACK_IMPORTED_MODULE_0__.aM)({ name: 'get-9to5mac-news', description: '获取 9to5Mac 苹果相关新闻,包含苹果产品发布、iOS 更新、Mac 硬件、应用推荐及苹果公司动态的英文资讯', func: ()=>(0, _utils__WEBPACK_IMPORTED_MODULE_0__.uf)('https://9to5mac.com/feed/') }); }, "./src/tools/bbc.ts": function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); __webpack_require__.d(__webpack_exports__, { default: ()=>__WEBPACK_DEFAULT_EXPORT__ }); var zod__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("zod"); var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/utils/index.ts"); const bbcRequestSchema = zod__WEBPACK_IMPORTED_MODULE_0__.z.object({ category: zod__WEBPACK_IMPORTED_MODULE_0__.z.union([ zod__WEBPACK_IMPORTED_MODULE_0__.z.literal('').describe('热门新闻'), zod__WEBPACK_IMPORTED_MODULE_0__.z.literal('world').describe('国际'), zod__WEBPACK_IMPORTED_MODULE_0__.z.literal('uk').describe('英国'), zod__WEBPACK_IMPORTED_MODULE_0__.z.literal('business').describe('商业'), zod__WEBPACK_IMPORTED_MODULE_0__.z.literal('politics').describe('政治'), zod__WEBPACK_IMPORTED_MODULE_0__.z.literal('health').describe('健康'), zod__WEBPACK_IMPORTED_MODULE_0__.z.literal('education').describe('教育'), zod__WEBPACK_IMPORTED_MODULE_0__.z.literal('science_and_environment').describe('科学与环境'), zod__WEBPACK_IMPORTED_MODULE_0__.z.literal('technology').describe('科技'), zod__WEBPACK_IMPORTED_MODULE_0__.z.literal('entertainment_and_arts').describe('娱乐与艺术') ]).optional().default(''), edition: zod__WEBPACK_IMPORTED_MODULE_0__.z.union([ zod__WEBPACK_IMPORTED_MODULE_0__.z.literal(''), zod__WEBPACK_IMPORTED_MODULE_0__.z.literal('uk').describe('UK'), zod__WEBPACK_IMPORTED_MODULE_0__.z.literal('us').describe('US & Canada'), zod__WEBPACK_IMPORTED_MODULE_0__.z.literal('int').describe('Rest of the world') ]).optional().default('').describe('版本,仅对 `category` 为空有效') }).transform((values)=>{ let url = 'https://feeds.bbci.co.uk/news/'; if (values.category) url += `${values.category}/`; url += 'rss.xml'; if (values.edition) url += `?edition=${values.edition}`; return { ...values, url }; }); const __WEBPACK_DEFAULT_EXPORT__ = (0, _utils__WEBPACK_IMPORTED_MODULE_1__.aM)({ name: 'get-bbc-news', description: '获取 BBC 新闻,提供全球新闻、英国新闻、商业、政治、健康、教育、科技、娱乐等资讯', zodSchema: bbcRequestSchema, func: async (args)=>{ const { url } = bbcRequestSchema.parse(args); return (0, _utils__WEBPACK_IMPORTED_MODULE_1__.uf)(url); } }); }, "./src/tools/bilibili.ts": function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); __webpack_require__.d(__webpack_exports__, { default: ()=>__WEBPACK_DEFAULT_EXPORT__ }); var node_crypto__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("node:crypto"); var node_url__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("node:url"); var zod__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("zod"); var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./src/utils/index.ts"); const bilibiliRequestSchema = zod__WEBPACK_IMPORTED_MODULE_2__.z.object({ type: zod__WEBPACK_IMPORTED_MODULE_2__.z.union([ zod__WEBPACK_IMPORTED_MODULE_2__.z.literal(0).describe('全站'), zod__WEBPACK_IMPORTED_MODULE_2__.z.literal(1).describe('动画'), zod__WEBPACK_IMPORTED_MODULE_2__.z.literal(3).describe('音乐'), zod__WEBPACK_IMPORTED_MODULE_2__.z.literal(4).describe('游戏'), zod__WEBPACK_IMPORTED_MODULE_2__.z.literal(5).describe('娱乐'), zod__WEBPACK_IMPORTED_MODULE_2__.z.literal(188).describe('科技'), zod__WEBPACK_IMPORTED_MODULE_2__.z.literal(119).describe('鬼畜'), zod__WEBPACK_IMPORTED_MODULE_2__.z.literal(129).describe('舞蹈'), zod__WEBPACK_IMPORTED_MODULE_2__.z.literal(155).describe('时尚'), zod__WEBPACK_IMPORTED_MODULE_2__.z.literal(160).describe('生活'), zod__WEBPACK_IMPORTED_MODULE_2__.z.literal(168).describe('国创相关'), zod__WEBPACK_IMPORTED_MODULE_2__.z.literal(181).describe('影视') ]).optional().default(0).describe('排行榜分区') }); const UA = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36'; const encodeWbi = (params, imgKey, subKey)=>{ const chrFilter = /[!'()*]/g; const search = new node_url__WEBPACK_IMPORTED_MODULE_1__.URLSearchParams(); const paramsWithTs = { ...params, wts: (0, _utils__WEBPACK_IMPORTED_MODULE_3__.Bv)().unix().toString() }; const sortedKeys = Object.keys(paramsWithTs).sort(); for (const key of sortedKeys){ const value = paramsWithTs[key].toString().replace(chrFilter, ''); search.set(key, value); } const mixinKey = [ 46, 47, 18, 2, 53, 8, 23, 32, 15, 50, 10, 31, 58, 3, 45, 35, 27, 43, 5, 49, 33, 9, 42, 19, 29, 28, 14, 39, 12, 38, 41, 13, 37, 48, 7, 16, 24, 55, 40, 61, 26, 17, 0, 1, 60, 51, 30, 4, 22, 25, 54, 21, 56, 59, 6, 63, 57, 62, 11, 36, 20, 34, 44, 52 ].map((n)=>`${imgKey}${subKey}`[n]).join('').slice(0, 32); const wbiSign = (0, node_crypto__WEBPACK_IMPORTED_MODULE_0__.createHash)('md5').update(search.toString() + mixinKey).digest('hex'); search.set('w_rid', wbiSign); return search.toString(); }; const getWbiKeys = async ()=>{ const resp = await _utils__WEBPACK_IMPORTED_MODULE_3__.dJ.get('https://api.bilibili.com/x/web-interface/nav', { headers: { Cookie: 'SESSDATA=xxxxxx', 'User-Agent': UA, Referer: 'https://www.bilibili.com/' } }); const { img_url: imgUrl = '', sub_url: subUrl = '' } = resp.data.data.wbi_img; const getFileNameFromUrl = (url)=>url.slice(url.lastIndexOf('/') + 1, url.lastIndexOf('.')); return { imgKey: getFileNameFromUrl(imgUrl), subKey: getFileNameFromUrl(subUrl) }; }; const getBiliWbi = async ()=>{ const CACHE_KEY = 'bilibili-wbi'; const cachedData = _utils__WEBPACK_IMPORTED_MODULE_3__.Dz.getItem(CACHE_KEY); if (cachedData) return cachedData; const { imgKey, subKey } = await getWbiKeys(); const params = { foo: '114', bar: '514', baz: '1919810' }; const query = encodeWbi(params, imgKey, subKey); _utils__WEBPACK_IMPORTED_MODULE_3__.Dz.setItem(CACHE_KEY, query); return query; }; const mainGetBilibiliRank = async (type)=>{ const wbiData = await getBiliWbi(); const resp = await _utils__WEBPACK_IMPORTED_MODULE_3__.dJ.get(`https://api.bilibili.com/x/web-interface/ranking/v2?rid=${type}&type=all&${wbiData}`, { headers: { Referer: 'https://www.bilibili.com/ranking/all', 'User-Agent': UA, Accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7', 'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8', 'Accept-Encoding': 'gzip, deflate, br', 'Sec-Ch-Ua': '"Google Chrome";v="123", "Not:A-Brand";v="8", "Chromium";v="123"', 'Sec-Ch-Ua-Mobile': '?0', 'Sec-Ch-Ua-Platform': '"Windows"', 'Sec-Fetch-Dest': 'document', 'Sec-Fetch-Mode': 'navigate', 'Sec-Fetch-Site': 'same-origin', 'Sec-Fetch-User': '?1', 'Upgrade-Insecure-Requests': '1' } }); if (0 !== resp.data.code) throw new Error(resp.data.message); return resp.data.data.list.map((item)=>{ var _item_owner, _item_stat; return { title: item.title, description: item.desc || '该视频暂无简介', cover: item.pic, author: null === (_item_owner = item.owner) || void 0 === _item_owner ? void 0 : _item_owner.name, publishTime: _utils__WEBPACK_IMPORTED_MODULE_3__.Bv.unix(item.pubdate).toISOString(), view: (null === (_item_stat = item.stat) || void 0 === _item_stat ? void 0 : _item_stat.view) || 0, link: item.short_link_v2 || `https://www.bilibili.com/video/${item.bvid}` }; }); }; const backupGetBilibiliRank = async (type)=>{ const resp = await _utils__WEBPACK_IMPORTED_MODULE_3__.dJ.get(`https://api.bilibili.com/x/web-interface/ranking?jsonp=jsonp?rid=${type}&type=all&callback=__jp0`, { headers: { Referer: 'https://www.bilibili.com/ranking/all', 'User-Agent': UA } }); if (0 !== resp.data.code) throw new Error(resp.data.message); return resp.data.data.list.map((item)=>({ title: item.title, description: item.desc || '该视频暂无简介', cover: item.pic, author: item.author, view: item.video_review, link: `https://www.bilibili.com/video/${item.bvid}` })); }; const getBilibiliRank = async (type)=>{ try { return await mainGetBilibiliRank(type); } catch (error) { _utils__WEBPACK_IMPORTED_MODULE_3__.kg.error(error); return await backupGetBilibiliRank(type); } }; const __WEBPACK_DEFAULT_EXPORT__ = (0, _utils__WEBPACK_IMPORTED_MODULE_3__.aM)({ name: 'get-bilibili-rank', description: '获取哔哩哔哩视频排行榜,包含全站、动画、音乐、游戏等多个分区的热门视频,反映当下年轻人的内容消费趋势', zodSchema: bilibiliRequestSchema, func: async (args)=>{ const { type } = bilibiliRequestSchema.parse(args); return getBilibiliRank(type); } }); }, "./src/tools/douban.ts": function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); __webpack_require__.d(__webpack_exports__, { default: ()=>__WEBPACK_DEFAULT_EXPORT__ }); var zod__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("zod"); var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/utils/index.ts"); const doubanRankSchema = zod__WEBPACK_IMPORTED_MODULE_0__.z.object({ type: zod__WEBPACK_IMPORTED_MODULE_0__.z.union([ zod__WEBPACK_IMPORTED_MODULE_0__.z.literal('subject').describe('图书、电影、电视剧、综艺等'), zod__WEBPACK_IMPORTED_MODULE_0__.z.literal('movie').describe('电影'), zod__WEBPACK_IMPORTED_MODULE_0__.z.literal('tv').describe('电视剧') ]).optional().default('subject'), start: zod__WEBPACK_IMPORTED_MODULE_0__.z.number().int().optional().default(0), count: zod__WEBPACK_IMPORTED_MODULE_0__.z.number().int().optional().default(10) }); const URL_MAP = { subject: 'https://m.douban.com/rexxar/api/v2/subject_collection/subject_real_time_hotest/items', movie: 'https://m.douban.com/rexxar/api/v2/subject_collection/movie_real_time_hotest/items', tv: 'https://m.douban.com/rexxar/api/v2/subject_collection/tv_real_time_hotest/items' }; const __WEBPACK_DEFAULT_EXPORT__ = (0, _utils__WEBPACK_IMPORTED_MODULE_1__.aM)({ name: 'get-douban-rank', description: '获取豆瓣实时热门榜单,提供当前热门的图书、电影、电视剧、综艺等作品信息,包含评分和热度数据', zodSchema: doubanRankSchema, func: async (args)=>{ const { type, start, count } = doubanRankSchema.parse(args); const resp = await _utils__WEBPACK_IMPORTED_MODULE_1__.dJ.get(URL_MAP[type], { params: { type, start, count, for_mobile: 1 }, headers: { Referer: 'https://m.douban.com/subject_collection/movie_real_time_hotest' } }); if (!Array.isArray(resp.data.subject_collection_items)) throw new Error('获取豆瓣实时热门榜失败'); return resp.data.subject_collection_items.map((item)=>({ type_name: item.type_name, title: item.title, info: item.info, cover: item.cover.url, year: item.year, release_date: item.release_date, link: item.url, popularity: item.score, rating_count: item.rating.count, rating_value: item.rating.count > 0 ? item.rating.value : void 0, hashtags: item.related_search_terms.map((term)=>`#${term.name}`).join(' ') })); } }); }, "./src/tools/douyin.ts": function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); __webpack_require__.d(__webpack_exports__, { default: ()=>__WEBPACK_DEFAULT_EXPORT__ }); var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/utils/index.ts"); const getCsrfToken = async ()=>{ try { var _reps_headers_setcookie; const reps = await _utils__WEBPACK_IMPORTED_MODULE_0__.dJ.get('https://www.douyin.com/passport/general/login_guiding_strategy/', { params: { aid: 6383 } }); const pattern = /passport_csrf_token=([^;]*); Path/; const matchResult = null === (_reps_headers_setcookie = reps.headers['set-cookie']) || void 0 === _reps_headers_setcookie ? void 0 : _reps_headers_setcookie[0].match(pattern); const csrfToken = null == matchResult ? void 0 : matchResult[1]; return csrfToken; } catch (error) { return; } }; const __WEBPACK_DEFAULT_EXPORT__ = (0, _utils__WEBPACK_IMPORTED_MODULE_0__.aM)({ name: 'get-douyin-trending', description: '获取抖音热搜榜单,展示当下最热门的社会话题、娱乐事件、网络热点和流行趋势', func: async ()=>{ var _resp_data; const csrfToken = await getCsrfToken(); const resp = await _utils__WEBPACK_IMPORTED_MODULE_0__.dJ.get('https://www.douyin.com/aweme/v1/web/hot/search/list/', { params: { device_platform: 'webapp', aid: 6383, channel: 'channel_pc_web', detail_list: 1 }, headers: { Cookie: `passport_csrf_token=${csrfToken}` } }); if ((null === (_resp_data = resp.data) || void 0 === _resp_data ? void 0 : _resp_data.status_code) !== 0 || !Array.isArray(resp.data.data.word_list)) throw new Error('获取抖音热榜失败'); return resp.data.data.word_list.map((item)=>{ var _item_word_cover_url_list, _item_word_cover; return { title: item.word, eventTime: _utils__WEBPACK_IMPORTED_MODULE_0__.Bv.unix(item.event_time).toISOString(), cover: null === (_item_word_cover = item.word_cover) || void 0 === _item_word_cover ? void 0 : null === (_item_word_cover_url_list = _item_word_cover.url_list) || void 0 === _item_word_cover_url_list ? void 0 : _item_word_cover_url_list[0], popularity: item.hot_value, link: `https://www.douyin.com/hot/${item.sentence_id}` }; }); } }); }, "./src/tools/gcores.ts": function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); __webpack_require__.d(__webpack_exports__, { default: ()=>__WEBPACK_DEFAULT_EXPORT__ }); var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/utils/index.ts"); const __WEBPACK_DEFAULT_EXPORT__ = (0, _utils__WEBPACK_IMPORTED_MODULE_0__.aM)({ name: 'get-gcores-new', description: '获取机核网游戏相关资讯,包含电子游戏评测、玩家文化、游戏开发和游戏周边产品的深度内容', func: ()=>(0, _utils__WEBPACK_IMPORTED_MODULE_0__.uf)('https://www.gcores.com/rss') }); }, "./src/tools/ifanr.ts": function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); __webpack_require__.d(__webpack_exports__, { default: ()=>__WEBPACK_DEFAULT_EXPORT__ }); var zod__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("zod"); var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/utils/index.ts"); const ifanrRequestSchema = zod__WEBPACK_IMPORTED_MODULE_0__.z.object({ limit: zod__WEBPACK_IMPORTED_MODULE_0__.z.number().int().optional().default(20), offset: zod__WEBPACK_IMPORTED_MODULE_0__.z.number().int().optional().default(0) }); const __WEBPACK_DEFAULT_EXPORT__ = (0, _utils__WEBPACK_IMPORTED_MODULE_1__.aM)({ name: 'get-ifanr-news', description: '获取爱范儿科技快讯,包含最新的科技产品、数码设备、互联网动态等前沿科技资讯', zodSchema: ifanrRequestSchema, func: async (args)=>{ const { limit, offset } = ifanrRequestSchema.parse(args); const resp = await _utils__WEBPACK_IMPORTED_MODULE_1__.dJ.get('https://sso.ifanr.com/api/v5/wp/buzz', { params: { limit, offset } }); if (!Array.isArray(resp.data.objects)) throw new Error('获取爱范儿快讯失败'); return resp.data.objects.map((item)=>({ title: item.post_title, description: item.post_content, link: item.buzz_original_url || `https://www.ifanr.com/${item.post_id}` })); } }); }, "./src/tools/infoq.ts": function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); __webpack_require__.d(__webpack_exports__, { default: ()=>__WEBPACK_DEFAULT_EXPORT__ }); var zod__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("zod"); var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/utils/index.ts"); const infoqRequestSchema = zod__WEBPACK_IMPORTED_MODULE_0__.z.object({ region: zod__WEBPACK_IMPORTED_MODULE_0__.z["enum"]([ 'cn', 'global' ]).optional().default('cn') }).transform((data)=>{ const url = { cn: 'https://www.infoq.cn/feed', global: 'https://feed.infoq.com/' }[data.region]; return { ...data, url }; }); const __WEBPACK_DEFAULT_EXPORT__ = (0, _utils__WEBPACK_IMPORTED_MODULE_1__.aM)({ name: 'get-infoq-news', description: '获取 InfoQ 技术资讯,包含软件开发、架构设计、云计算、AI等企业级技术内容和前沿开发者动态', zodSchema: infoqRequestSchema, func: async (args)=>{ const { url, region } = infoqRequestSchema.parse(args); const resp = await (0, _utils__WEBPACK_IMPORTED_MODULE_1__.uf)(url); if ('cn' === region) return resp.map((item)=>(0, _utils__WEBPACK_IMPORTED_MODULE_1__.CE)(item, [ "description" ])); return resp; } }); }, "./src/tools/juejin.ts": function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); __webpack_require__.d(__webpack_exports__, { default: ()=>__WEBPACK_DEFAULT_EXPORT__ }); var zod__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("zod"); var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/utils/index.ts"); const headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36', Accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7', 'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8', 'Accept-Encoding': 'gzip, deflate, br', 'Cache-Control': 'no-cache', Connection: 'keep-alive', 'Sec-Ch-Ua': '"Google Chrome";v="123", "Not:A-Brand";v="8", "Chromium";v="123"', 'Sec-Ch-Ua-Mobile': '?0', 'Sec-Ch-Ua-Platform': '"Windows"', 'Sec-Fetch-Dest': 'document', 'Sec-Fetch-Mode': 'navigate', 'Sec-Fetch-Site': 'same-origin', 'Sec-Fetch-User': '?1', 'Upgrade-Insecure-Requests': '1' }; const __WEBPACK_DEFAULT_EXPORT__ = (0, _utils__WEBPACK_IMPORTED_MODULE_1__.aM)(async ()=>{ const categoryResp = await _utils__WEBPACK_IMPORTED_MODULE_1__.dJ.get('https://api.juejin.cn/tag_api/v1/query_category_briefs', { headers }); if (0 !== categoryResp.data.err_no) throw new Error('获取掘金分类失败'); const juejinRequestSchema = zod__WEBPACK_IMPORTED_MODULE_0__.z.object({ category_id: zod__WEBPACK_IMPORTED_MODULE_0__.z.union(categoryResp.data.data.map((item)=>zod__WEBPACK_IMPORTED_MODULE_0__.z.literal(item.category_id).describe(item.category_name))).optional().default(categoryResp.data.data[0].category_id) }); return { name: 'get-juejin-article-rank', description: '获取掘金文章榜,包含前端开发、后端技术、人工智能、移动开发及技术架构等领域的高质量中文技术文章和教程', zodSchema: juejinRequestSchema, func: async (args)=>{ const { category_id } = juejinRequestSchema.parse(args); const resp = await _utils__WEBPACK_IMPORTED_MODULE_1__.dJ.get('https://api.juejin.cn/content_api/v1/content/article_rank', { params: { category_id, type: 'hot' }, headers }); if (0 !== resp.data.err_no) throw new Error(resp.data.err_msg || '获取掘金文章榜失败'); return resp.data.data.map((item)=>({ title: item.content.title, brief: item.content.brief || void 0, author: item.author.name, popularity: item.content_counter.hot_rank, view_count: item.content_counter.view, like_count: item.content_counter.like, collect_count: item.content_counter.collect, comment_count: item.content_counter.comment_count, interact_count: item.content_counter.interact_count, link: `https://juejin.cn/post/${item.content.content_id}` })); } }; }); }, "./src/tools/netease-news.ts": function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); __webpack_require__.d(__webpack_exports__, { default: ()=>__WEBPACK_DEFAULT_EXPORT__ }); var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/utils/index.ts"); const __WEBPACK_DEFAULT_EXPORT__ = (0, _utils__WEBPACK_IMPORTED_MODULE_0__.aM)({ name: 'get-netease-news-trending', description: '获取网易新闻热点榜,包含时政要闻、社会事件、财经资讯、科技动态及娱乐体育的全方位中文新闻资讯', func: async ()=>{ const resp = await _utils__WEBPACK_IMPORTED_MODULE_0__.dJ.get('https://m.163.com/fe/api/hot/news/flow'); if (200 !== resp.data.code || !Array.isArray(resp.data.data.list)) throw new Error('获取网易新闻热点榜失败'); return resp.data.data.list.map((item)=>({ title: item.title, cover: item.imgsrc, source: item.source, publish_time: item.ptime, link: item.url })); } }); }, "./src/tools/nytimes.ts": function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); __webpack_require__.d(__webpack_exports__, { default: ()=>__WEBPACK_DEFAULT_EXPORT__ }); var zod__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("zod"); var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/utils/index.ts"); const nytimesRequestSchema = zod__WEBPACK_IMPORTED_MODULE_0__.z.object({ region: zod__WEBPACK_IMPORTED_MODULE_0__.z.union([ zod__WEBPACK_IMPORTED_MODULE_0__.z.literal('cn').describe('中文'), zod__WEBPACK_IMPORTED_MODULE_0__.z.literal('global').describe('全球') ]).optional().default('cn'), section: zod__WEBPACK_IMPORTED_MODULE_0__.z.string().optional().default('HomePage').describe('分类,当 `region` 为 `cn` 时无效。可选值: Africa, Americas, ArtandDesign, Arts, AsiaPacific, Automobiles, Baseball, Books/Review, Business, Climate, CollegeBasketball, CollegeFootball, Dance, Dealbook, DiningandWine, Economy, Education, EnergyEnvironment, Europe, FashionandStyle, Golf, Health, Hockey, HomePage, Jobs, Lens, MediaandAdvertising, MiddleEast, MostEmailed, MostShared, MostViewed, Movies, Music, NYRegion, Obituaries, PersonalTech, Politics, ProBasketball, ProFootball, RealEstate, Science, SmallBusiness, Soccer, Space, Sports, SundayBookReview, Sunday-Review, Technology, Television, Tennis, Theater, TMagazine, Travel, Upshot, US, Weddings, Well, World, YourMoney') }).transform((values)=>{ if ('cn' === values.region) return 'https://cn.nytimes.com/rss/'; return `https://rss.nytimes.com/services/xml/rss/nyt/${values.section || 'HomePage'}.xml`; }); const __WEBPACK_DEFAULT_EXPORT__ = (0, _utils__WEBPACK_IMPORTED_MODULE_1__.aM)({ name: 'get-nytimes-news', description: '获取纽约时报新闻,包含国际政治、经济金融、社会文化、科学技术及艺术评论的高质量英文或中文国际新闻资讯', zodSchema: nytimesRequestSchema, func: async (args)=>{ const url = nytimesRequestSchema.parse(args); return (0, _utils__WEBPACK_IMPORTED_MODULE_1__.uf)(url); } }); }, "./src/tools/smzdm.ts": function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); __webpack_require__.d(__webpack_exports__, { default: ()=>__WEBPACK_DEFAULT_EXPORT__ }); var zod__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("zod"); var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/utils/index.ts"); const smzdmRequestSchema = zod__WEBPACK_IMPORTED_MODULE_0__.z.object({ unit: zod__WEBPACK_IMPORTED_MODULE_0__.z.union([ zod__WEBPACK_IMPORTED_MODULE_0__.z.literal(1).describe('今日热门'), zod__WEBPACK_IMPORTED_MODULE_0__.z.literal(7).describe('周热门'), zod__WEBPACK_IMPORTED_MODULE_0__.z.literal(30).describe('月热门') ]).optional().default(1) }); const __WEBPACK_DEFAULT_EXPORT__ = (0, _utils__WEBPACK_IMPORTED_MODULE_1__.aM)({ name: 'get-smzdm-rank', description: '获取什么值得买热门,包含商品推荐、优惠信息、购物攻略、产品评测及消费经验分享的实用中文消费类资讯', zodSchema: smzdmRequestSchema, func: async (args)=>{ const { unit } = smzdmRequestSchema.parse(args); const resp = await _utils__WEBPACK_IMPORTED_MODULE_1__.dJ.get('https://post.smzdm.com/rank/json_more', { params: { unit } }); if (0 !== resp.data.error_code || !Array.isArray(resp.data.data)) throw new Error(resp.data.error_msg || '获取什么值得买热门失败'); return resp.data.data.map((item)=>{ var _safeJsonParse; return { title: item.title, description: item.content, cover: item.pic_url, author: item.nickname, publish_time: item.publish_time, collection_count: item.collection_count, comment_count: item.comment_count, up_count: item.up_count, hashtags: null === (_safeJsonParse = (0, _utils__WEBPACK_IMPORTED_MODULE_1__.D6)(item.tag)) || void 0 === _safeJsonParse ? void 0 : _safeJsonParse.map((tag)=>`#${tag.title}`).join(' '), link: item.article_url }; }); } }); }, "./src/tools/sspai.ts": function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); __webpack_require__.d(__webpack_exports__, { default: ()=>__WEBPACK_DEFAULT_EXPORT__ }); var zod__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("zod"); var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/utils/index.ts"); const sspaiRequestSchema = zod__WEBPACK_IMPORTED_MODULE_0__.z.object({ tag: zod__WEBPACK_IMPORTED_MODULE_0__.z["enum"]([ '热门文章', '应用推荐', '生活方式', '效率技巧', '少数派播客' ]).optional().default('热门文章').describe('分类'), limit: zod__WEBPACK_IMPORTED_MODULE_0__.z.number().int().optional().default(40) }); const __WEBPACK_DEFAULT_EXPORT__ = (0, _utils__WEBPACK_IMPORTED_MODULE_1__.aM)({ name: 'get-sspai-rank', description: '获取少数派热榜,包含数码产品评测、软件应用推荐、生活方式指南及效率工作技巧的优质中文科技生活类内容', zodSchema: sspaiRequestSchema, func: async (args)=>{ const { tag, limit } = sspaiRequestSchema.parse(args); const resp = await _utils__WEBPACK_IMPORTED_MODULE_1__.dJ.get('https://sspai.com/api/v1/article/tag/page/get', { params: { tag, limit } }); if (0 !== resp.data.error || !Array.isArray(resp.data.data)) throw new Error(resp.data.msg || '获取少数派热榜失败'); return resp.data.data.map((item)=>({ title: item.title, summary: item.summary, author: item.author.nickname, released_time: _utils__WEBPACK_IMPORTED_MODULE_1__.Bv.unix(item.released_time).toISOString(), comment_count: item.comment_count, like_count: item.like_count, view_count: item.view_count, link: `https://sspai.com/post/${item.id}` })); } }); }, "./src/tools/tencent-news.ts": function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); __webpack_require__.d(__webpack_exports__, { default: ()=>__WEBPACK_DEFAULT_EXPORT__ }); var zod__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("zod"); var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/utils/index.ts"); const tencentNewsRequestSchema = zod__WEBPACK_IMPORTED_MODULE_0__.z.object({ page_size: zod__WEBPACK_IMPORTED_MODULE_0__.z.number().int().optional().default(20) }); const __WEBPACK_DEFAULT_EXPORT__ = (0, _utils__WEBPACK_IMPORTED_MODULE_1__.aM)({ name: 'get-tencent-news-trending', description: '获取腾讯新闻热点榜,包含国内外时事、社会热点、财经资讯、娱乐动态及体育赛事的综合性中文新闻资讯', zodSchema: tencentNewsRequestSchema, func: async (args)=>{ var _resp_data_idlist; const { page_size } = tencentNewsRequestSchema.parse(args); const resp = await _utils__WEBPACK_IMPORTED_MODULE_1__.dJ.get('https://r.inews.qq.com/gw/event/hot_ranking_list', { params: { page_size } }); if (0 !== resp.data.ret || !Array.isArray(null === (_resp_data_idlist = resp.data.idlist) || void 0 === _resp_data_idlist ? void 0 : _resp_data_idlist[0].newslist)) throw new Error('获取腾讯新闻热点榜失败'); return resp.data.idlist[0].newslist.filter((_, index)=>0 !== index).map((item)=>{ var _item_thumbnails; return { title: item.title, description: item.abstract, cover: null === (_item_thumbnails = item.thumbnails) || void 0 === _item_thumbnails ? void 0 : _item_thumbnails[0], source: item.source, popularity: item.hotEvent.hotScore, publish_time: item.time, link: item.url }; }); } }); }, "./src/tools/thepaper.ts": function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); __webpack_require__.d(__webpack_exports__, { default: ()=>__WEBPACK_DEFAULT_EXPORT__ }); var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/utils/index.ts"); const __WEBPACK_DEFAULT_EXPORT__ = (0, _utils__WEBPACK_IMPORTED_MODULE_0__.aM)({ name: 'get-thepaper-trending', description: '获取澎湃新闻热榜,包含时政要闻、财经动态、社会事件、文化教育及深度报道的高质量中文新闻资讯', func: async ()=>{ const resp = await _utils__WEBPACK_IMPORTED_MODULE_0__.dJ.get('https://cache.thepaper.cn/contentapi/wwwIndex/rightSidebar'); if (1 !== resp.data.resultCode || !Array.isArray(resp.data.data.hotNews)) throw new Error(resp.data.resultMsg || '获取澎湃新闻热榜失败'); return resp.data.data.hotNews.map((item)=>{ var _item_tagList; return { title: item.name, cover: item.pic, popularity: item.praiseTimes, publish_time: (0, _utils__WEBPACK_IMPORTED_MODULE_0__.Bv)(item.pubTimeLong).toISOString(), hashtags: null === (_item_tagList = item.tagList) || void 0 === _item_tagList ? void 0 : _item_tagList.map((tag)=>`#${tag.tag}`).join(' '), link: `https://www.thepaper.cn/newsDetail_forward_${item.contId}` }; }); } }); }, "./src/tools/theverge.ts": function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); __webpack_require__.d(__webpack_exports__, { default: ()=>__WEBPACK_DEFAULT_EXPORT__ }); var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/utils/index.ts"); var node_url__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("node:url"); const __WEBPACK_DEFAULT_EXPORT__ = (0, _utils__WEBPACK_IMPORTED_MODULE_0__.aM)({ name: 'get-theverge-news', description: '获取 The Verge 新闻,包含科技创新、数码产品评测、互联网趋势及科技公司动态的英文科技资讯', func: async ()=>{ const rss = await (0, _utils__WEBPACK_IMPORTED_MODULE_0__.P_)('https://www.theverge.com/rss/index.xml'); if (!Array.isArray(rss.feed.entry)) throw new Error('获取 The Verge 新闻失败'); return rss.feed.entry.map((item)=>{ let link = item.link; if (!link && item.id) link = item.id; const url = new node_url__WEBPACK_IMPORTED_MODULE_1__.URL(link); if (url.searchParams.has('p')) { url.pathname = url.searchParams.get('p'); url.search = ''; link = url.toString(); } return { title: item.title, description: item.summary, publish_time: item.published, link }; }); } }); }, "./src/tools/toutiao.ts": function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); __webpack_require__.d(__webpack_exports__, { default: ()=>__WEBPACK_DEFAULT_EXPORT__ }); var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./src/utils/index.ts"); var node_url__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("node:url"); const __WEBPACK_DEFAULT_EXPORT__ = (0, _utils__WEBPACK_IMPORTED_MODULE_0__.aM)({ name: 'get-toutiao-trending', description: '获取今日头条热榜,包含时政要闻、社会事件、国际新闻、科技发展及娱乐八卦等多领域的热门中文资讯', func: async ()=>{ const resp = await _utils__WEBPACK_IMPORTED_MODULE_0__.dJ.get('https://www.toutiao.com/hot-event/hot-board/', { params: { origin: 'toutiao_pc' } }); if (!Array.isArray(resp.data.data)) throw new Error('获取今日头条热榜失败'); return resp.data.data.map((item)=>{ const link = new node_url__WEBPACK_IMPORTED_MODULE_1__.URL(item.Url); link.search = ''; return { title: item.Title, cover: item.Image.url, popularity: item.HotValue, link: link.toString() }; }); } }); }, "./src/tools/weibo.ts": function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); __webpack_require__.d(__webpack_exports__, { default: ()=>__WEBPACK_DEFAULT_EXPORT__ }); var node_url__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("node:url"); var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/utils/index.ts"); const __WEBPACK_DEFAULT_EXPORT__ = (0, _utils__WEBPACK_IMPORTED_MODULE_1__.aM)({ name: 'get-weibo-trending', description: '获取微博热搜榜,包含时事热点、社会现象、娱乐新闻、明星动态及网络热议话题的实时热门中文资讯', func: async ()=>{ const resp = await _utils__WEBPACK_IMPORTED_MODULE_1__.dJ.get('https://weibo.com/ajax/side/hotSearch'); if (1 !== resp.data.ok || !Array.isArray(resp.data.data.realtime)) throw new Error('获取微博热搜榜失败'); return resp.data.data.realtime.filter((item)=>1 !== item.is_ad).map((item)=>{ const key = item.word_scheme || `#${item.word}`; const url = new node_url__WEBPACK_IMPORTED_MODULE_0__.URL('https://s.weibo.com/weibo'); url.searchParams.set('q', key); url.searchParams.set('band_rank', '1'); url.searchParams.set('Refer', 'top'); return { title: item.word, description: item.note || key, popularity: item.num, link: url.toString() }; }); } }); }, "./src/tools/weread.ts": function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); __webpack_require__.d(__webpack_exports__, { default: ()=>__WEBPACK_DEFAULT_EXPORT__ }); var zod__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("zod"); var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./src/utils/index.ts"); var node_crypto__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require