Repository navigation
Expand file tree
/
Copy pathapi-sources.js
More file actions
149 lines (147 loc) · 24.3 KB
/
Copy pathapi-sources.js
File metadata and controls
149 lines (147 loc) · 24.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
// Audited at c51fa514 (2026-10-17); update this table when a module's real dependencies change.
// 'unofficial' remains a compatibility flag; never infer source type from that boolean.
export const SOURCE_TYPES = {
"local-compute": "本地计算",
"local-data": "本地数据",
"direct-target": "目标直查",
"first-party-api": "官方公开源",
"first-party-web": "平台网页源",
"third-party-service": "第三方数据",
"mixed": "混合来源"
};
const PROFILES = {
"games-free": {"kind": "mixed", "label": "混合来源", "summary": "本站并行调用Epic/Steam/GOG加载器,继承各平台第一方接口及封面依赖,不是第三方聚合API。", "network": "required"},
"epic": {"kind": "first-party-web", "label": "平台网页源", "summary": "直接调用Epic商店freeGamesPromotions站内接口。", "network": "required"},
"steam": {"kind": "first-party-web", "label": "平台网页源", "summary": "Steam商店搜索HTML片段/featuredcategories站内接口;仅100%折扣候选。", "network": "required"},
"gog": {"kind": "first-party-web", "label": "平台网页源", "summary": "直接查询GOG Catalog站内接口,只返回原价>0且现价=0候选,最多第一页48项。", "network": "required"},
"psplus": {"kind": "first-party-api", "label": "官方公开源", "summary": "直接读取PlayStation Blog公开RSS并解析月度会免公告。", "network": "required"},
"gamepass": {"kind": "first-party-web", "label": "平台网页源", "summary": "直接调用Xbox catalog.gamepass.com列表和Microsoft Store displaycatalog商品详情。", "network": "required"},
"steam-info": {"kind": "mixed", "label": "混合来源", "summary": "app/search用Steam商店未公开稳定接口;players用Steam Web API;史低仅已有ITAD Key时请求。", "network": "required"},
"mc-server": {"kind": "direct-target", "label": "目标直查", "summary": "已经原生Java版Server List Ping:DNS/SRV解析、TCP状态握手、延迟与服务器返回favicon。", "network": "target"},
"hot-weibo": {"kind": "first-party-web", "label": "平台网页源", "summary": "微博站内热搜JSON;直接访问平台,不经第三方热榜服务。", "network": "required"},
"hot-zhihu": {"kind": "first-party-web", "label": "平台网页源", "summary": "知乎站内hot-lists JSON;直接访问平台,不经第三方热榜服务。", "network": "required"},
"hot-bilibili": {"kind": "first-party-web", "label": "平台网页源", "summary": "B站nav取WBI签名后请求popular/ranking,同平台签名重试;直接访问平台,不经第三方热榜服务。", "network": "required"},
"hot-douyin": {"kind": "first-party-web", "label": "平台网页源", "summary": "抖音站内热点JSON,匿名Cookie辅助;未绕过付费/登录;直接访问平台,不经第三方热榜服务。", "network": "required"},
"hot-baidu": {"kind": "first-party-web", "label": "平台网页源", "summary": "百度热搜HTML;直接访问平台,不经第三方热榜服务。", "network": "required"},
"hot-toutiao": {"kind": "first-party-web", "label": "平台网页源", "summary": "头条站内热榜JSON;直接访问平台,不经第三方热榜服务。", "network": "required"},
"hot-github": {"kind": "first-party-web", "label": "平台网页源", "summary": "GitHub Trending HTML;不是GitHub文档化趋势API;直接访问平台,不经第三方热榜服务。", "network": "required"},
"hot-v2ex": {"kind": "first-party-api", "label": "官方公开源", "summary": "V2EX官方公开topics/hot.json API。", "network": "required"},
"hot-news": {"kind": "first-party-api", "label": "官方公开源", "summary": "IT之家/36氪/少数派各自公开RSS,直接读取发布者源;不是热度排名。", "network": "required"},
"hot-hackernews": {"kind": "mixed", "label": "混合来源", "summary": "主路径HN官方Firebase topstories+item;失败退Algolia的front_page搜索,排序口径可能不同。", "network": "required"},
"hot-juejin": {"kind": "first-party-web", "label": "平台网页源", "summary": "掘金站内文章热度榜;直接访问平台,不经第三方热榜服务。", "network": "required"},
"hot-csdn": {"kind": "first-party-web", "label": "平台网页源", "summary": "CSDN站内榜单;521/403等访问限制返回错误;直接访问平台,不经第三方热榜服务。", "network": "required"},
"hot-tieba": {"kind": "first-party-web", "label": "平台网页源", "summary": "贴吧热议HTML/兼容旧JSON;直接访问平台,不经第三方热榜服务。", "network": "required"},
"hot-all": {"kind": "mixed", "label": "混合来源", "summary": "本站调用15个来源适配器(含3个RSS源);只HN备用用Algolia,无不明第三方热榜聚合代理。", "network": "required"},
"weather": {"kind": "third-party-service", "label": "第三方数据", "summary": "Open-Meteo公开天气/地理编码;配置和风时改用和风API,并非天气观测自产。", "network": "required"},
"holiday": {"kind": "mixed", "label": "本地优先", "summary": "2025/2026直接使用内置安排;其他年份调用第三方整理的holiday-cn,并非国务院官方API。", "network": "conditional"},
"lunar": {"kind": "local-data", "label": "本地数据", "summary": "本地农历表、行政区表与算法;有日期和区划覆盖边界。", "network": "none"},
"oil": {"kind": "third-party-service", "label": "第三方数据", "summary": "直接抓取汽油价格网价格表;第三方数据网站,不是其他API代理。", "network": "required"},
"express": {"kind": "third-party-service", "label": "第三方数据", "summary": "快递100官方查询服务/自动识别;相对于物流承运商是聚合数据。", "network": "required"},
"ip": {"kind": "mixed", "label": "本地优先", "summary": "国内IPv4城市命中可全本地;其他/IPv6/ASN仍用ip-api补全,失败可退本地。", "network": "conditional"},
"phone": {"kind": "mixed", "label": "本地优先", "summary": "现有本地手机号段库优先,未命中才调用360非正式号码归属查询。", "network": "conditional"},
"history-today": {"kind": "first-party-web", "label": "平台网页源", "summary": "百度百科站内历史事件JSON,未见公开稳定API规范。", "network": "required"},
"news-60s": {"kind": "local-data", "label": "本地数据", "summary": "公开读取只访问本站持久JSON/SQLite和镜像图片;内容须先导入。", "network": "none"},
"moyu": {"kind": "mixed", "label": "本地优先", "summary": "本地日历和文案;会加载当年与次年安排,已内置2025/2026无需请求,其余年份仍可能联网。", "network": "conditional"},
"bmi": {"kind": "local-compute", "label": "本地计算", "summary": "服务器本地计算、校验或生成,不请求业务上游。", "network": "none"},
"garbage": {"kind": "local-data", "label": "本地数据", "summary": "本地分类词库,不访问在线垃圾分类接口。", "network": "none"},
"tax": {"kind": "local-compute", "label": "本地计算", "summary": "服务器本地计算、校验或生成,不请求业务上游。", "network": "none"},
"idcard": {"kind": "local-data", "label": "本地数据", "summary": "本地农历表、行政区表与算法;有日期和区划覆盖边界。", "network": "none"},
"geo": {"kind": "local-compute", "label": "本地计算", "summary": "服务器本地计算、校验或生成,不请求业务上游。", "network": "none"},
"unit": {"kind": "local-compute", "label": "本地计算", "summary": "服务器本地计算、校验或生成,不请求业务上游。", "network": "none"},
"age": {"kind": "local-data", "label": "本地数据", "summary": "本地农历表、行政区表与算法;有日期和区划覆盖边界。", "network": "none"},
"workdays": {"kind": "mixed", "label": "本地优先", "summary": "计算在本地;2025/2026内置调休安排,其余年份按需查holiday-cn,不能保证所有日期全离线。", "network": "conditional"},
"health": {"kind": "local-compute", "label": "本地计算", "summary": "服务器本地计算、校验或生成,不请求业务上游。", "network": "none"},
"sudoku": {"kind": "local-compute", "label": "本地计算", "summary": "服务器本地计算、校验或生成,不请求业务上游。", "network": "none"},
"jieqi": {"kind": "local-compute", "label": "本地计算", "summary": "服务器本地计算、校验或生成,不请求业务上游。", "network": "none"},
"sun": {"kind": "local-compute", "label": "本地计算", "summary": "服务器本地计算、校验或生成,不请求业务上游。", "network": "none"},
"worldtime": {"kind": "local-compute", "label": "本地计算", "summary": "服务器本地计算、校验或生成,不请求业务上游。", "network": "none"},
"progress": {"kind": "local-compute", "label": "本地计算", "summary": "服务器本地计算、校验或生成,不请求业务上游。", "network": "none"},
"fx": {"kind": "third-party-service", "label": "第三方数据", "summary": "ExchangeRate-API汇率聚合服务。", "network": "required"},
"stock": {"kind": "third-party-service", "label": "第三方数据", "summary": "腾讯财经行情与证券搜索,非交易所直接授权行情。", "network": "required"},
"fund": {"kind": "third-party-service", "label": "第三方数据", "summary": "东方财富/天天基金估值、净值与搜索;多个第一方站内端点,同一供应商。", "network": "required"},
"crypto": {"kind": "third-party-service", "label": "第三方数据", "summary": "CoinGecko公开行情API,非交易所原始成交数据。", "network": "required"},
"metals": {"kind": "mixed", "label": "混合来源", "summary": "新浪金属行情;人民币折算间接调用fx的ExchangeRate-API。", "network": "required"},
"hitokoto": {"kind": "mixed", "label": "默认本地", "summary": "默认现有有限句库,覆盖a–l;仅provider=hitokoto访问一言服务。", "network": "optional"},
"poem": {"kind": "mixed", "label": "默认本地", "summary": "默认本地名句/唐诗对句;仅provider=jinrishici显式访问原服务,失败仍本地返回。", "network": "optional"},
"bing": {"kind": "first-party-web", "label": "平台网页源", "summary": "直接访问微软Bing壁纸站内接口,图片由Bing提供。", "network": "required"},
"wallpaper": {"kind": "third-party-service", "label": "第三方数据", "summary": "Wallhaven API取图,失败/指定时使用Picsum;后者是另一个在线图源。", "network": "required"},
"anime-calendar": {"kind": "third-party-service", "label": "第三方数据", "summary": "Bangumi社区番剧日历公开API,非播出机构原始排期。", "network": "required"},
"douban": {"kind": "first-party-web", "label": "平台网页源", "summary": "直接抓取豆瓣Top250/正在上映网页,无外部中转。", "network": "required"},
"boxoffice": {"kind": "first-party-web", "label": "平台网页源", "summary": "直接访问猫眼专业版站内票房接口,不是第三方API中转。", "network": "required"},
"english-daily": {"kind": "first-party-web", "label": "平台网页源", "summary": "金山词霸每日一句站内接口。", "network": "required"},
"answer": {"kind": "local-data", "label": "本地数据", "summary": "现有本地文案或传统规则库;不调用AI或第三方文案服务。", "network": "none"},
"fortune": {"kind": "local-data", "label": "本地数据", "summary": "现有本地文案或传统规则库;不调用AI或第三方文案服务。", "network": "none"},
"numerology": {"kind": "local-data", "label": "本地数据", "summary": "现有本地文案或传统规则库;不调用AI或第三方文案服务。", "network": "none"},
"quotes": {"kind": "local-data", "label": "本地数据", "summary": "现有本地文案或传统规则库;不调用AI或第三方文案服务。", "network": "none"},
"greeting": {"kind": "mixed", "label": "本地优先", "summary": "本地问候文案;当天年份2025/2026用内置安排,其他年份按需查holiday-cn,失败时按普通周末处理。", "network": "conditional"},
"avatar": {"kind": "local-compute", "label": "本地计算", "summary": "服务器本地计算、校验或生成,不请求业务上游。", "network": "none"},
"idiom": {"kind": "local-data", "label": "本地数据", "summary": "本地词库与chinese-xinhua数据,按需读文件;不请求字典API。", "network": "none"},
"xiehouyu": {"kind": "local-data", "label": "本地数据", "summary": "本地词库与chinese-xinhua数据,按需读文件;不请求字典API。", "network": "none"},
"brain-teaser": {"kind": "local-data", "label": "本地数据", "summary": "现有本地文案或传统规则库;不调用AI或第三方文案服务。", "network": "none"},
"cold-fact": {"kind": "local-data", "label": "本地数据", "summary": "现有本地文案或传统规则库;不调用AI或第三方文案服务。", "network": "none"},
"compliment": {"kind": "local-data", "label": "本地数据", "summary": "现有本地文案或传统规则库;不调用AI或第三方文案服务。", "network": "none"},
"joke": {"kind": "local-data", "label": "本地数据", "summary": "现有本地文案或传统规则库;不调用AI或第三方文案服务。", "network": "none"},
"hanzi": {"kind": "local-data", "label": "本地数据", "summary": "本地词库与chinese-xinhua数据,按需读文件;不请求字典API。", "network": "none"},
"poetry": {"kind": "local-data", "label": "本地数据", "summary": "现有600首唐诗/宋词全文库与本地搜索、随机抽取。", "network": "none"},
"music": {"kind": "first-party-web", "label": "平台网页源", "summary": "直接调用网易云站内搜索/歌单/歌曲/歌词接口;搜索/歌单有同平台备用端点。", "network": "required"},
"music-play": {"kind": "first-party-web", "label": "平台网页源", "summary": "直接调用网易云站内搜索/歌单/歌曲/歌词接口;搜索/歌单有同平台备用端点。", "network": "required"},
"ai": {"kind": "mixed", "label": "混合来源", "summary": "OpenAI兼容接口,默认DeepSeek;LLM_BASE_URL可指向自有服务,但当前仍要求已有LLM_API_KEY。", "network": "required"},
"qrcode": {"kind": "local-compute", "label": "本地计算", "summary": "服务器本地计算、校验或生成,不请求业务上游。", "network": "none"},
"shorturl": {"kind": "local-data", "label": "本地数据", "summary": "本站SQLite生成和保存短链,访问短链时跳转用户目标。", "network": "none"},
"webmeta": {"kind": "direct-target", "label": "目标直查", "summary": "本服务器直接连接被测目标/订阅源,保留DNS解析、超时、限速与内网地址防护;非检测API中转。", "network": "target"},
"whois": {"kind": "mixed", "label": "混合来源", "summary": "IANA RDAP引导后直接查询对应注册局;失败时rdap.org备用跳转。", "network": "required"},
"translate": {"kind": "third-party-service", "label": "第三方数据", "summary": "DeepL/百度/有道官方翻译服务,按已有配置选择;不是不明翻译代理。", "network": "required"},
"devtools": {"kind": "local-compute", "label": "本地计算", "summary": "服务器本地计算、校验或生成,不请求业务上游。", "network": "none"},
"captcha": {"kind": "local-compute", "label": "本地计算", "summary": "服务器本地计算、校验或生成,不请求业务上游。", "network": "none"},
"visitor": {"kind": "mixed", "label": "混合来源", "summary": "本地解析UA/生成SVG;位置复用loadIpInfo,境外/IPv6等仍可能请求ip-api。", "network": "conditional"},
"useragent": {"kind": "local-compute", "label": "本地计算", "summary": "服务器本地计算、校验或生成,不请求业务上游。", "network": "none"},
"color": {"kind": "local-compute", "label": "本地计算", "summary": "服务器本地计算、校验或生成,不请求业务上游。", "network": "none"},
"ipcard": {"kind": "mixed", "label": "混合来源", "summary": "本地解析UA/生成SVG;位置复用loadIpInfo,境外/IPv6等仍可能请求ip-api。", "network": "conditional"},
"netcalc": {"kind": "local-compute", "label": "本地计算", "summary": "服务器本地计算、校验或生成,不请求业务上游。", "network": "none"},
"codec": {"kind": "local-compute", "label": "本地计算", "summary": "服务器本地计算、校验或生成,不请求业务上游。", "network": "none"},
"security-tools": {"kind": "local-compute", "label": "本地计算", "summary": "服务器本地计算、校验或生成,不请求业务上游。", "network": "none"},
"debug-tools": {"kind": "local-compute", "label": "本地计算", "summary": "服务器本地计算、校验或生成,不请求业务上游。", "network": "none"},
"text-tools": {"kind": "local-compute", "label": "本地计算", "summary": "服务器本地计算、校验或生成,不请求业务上游。", "network": "none"},
"svg-image": {"kind": "local-compute", "label": "本地计算", "summary": "服务器本地计算、校验或生成,不请求业务上游。", "network": "none"},
"cron": {"kind": "local-compute", "label": "本地计算", "summary": "服务器本地计算、校验或生成,不请求业务上游。", "network": "none"},
"regex": {"kind": "local-compute", "label": "本地计算", "summary": "服务器本地计算、校验或生成,不请求业务上游。", "network": "none"},
"pinyin": {"kind": "local-data", "label": "本地数据", "summary": "本地词库与chinese-xinhua数据,按需读文件;不请求字典API。", "network": "none"},
"chinese-convert": {"kind": "local-data", "label": "本地数据", "summary": "现有OpenCC字表本地转换,无在线转换服务。", "network": "none"},
"barcode": {"kind": "local-compute", "label": "本地计算", "summary": "服务器本地计算、校验或生成,不请求业务上游。", "network": "none"},
"random": {"kind": "local-compute", "label": "本地计算", "summary": "服务器本地计算、校验或生成,不请求业务上游。", "network": "none"},
"diff": {"kind": "local-compute", "label": "本地计算", "summary": "服务器本地计算、校验或生成,不请求业务上游。", "network": "none"},
"format-convert": {"kind": "local-compute", "label": "本地计算", "summary": "服务器本地计算、校验或生成,不请求业务上游。", "network": "none"},
"markdown": {"kind": "local-compute", "label": "本地计算", "summary": "服务器本地计算、校验或生成,不请求业务上游。", "network": "none"},
"devref": {"kind": "local-data", "label": "本地数据", "summary": "本地HTTP/MIME/端口等参考表;不实时查询IANA。", "network": "none"},
"qq-avatar": {"kind": "mixed", "label": "外部图片", "summary": "服务器仅拼接/跳转腾讯q1.qlogo.cn头像URL;客户端最终仍访问腾讯图片服务。", "network": "client"},
"qq-nickname": {"kind": "first-party-web", "label": "平台网页源", "summary": "腾讯Qzone公开portrait站内端点,非稳定公开API;依赖编码解析,返回不确定时拒绝乱码。", "network": "required"},
"qq-profile": {"kind": "local-compute", "label": "本地计算", "summary": "仅本地拼接mqqapi客户端资料卡链接/打开页,不查询QQ用户资料。", "network": "none"},
"notify-message": {"kind": "local-compute", "label": "本地计算", "summary": "服务器本地计算、校验或生成,不请求业务上游。", "network": "none"},
"dns": {"kind": "direct-target", "label": "目标直查", "summary": "服务器通过DNS协议查询固定公共解析器,不调用DNS检测代理;仍依赖解析器和权威DNS。", "network": "target"},
"ssl-cert": {"kind": "direct-target", "label": "目标直查", "summary": "本服务器直接连接被测目标/订阅源,保留DNS解析、超时、限速与内网地址防护;非检测API中转。", "network": "target"},
"site-check": {"kind": "direct-target", "label": "目标直查", "summary": "本服务器直接连接被测目标/订阅源,保留DNS解析、超时、限速与内网地址防护;非检测API中转。", "network": "target"},
"tcping": {"kind": "direct-target", "label": "目标直查", "summary": "本服务器直接连接被测目标/订阅源,保留DNS解析、超时、限速与内网地址防护;非检测API中转。", "network": "target"},
"ping": {"kind": "direct-target", "label": "目标直查", "summary": "本服务器直接连接被测目标/订阅源,保留DNS解析、超时、限速与内网地址防护;非检测API中转。", "network": "target"},
"domain-available": {"kind": "mixed", "label": "混合来源", "summary": "IANA RDAP引导后直接查询对应注册局;失败时rdap.org备用跳转。", "network": "required"},
"robots": {"kind": "direct-target", "label": "目标直查", "summary": "本服务器直接连接被测目标/订阅源,保留DNS解析、超时、限速与内网地址防护;非检测API中转。", "network": "target"},
"favicon": {"kind": "direct-target", "label": "目标直查", "summary": "本服务器直接连接被测目标/订阅源,保留DNS解析、超时、限速与内网地址防护;非检测API中转。", "network": "target"},
"link-check": {"kind": "direct-target", "label": "目标直查", "summary": "本服务器直接连接被测目标/订阅源,保留DNS解析、超时、限速与内网地址防护;非检测API中转。", "network": "target"},
"tld": {"kind": "first-party-api", "label": "官方公开源", "summary": "直接读取IANA公开顶级域列表。", "network": "required"},
"site-headers": {"kind": "direct-target", "label": "目标直查", "summary": "本服务器直接连接被测目标/订阅源,保留DNS解析、超时、限速与内网地址防护;非检测API中转。", "network": "target"},
"email-security": {"kind": "direct-target", "label": "目标直查", "summary": "服务器通过DNS协议查询固定公共解析器,不调用DNS检测代理;仍依赖解析器和权威DNS。", "network": "target"},
"email-check": {"kind": "direct-target", "label": "目标直查", "summary": "服务器通过DNS协议查询固定公共解析器,不调用DNS检测代理;仍依赖解析器和权威DNS。", "network": "target"},
"rss": {"kind": "direct-target", "label": "目标直查", "summary": "本服务器直接连接被测目标/订阅源,保留DNS解析、超时、限速与内网地址防护;非检测API中转。", "network": "target"},
"web-content": {"kind": "direct-target", "label": "目标直查", "summary": "本服务器直接连接被测目标/订阅源,保留DNS解析、超时、限速与内网地址防护;非检测API中转。", "network": "target"},
"crawl": {"kind": "direct-target", "label": "目标直查", "summary": "本服务器直接连接被测目标/订阅源,保留DNS解析、超时、限速与内网地址防护;非检测API中转。", "network": "target"},
"appstore": {"kind": "first-party-api", "label": "官方公开源", "summary": "Apple公开iTunes Search/Lookup API。", "network": "required"},
"probe": {"kind": "third-party-service", "label": "第三方数据", "summary": "Globalping分布式探针API;不同地点测量不能由本站单点ping等价替代。", "network": "required"},
"dns-propagation": {"kind": "mixed", "label": "混合来源", "summary": "同时比较多家公共DoH结果,部分JSON端点未有文档确认;不是本站独立DNS数据。", "network": "required"},
"batch-check": {"kind": "direct-target", "label": "目标直查", "summary": "本服务器直接连接被测目标/订阅源,保留DNS解析、超时、限速与内网地址防护;非检测API中转。", "network": "target"},
"ip-reputation": {"kind": "mixed", "label": "混合来源", "summary": "本地风险规则+DNSBL/PTR查询+loadIpInfo(withAsn=true)在线补ASN。", "network": "required"},
"asn": {"kind": "mixed", "label": "混合来源", "summary": "IANA IPv4/IPv6/ASN引导到五大RIR的RDAP;失败时rdap.org备用。", "network": "required"},
};
export const SOURCE_PROFILE_NAMES = Object.freeze(Object.keys(PROFILES));
export function moduleSourceInfo(name) {
const profile = PROFILES[name];
return profile ? { ...profile } : { kind: "unknown", label: "来源待核查", summary: "该模块尚未完成来源核查,请查看数据来源说明。", network: "unknown" };
}