Not in the top 1,000 by GitHub stars

runningZ1/union-search-skill

一次搜索 51 个渠道,默认返回每个渠道取到的全部结果,再按页面地址去重。覆盖网页、GitHub、YouTube、知乎、播客和 AI 搜索。

History

Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.

View weekly changes

SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

7495b52b7614 → 7495b52b7614

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 7495b52b7614

No earlier version was observed for comparison.

Compare on GitHub

View on GitHubAdd to my skills

Verified commit 7495b52b76140850eb26029c71779cffface757b

git clone --filter=blob:none --no-checkout https://github.com/runningZ1/union-search-skill.git .hotskills/runningz1-union-search-skill && git -C .hotskills/runningz1-union-search-skill checkout --detach 7495b52b76140850eb26029c71779cffface757b # Copy each selected skill directory from .hotskills/runningz1-union-search-skill into .claude/skills/<skill-name>/
git clone --filter=blob:none --no-checkout https://github.com/runningZ1/union-search-skill.git .hotskills/runningz1-union-search-skill && git -C .hotskills/runningz1-union-search-skill checkout --detach 7495b52b76140850eb26029c71779cffface757b # Copy each selected skill directory from .hotskills/runningz1-union-search-skill into .agents/skills/<skill-name>/
768GitHub stars
2stars in 7 days
1skill in this repository
20commits in 30 days

Heat

3.8
  • Star growth, last 7 daysNot available
  • Star growth, last 24 hoursNot available
  • Rank movement, last 7 daysNot available
  • Commits, last 30 daysNot available
  • Accounts asking about it through MCP, last 7 daysNot available
  • Hot votes this weekNot available

Heat never changes the order by stars, and sponsorship never touches it. How heat works

Stars over time

Aug 2, 2026Nov 5, 2026768

Individual skills in this repository

How it works

union-search-skill

When your agent uses it

搜索互联网资料或指定平台内容时使用:联合搜索、GitHub、YouTube、微信、知乎、播客、通用搜索引擎、AI 搜索服务及本机搜索工具;也用于网页正文提取、图片搜索与下载、yt-dlp 媒体下载。支持单渠道和多渠道检索、去重、凭据检查及 JSON 结果。Use for web search, cross-platform research, webpage extraction, image search/download, and media download. 不用于仅处理用户已提供的文本或本地文件。

What it loads into context

Frontmatter

128 tokens

Always available to the agent

SKILL.md

1,159 tokens

When the skill is activated

Reference documents

135,541 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. 执行顺序
  2. 任务入口
  3. 常用命令
  4. 结果契约
  5. 维护与验证

Scripts executed separately

  • package.json
  • scripts/channels/ai_tools/__init__.py
  • scripts/channels/ai_tools/adapter.py
  • scripts/channels/ai_tools/native_search/__init__.py
  • scripts/channels/ai_tools/native_search/backends/__init__.py
  • scripts/channels/ai_tools/native_search/backends/claude.py
  • scripts/channels/ai_tools/native_search/backends/cli_json.py
  • scripts/channels/ai_tools/native_search/backends/codex.py
  • scripts/channels/ai_tools/native_search/backends/grok.py
  • scripts/channels/ai_tools/native_search/config.py
  • scripts/channels/ai_tools/native_search/errors.py
  • scripts/channels/ai_tools/native_search/textutil.py
  • scripts/channels/ai_tools/worker.py
  • scripts/channels/anysearch/anysearch_search.py
  • scripts/channels/baidu/baidu_no_api.py
  • scripts/channels/baidu/baidu_search.py
  • scripts/channels/bailian/bailian_search.py
  • scripts/channels/bing/bing_cn_no_api.py
  • scripts/channels/bing/bing_int_no_api.py
  • scripts/channels/bing/bing_serpapi_search.py
  • scripts/channels/brave/brave_no_api.py
  • scripts/channels/brave/brave_search.py
  • scripts/channels/deepseek/deepseek_search.py
  • scripts/channels/duckduckgo/duckduckgo_no_api.py
  • scripts/channels/duckduckgo/duckduckgo_search.py
  • scripts/channels/duckduckgo_instant/duckduckgo_instant.py
  • scripts/channels/ecosia/ecosia_no_api.py
  • scripts/channels/exa/exa_mcp.py
  • scripts/channels/exa/exa_search.py
  • scripts/channels/firecrawl/firecrawl_search.py
  • scripts/channels/github_search/github_search.py
  • scripts/channels/google_search/google_hk_no_api.py
  • scripts/channels/google_search/google_no_api.py
  • scripts/channels/google_search/google_search.py
  • scripts/channels/jina/jina_search.py
  • scripts/channels/jisilu/jisilu_no_api.py
  • scripts/channels/kimi/kimi_search.py
  • scripts/channels/metaso/metaso_search.py
  • scripts/channels/mojeek/mojeek_no_api.py
  • scripts/channels/no_api/__init__.py
  • scripts/channels/no_api/base_engine.py
  • scripts/channels/no_api/request_state.py
  • scripts/channels/no_api/web_search.py
  • scripts/channels/ollama_search/ollama_search.py
  • scripts/channels/parallel_search/parallel_search.py
  • scripts/channels/quark/quark_no_api.py
  • scripts/channels/qwant/qwant_no_api.py
  • scripts/channels/rss_search/rss_search.py
  • scripts/channels/serper/serper_search.py
  • scripts/channels/so360/so360_no_api.py
  • scripts/channels/sogou/sogou_no_api.py
  • scripts/channels/startpage/startpage_no_api.py
  • scripts/channels/tavily_search/tavily_search.py
  • scripts/channels/tinyfish/tinyfish_search.py
  • scripts/channels/toutiao/toutiao_no_api.py
  • scripts/channels/volcengine/volcengine_search.py
  • scripts/channels/wechat/package.json
  • scripts/channels/wechat/search_wechat.js
  • scripts/channels/wechat/wechat_no_api.py
  • scripts/channels/wikipedia/wikipedia_search.py
  • scripts/channels/wolfram/wolfram_no_api.py
  • scripts/channels/xiaoyuzhoufm/xiaoyuzhou_search.py
  • scripts/channels/yahoo/yahoo_no_api.py
  • scripts/channels/yahoo/yahoo_search.py
  • scripts/channels/yandex/yandex_no_api.py
  • scripts/channels/yandex/yandex_search.py
  • scripts/channels/youtube/youtube_search.py
  • scripts/channels/yuanbao/yuanbao_search.py
  • scripts/channels/zhihu_official/zhihu_official_search.py
  • scripts/channels/zhipu/zhipu_search.py
  • scripts/cli/__init__.py
  • scripts/cli/adapters.py
  • scripts/cli/errors.py
  • scripts/cli/main.py
  • scripts/cli/output.py
  • scripts/cli/registry.py
  • scripts/cli/validators.py
  • scripts/downloader/__init__.py
  • scripts/downloader/yt_dlp_downloader.py
  • scripts/tests/test_ai_native_json.py
  • scripts/tests/test_ai_tools.py
  • scripts/tests/test_platform_groups.py
  • scripts/tests/test_result_cleaning.py
  • scripts/tests/test_unlimited_results.py
  • scripts/union_image_search/multi_platform_image_search.py
  • scripts/union_image_search/native_images.py
  • scripts/union_image_search/providers/catalogs.py
  • scripts/union_image_search/providers/search_engines.py
  • scripts/union_image_search/providers/specialty.py
  • scripts/union_image_search/volcengine_adapter.py
  • scripts/union_search/__init__.py
  • scripts/union_search/platform_metadata.py
  • scripts/union_search/search_logger.py
  • scripts/union_search/structured_results.py
  • scripts/union_search/union_search.py
  • scripts/url_to_markdown/__init__.py
  • scripts/url_to_markdown/__main__.py
  • scripts/url_to_markdown/engines/__init__.py
  • scripts/url_to_markdown/engines/defuddle-node/package.json
  • scripts/url_to_markdown/engines/defuddle/__init__.py
  • scripts/url_to_markdown/engines/defuddle/defuddle_cli.py
  • scripts/url_to_markdown/engines/defuddle_engine.py
  • scripts/url_to_markdown/engines/firecrawl_engine.py
  • scripts/url_to_markdown/engines/jina_engine.py
  • scripts/url_to_markdown/url_to_markdown.py
  • union_search_cli.py

Files

  • .env.exampleasset4,345 bytes
  • .github/ISSUE_TEMPLATE/provider_listing.ymlasset3,779 bytes
  • .gitignoreasset1,173 bytes
  • AGENTS.mddoc3,175 bytes
  • CLAUDE.mddoc11 bytes
  • LICENSEasset1,088 bytes
  • README.en.mddoc29,770 bytes
  • README.mddoc28,073 bytes
  • SKILL.mdcore4,544 bytes
  • SKILL.mdcore4,544 bytes
  • agents/_meta.jsonasset138 bytes
  • agents/interface.yamlasset648 bytes
  • assets/readme/channels.svgasset8,255 bytes
  • assets/readme/en/channels.svgasset8,175 bytes
  • assets/readme/en/hero.svgasset4,081 bytes
  • assets/readme/en/provider-onboarding.svgasset2,453 bytes
  • assets/readme/hero.svgasset4,115 bytes
  • assets/readme/provider-onboarding.svgasset2,459 bytes
  • package-lock.jsonasset37,238 bytes
  • package.jsonruns104 bytes
  • references/agent_api_key_setup.mddoc15,874 bytes
  • references/api_credentials.mddoc11,427 bytes
  • references/baidu_apikey_fetch.mddoc1,371 bytes
  • references/google_search_guide.mddoc1,734 bytes
  • references/output_fields.mddoc8,884 bytes
  • references/platform_notes.mddoc4,740 bytes
  • references/rate_limits.mddoc10,763 bytes
  • references/search_workflow.mddoc9,132 bytes
  • references/third_party.mddoc7,349 bytes
  • references/troubleshooting.mddoc6,443 bytes
  • requirements.txtdoc145 bytes
  • scripts/channels/ai_tools/README.mddoc4,157 bytes
  • scripts/channels/ai_tools/__init__.pyruns49 bytes
  • scripts/channels/ai_tools/adapter.pyruns3,736 bytes
  • scripts/channels/ai_tools/examples/search-result-claude_code-info.jsonasset363 bytes
  • scripts/channels/ai_tools/examples/search-result-claude_code.jsonasset1,341 bytes
  • scripts/channels/ai_tools/examples/search-result-grok_build-info.jsonasset360 bytes
  • scripts/channels/ai_tools/examples/search-result-grok_build.jsonasset1,745 bytes
  • scripts/channels/ai_tools/examples/search-result-info.jsonasset339 bytes
  • scripts/channels/ai_tools/examples/search-result.jsonasset1,785 bytes
  • scripts/channels/ai_tools/native_search/__init__.pyruns86 bytes
  • scripts/channels/ai_tools/native_search/backends/__init__.pyruns0 bytes
  • scripts/channels/ai_tools/native_search/backends/claude.pyruns2,564 bytes
  • scripts/channels/ai_tools/native_search/backends/cli_json.pyruns7,388 bytes
  • scripts/channels/ai_tools/native_search/backends/codex.pyruns6,072 bytes
  • scripts/channels/ai_tools/native_search/backends/grok.pyruns1,996 bytes
  • scripts/channels/ai_tools/native_search/config.pyruns1,128 bytes
  • scripts/channels/ai_tools/native_search/errors.pyruns401 bytes
  • scripts/channels/ai_tools/native_search/textutil.pyruns1,208 bytes
  • scripts/channels/ai_tools/output-analysis.mddoc15,267 bytes
  • scripts/channels/ai_tools/worker.pyruns2,211 bytes
  • scripts/channels/anysearch/README.mddoc2,572 bytes
  • scripts/channels/anysearch/anysearch_search.pyruns6,881 bytes
  • scripts/channels/anysearch/examples/search-result-info.jsonasset323 bytes
  • scripts/channels/anysearch/examples/search-result.jsonasset2,376 bytes
  • scripts/channels/anysearch/output-analysis.mddoc4,007 bytes
  • scripts/channels/baidu/README.mddoc1,681 bytes
  • scripts/channels/baidu/baidu_no_api.pyruns6,999 bytes
  • scripts/channels/baidu/baidu_search.pyruns4,245 bytes
  • scripts/channels/baidu/examples/search-result-baidu_direct-info.jsonasset323 bytes
  • scripts/channels/baidu/examples/search-result-baidu_direct.jsonasset1,733 bytes
  • scripts/channels/baidu/examples/search-result-info.jsonasset315 bytes
  • scripts/channels/baidu/examples/search-result.jsonasset7,449 bytes
  • scripts/channels/baidu/output-analysis.mddoc4,868 bytes
  • scripts/channels/bailian/README.mddoc2,588 bytes
  • scripts/channels/bailian/bailian_search.pyruns7,168 bytes
  • scripts/channels/bailian/examples/search-result-info.jsonasset319 bytes
  • scripts/channels/bailian/examples/search-result.jsonasset1,531 bytes
  • scripts/channels/bailian/output-analysis.mddoc4,556 bytes
  • scripts/channels/bing/README.mddoc1,931 bytes
  • scripts/channels/bing/bing_cn_no_api.pyruns2,999 bytes
  • scripts/channels/bing/bing_int_no_api.pyruns2,904 bytes
  • scripts/channels/bing/bing_serpapi_search.pyruns9,068 bytes
  • scripts/channels/bing/examples/search-result-bing_int_direct-info.jsonasset354 bytes
  • scripts/channels/bing/examples/search-result-bing_int_direct.jsonasset1,850 bytes
  • scripts/channels/bing/examples/search-result-info.jsonasset313 bytes
  • scripts/channels/bing/examples/search-result.jsonasset1,391 bytes
  • scripts/channels/bing/output-analysis.mddoc4,572 bytes
  • scripts/channels/brave/README.mddoc2,483 bytes
  • scripts/channels/brave/brave_no_api.pyruns541 bytes
  • scripts/channels/brave/brave_search.pyruns4,536 bytes
  • scripts/channels/brave/examples/search-result-info.jsonasset318 bytes
  • scripts/channels/brave/examples/search-result.jsonasset2,205 bytes
  • scripts/channels/brave/output-analysis.mddoc5,232 bytes
  • scripts/channels/deepseek/README.mddoc2,206 bytes
  • scripts/channels/deepseek/deepseek_search.pyruns6,145 bytes
  • scripts/channels/deepseek/examples/search-result-info.jsonasset321 bytes
  • scripts/channels/deepseek/examples/search-result.jsonasset12,960 bytes
  • scripts/channels/deepseek/output-analysis.mddoc3,998 bytes
  • scripts/channels/duckduckgo/README.mddoc1,393 bytes
  • scripts/channels/duckduckgo/duckduckgo_no_api.pyruns1,081 bytes
  • scripts/channels/duckduckgo/duckduckgo_search.pyruns4,507 bytes
  • scripts/channels/duckduckgo/examples/search-result-info.jsonasset328 bytes
  • scripts/channels/duckduckgo/examples/search-result.jsonasset2,116 bytes
  • scripts/channels/duckduckgo/output-analysis.mddoc5,287 bytes
  • scripts/channels/duckduckgo_instant/duckduckgo_instant.pyruns6,356 bytes
  • scripts/channels/duckduckgo_instant/examples/search-result-info.jsonasset170 bytes
  • scripts/channels/duckduckgo_instant/examples/search-result.jsonasset1,107 bytes
  • scripts/channels/duckduckgo_instant/output-analysis.mddoc5,887 bytes
  • scripts/channels/ecosia/ecosia_no_api.pyruns3,414 bytes
  • scripts/channels/ecosia/output-analysis.mddoc4,837 bytes
  • scripts/channels/exa/README.mddoc3,399 bytes
  • scripts/channels/exa/exa_mcp.pyruns9,456 bytes
  • scripts/channels/exa/exa_search.pyruns7,023 bytes
  • scripts/channels/exa/examples/search-result-info.jsonasset311 bytes
  • scripts/channels/exa/examples/search-result.jsonasset2,599 bytes
  • scripts/channels/exa/mcporter.jsonasset266 bytes
  • scripts/channels/exa/output-analysis.mddoc4,086 bytes
  • scripts/channels/firecrawl/README.mddoc2,381 bytes
  • scripts/channels/firecrawl/examples/search-result-info.jsonasset323 bytes
  • scripts/channels/firecrawl/examples/search-result.jsonasset3,872 bytes
  • scripts/channels/firecrawl/firecrawl_search.pyruns8,863 bytes
  • scripts/channels/firecrawl/output-analysis.mddoc4,503 bytes
  • scripts/channels/github_search/README.mddoc2,060 bytes
  • scripts/channels/github_search/deepwiki.mddoc2,406 bytes
  • scripts/channels/github_search/examples/search-result-info.jsonasset320 bytes
  • scripts/channels/github_search/examples/search-result.jsonasset22,167 bytes
  • scripts/channels/github_search/github_search.pyruns23,471 bytes
  • scripts/channels/github_search/output-analysis.mddoc13,631 bytes
  • scripts/channels/google_search/README.mddoc2,661 bytes
  • scripts/channels/google_search/examples/search-result-info.jsonasset317 bytes
  • scripts/channels/google_search/examples/search-result.jsonasset8,262 bytes
  • scripts/channels/google_search/google_hk_no_api.pyruns3,586 bytes
  • scripts/channels/google_search/google_no_api.pyruns3,712 bytes
  • scripts/channels/google_search/google_search.pyruns4,941 bytes
  • scripts/channels/google_search/output-analysis.mddoc4,708 bytes
  • scripts/channels/jina/README.mddoc743 bytes
  • scripts/channels/jina/examples/search-result-info.jsonasset313 bytes
  • scripts/channels/jina/examples/search-result.jsonasset1,350 bytes
  • scripts/channels/jina/jina_search.pyruns4,595 bytes
  • scripts/channels/jina/output-analysis.mddoc3,860 bytes
  • scripts/channels/jisilu/jisilu_no_api.pyruns3,041 bytes
  • scripts/channels/jisilu/output-analysis.mddoc4,938 bytes
  • scripts/channels/kimi/README.mddoc2,720 bytes
  • scripts/channels/kimi/examples/search-result-info.jsonasset313 bytes
  • scripts/channels/kimi/examples/search-result.jsonasset1,674 bytes
  • scripts/channels/kimi/kimi_search.pyruns6,802 bytes
  • scripts/channels/kimi/output-analysis.mddoc4,241 bytes
  • scripts/channels/metaso/README.mddoc3,209 bytes
  • scripts/channels/metaso/examples/search-result-info.jsonasset317 bytes
  • scripts/channels/metaso/examples/search-result.jsonasset3,132 bytes
  • scripts/channels/metaso/metaso_search.pyruns8,923 bytes
  • scripts/channels/metaso/output-analysis.mddoc4,177 bytes
  • scripts/channels/mojeek/mojeek_no_api.pyruns5,456 bytes
  • scripts/channels/mojeek/output-analysis.mddoc5,118 bytes
  • scripts/channels/no_api/README.mddoc3,085 bytes
  • scripts/channels/no_api/__init__.pyruns52 bytes
  • scripts/channels/no_api/base_engine.pyruns3,524 bytes
  • scripts/channels/no_api/output-analysis.mddoc6,025 bytes
  • scripts/channels/no_api/request_state.pyruns4,875 bytes
  • scripts/channels/no_api/web_search.pyruns4,520 bytes
  • scripts/channels/ollama_search/README.mddoc1,714 bytes
  • scripts/channels/ollama_search/examples/search-result-info.jsonasset317 bytes
  • scripts/channels/ollama_search/examples/search-result.jsonasset248,156 bytes
  • scripts/channels/ollama_search/ollama_search.pyruns4,482 bytes
  • scripts/channels/ollama_search/output-analysis.mddoc3,497 bytes
  • scripts/channels/parallel_search/README.mddoc3,046 bytes
  • scripts/channels/parallel_search/examples/search-result-info.jsonasset321 bytes
  • scripts/channels/parallel_search/examples/search-result.jsonasset4,386 bytes
  • scripts/channels/parallel_search/output-analysis.mddoc4,269 bytes
  • scripts/channels/parallel_search/parallel_search.pyruns7,525 bytes
  • scripts/channels/quark/README.mddoc2,143 bytes
  • scripts/channels/quark/examples/search-result-info.jsonasset332 bytes
  • scripts/channels/quark/examples/search-result.jsonasset2,218 bytes
  • scripts/channels/quark/output-analysis.mddoc5,194 bytes
  • scripts/channels/quark/quark_no_api.pyruns5,995 bytes
  • scripts/channels/qwant/output-analysis.mddoc4,945 bytes
  • scripts/channels/qwant/qwant_no_api.pyruns3,402 bytes
  • scripts/channels/rss_search/README.mddoc5,392 bytes
  • scripts/channels/rss_search/examples/search-result-info.jsonasset148 bytes
  • scripts/channels/rss_search/examples/search-result.jsonasset9,549 bytes
  • scripts/channels/rss_search/output-analysis.mddoc6,778 bytes
  • scripts/channels/rss_search/rss_feeds.txtdoc3,636 bytes
  • scripts/channels/rss_search/rss_search.pyruns22,016 bytes
  • scripts/channels/serper/examples/search-result-info.jsonasset317 bytes
  • scripts/channels/serper/examples/search-result.jsonasset1,476 bytes
  • scripts/channels/serper/output-analysis.mddoc3,960 bytes
  • scripts/channels/serper/serper_search.pyruns6,877 bytes
  • scripts/channels/so360/README.mddoc899 bytes
  • scripts/channels/so360/examples/search-result-info.jsonasset332 bytes
  • scripts/channels/so360/examples/search-result.jsonasset1,602 bytes
  • scripts/channels/so360/output-analysis.mddoc4,968 bytes
  • scripts/channels/so360/so360_no_api.pyruns5,630 bytes
  • scripts/channels/sogou/README.mddoc875 bytes
  • scripts/channels/sogou/examples/search-result-info.jsonasset332 bytes
  • scripts/channels/sogou/examples/search-result.jsonasset1,812 bytes
  • scripts/channels/sogou/output-analysis.mddoc5,162 bytes
  • scripts/channels/sogou/sogou_no_api.pyruns6,352 bytes
  • scripts/channels/startpage/output-analysis.mddoc4,908 bytes
  • scripts/channels/startpage/startpage_no_api.pyruns3,054 bytes
  • scripts/channels/tavily_search/README.mddoc2,505 bytes
  • scripts/channels/tavily_search/examples/search-result-info.jsonasset317 bytes
  • scripts/channels/tavily_search/examples/search-result.jsonasset2,568 bytes
  • scripts/channels/tavily_search/output-analysis.mddoc4,102 bytes
  • scripts/channels/tavily_search/tavily_search.pyruns4,422 bytes
  • scripts/channels/tinyfish/README.mddoc1,798 bytes
  • scripts/channels/tinyfish/examples/search-result-info.jsonasset321 bytes
  • scripts/channels/tinyfish/examples/search-result.jsonasset1,722 bytes
  • scripts/channels/tinyfish/output-analysis.mddoc3,813 bytes
  • scripts/channels/tinyfish/tinyfish_search.pyruns4,977 bytes
  • scripts/channels/toutiao/output-analysis.mddoc4,978 bytes
  • scripts/channels/toutiao/toutiao_no_api.pyruns3,043 bytes
  • scripts/channels/volcengine/README.mddoc6,479 bytes
  • scripts/channels/volcengine/examples/search-result-info.jsonasset325 bytes
  • scripts/channels/volcengine/examples/search-result.jsonasset9,712 bytes
  • scripts/channels/volcengine/output-analysis.mddoc4,834 bytes
  • scripts/channels/volcengine/volcengine_search.pyruns21,204 bytes
  • scripts/channels/wechat/README.mddoc2,730 bytes
  • scripts/channels/wechat/examples/search-result-info.jsonasset156 bytes
  • scripts/channels/wechat/examples/search-result.jsonasset2,681 bytes
  • scripts/channels/wechat/output-analysis.mddoc6,208 bytes
  • scripts/channels/wechat/package.jsonruns52 bytes
  • scripts/channels/wechat/search_wechat.jsruns20,403 bytes
  • scripts/channels/wechat/wechat_no_api.pyruns3,030 bytes
  • scripts/channels/wikipedia/README.mddoc1,531 bytes
  • scripts/channels/wikipedia/examples/search-result-info.jsonasset326 bytes
  • scripts/channels/wikipedia/examples/search-result.jsonasset1,108 bytes
  • scripts/channels/wikipedia/output-analysis.mddoc5,244 bytes
  • scripts/channels/wikipedia/wikipedia_search.pyruns4,730 bytes
  • scripts/channels/wolfram/output-analysis.mddoc5,192 bytes
  • scripts/channels/wolfram/wolfram_no_api.pyruns3,185 bytes
  • scripts/channels/xiaoyuzhoufm/README.mddoc2,643 bytes
  • scripts/channels/xiaoyuzhoufm/examples/search-result-info.jsonasset329 bytes
  • scripts/channels/xiaoyuzhoufm/examples/search-result.jsonasset7,285 bytes
  • scripts/channels/xiaoyuzhoufm/output-analysis.mddoc6,096 bytes
  • scripts/channels/xiaoyuzhoufm/xiaoyuzhou_search.pyruns5,816 bytes
  • scripts/channels/yahoo/README.mddoc2,786 bytes
  • scripts/channels/yahoo/examples/search-result-info.jsonasset318 bytes
  • scripts/channels/yahoo/examples/search-result.jsonasset2,281 bytes
  • scripts/channels/yahoo/output-analysis.mddoc5,348 bytes
  • scripts/channels/yahoo/yahoo_no_api.pyruns541 bytes
  • scripts/channels/yahoo/yahoo_search.pyruns5,612 bytes
  • scripts/channels/yandex/README.mddoc1,949 bytes
  • scripts/channels/yandex/examples/search-result-info.jsonasset317 bytes
  • scripts/channels/yandex/examples/search-result-yandex_direct-info.jsonasset348 bytes
  • scripts/channels/yandex/examples/search-result-yandex_direct.jsonasset2,138 bytes
  • scripts/channels/yandex/examples/search-result.jsonasset1,799 bytes
  • scripts/channels/yandex/output-analysis.mddoc4,500 bytes
  • scripts/channels/yandex/yandex_no_api.pyruns2,609 bytes
  • scripts/channels/yandex/yandex_search.pyruns5,284 bytes
  • scripts/channels/youtube/README.mddoc1,433 bytes
  • scripts/channels/youtube/examples/search-result-info.jsonasset319 bytes
  • scripts/channels/youtube/examples/search-result.jsonasset8,917 bytes
  • scripts/channels/youtube/output-analysis.mddoc7,085 bytes
  • scripts/channels/youtube/youtube_search.pyruns16,679 bytes
  • scripts/channels/yuanbao/README.mddoc3,049 bytes
  • scripts/channels/yuanbao/examples/search-result-info.jsonasset319 bytes
  • scripts/channels/yuanbao/examples/search-result.jsonasset14,390 bytes
  • scripts/channels/yuanbao/output-analysis.mddoc4,275 bytes
  • scripts/channels/yuanbao/yuanbao_search.pyruns7,521 bytes
  • scripts/channels/zhihu_official/README.mddoc2,392 bytes
  • scripts/channels/zhihu_official/examples/search-result-info.jsonasset333 bytes
  • scripts/channels/zhihu_official/examples/search-result.jsonasset9,996 bytes
  • scripts/channels/zhihu_official/output-analysis.mddoc6,416 bytes
  • scripts/channels/zhihu_official/zhihu_official_search.pyruns9,914 bytes
  • scripts/channels/zhipu/README.mddoc2,541 bytes
  • scripts/channels/zhipu/examples/search-result-info.jsonasset315 bytes
  • scripts/channels/zhipu/examples/search-result.jsonasset6,431 bytes
  • scripts/channels/zhipu/output-analysis.mddoc4,403 bytes
  • scripts/channels/zhipu/zhipu_search.pyruns7,569 bytes
  • scripts/cli/README.mddoc13,794 bytes
  • scripts/cli/__init__.pyruns50 bytes
  • scripts/cli/adapters.pyruns9,001 bytes
  • scripts/cli/errors.pyruns4,162 bytes
  • scripts/cli/main.pyruns38,993 bytes
  • scripts/cli/output.pyruns3,584 bytes
  • scripts/cli/registry.pyruns3,030 bytes
  • scripts/cli/validators.pyruns3,173 bytes
  • scripts/downloader/__init__.pyruns1 bytes
  • scripts/downloader/yt_dlp_downloader.pyruns11,688 bytes
  • scripts/evals/README.mddoc3,752 bytes
  • scripts/evals/semantic_config.jsonasset696 bytes
  • scripts/evals/trigger_cases.jsonasset1,826 bytes
  • scripts/tests/test_ai_native_json.pyruns3,289 bytes
  • scripts/tests/test_ai_tools.pyruns4,998 bytes
  • scripts/tests/test_platform_groups.pyruns4,671 bytes
  • scripts/tests/test_result_cleaning.pyruns3,404 bytes
  • scripts/tests/test_unlimited_results.pyruns5,917 bytes
  • scripts/union_image_search/README.mddoc8,120 bytes
  • scripts/union_image_search/multi_platform_image_search.pyruns19,342 bytes
  • scripts/union_image_search/native_images.pyruns5,163 bytes
  • scripts/union_image_search/providers/catalogs.pyruns8,784 bytes
  • scripts/union_image_search/providers/search_engines.pyruns5,350 bytes
  • scripts/union_image_search/providers/specialty.pyruns4,712 bytes
  • scripts/union_image_search/volcengine_adapter.pyruns8,652 bytes
  • scripts/union_search/README.mddoc8,077 bytes
  • scripts/union_search/__init__.pyruns598 bytes
  • scripts/union_search/platform_metadata.pyruns2,633 bytes
  • scripts/union_search/search_logger.pyruns2,096 bytes
  • scripts/union_search/structured_results.pyruns5,909 bytes
  • scripts/union_search/union_search.pyruns76,012 bytes
  • scripts/url_to_markdown/README.mddoc8,129 bytes
  • scripts/url_to_markdown/__init__.pyruns1,023 bytes
  • scripts/url_to_markdown/__main__.pyruns196 bytes
  • scripts/url_to_markdown/engines/__init__.pyruns7,038 bytes
  • scripts/url_to_markdown/engines/defuddle-node/package-lock.jsonasset30,954 bytes
  • scripts/url_to_markdown/engines/defuddle-node/package.jsonruns286 bytes
  • scripts/url_to_markdown/engines/defuddle/README.mddoc2,478 bytes
  • scripts/url_to_markdown/engines/defuddle/__init__.pyruns297 bytes
  • scripts/url_to_markdown/engines/defuddle/defuddle_cli.pyruns6,718 bytes
  • scripts/url_to_markdown/engines/defuddle_engine.pyruns5,370 bytes
  • scripts/url_to_markdown/engines/firecrawl_engine.pyruns3,109 bytes
  • scripts/url_to_markdown/engines/jina_engine.pyruns5,665 bytes
  • scripts/url_to_markdown/url_to_markdown.pyruns16,262 bytes
  • union_search_cli.pyruns462 bytes
Read SKILL.md

# 联合搜索

## 执行顺序

1. 定位本文件所在的技能根目录,在该目录运行 `python union_search_cli.py`。准备依赖、凭据和任务参数时阅读 [执行指南](references/search_workflow.md)。
2. 用 `list` 发现渠道、分组与图片平台;具体参数以子命令 `--help` 和 `schema` 为准。
3. 用户指定渠道时按指定范围执行;未指定时按资料类型和可用凭据选择渠道。`general` 是默认通用网页分组,会同时请求其中全部渠道;`no_api_key` 按认证条件分类。兼容渠道名称共用实现,同一来源在一次联合查询中只执行一次。
4. 将结果保存到任务目录,检查 `ok`、错误和实际文件,再根据来源回答。搜索摘要仅用于定位;需要核实细节时提取原文。

## 任务入口

| 任务 | 命令与按需阅读 |
|------|----------------|
| 联合或单渠道搜索 | `search` / `platform`;[执行指南](references/search_workflow.md)、[CLI 参数](scripts/cli/README.md) |
View the complete source on GitHub

Skills included

  • union-search-skill

Repository facts

License
MIT
Created
Jan 31, 2026
Last pushed
Oct 26, 2026
Forks
70
Open issues
2
Project activity
Active

Rank over the last 12 weeks

Now #835 · best #719 · down 45 in 30 days

  1. #835 on Oct 18
  2. #875 on Oct 19
  3. #902 on Oct 21
  4. #870 on Oct 22
  5. #886 on Oct 23
  6. #835 since Oct 24
48 earlier periods
  1. #721 on Aug 2
  2. #719 on Aug 7
  3. #724 on Aug 8
  4. #729 on Aug 9
  5. #761 from Aug 10 to Aug 11
  6. #760 on Aug 12
  7. #747 on Aug 16
  8. #760 on Aug 17
  9. #768 on Aug 20
  10. #733 on Aug 22
  11. #802 on Aug 24
  12. #795 on Aug 26
  13. #834 on Aug 28
  14. #771 on Aug 30
  15. #811 on Aug 31
  16. #833 on Sep 1
  17. #796 on Sep 4
  18. #776 on Sep 5
  19. #804 on Sep 6
  20. #824 on Sep 7
  21. #828 on Sep 9
  22. #835 on Sep 10
  23. #810 on Sep 11
  24. #804 on Sep 12
  25. #799 on Sep 13
  26. #832 on Sep 14
  27. #816 on Sep 15
  28. #829 on Sep 16
  29. #832 on Sep 17
  30. #804 on Sep 20
  31. #812 on Sep 21
  32. #836 on Sep 22
  33. #824 on Sep 23
  34. #790 on Sep 24
  35. #761 on Sep 25
  36. #823 on Sep 28
  37. #831 on Sep 30
  38. #793 on Oct 2
  39. #775 on Oct 3
  40. #804 on Oct 4
  41. #818 on Oct 5
  42. #816 on Oct 6
  43. #882 on Oct 8
  44. #826 from Oct 10 to Oct 11
  45. #850 on Oct 12
  46. #859 on Oct 13
  47. #869 on Oct 14
  48. #860 on Oct 15

Before you install

Network or broad shell

Automated signals, not a guarantee

Checked Nov 6, 2026

Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.

Show 10 notes
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • scripts/channels/deepseek/examples/search-result.json:25 Analysis incomplete: physical or joined line exceeds character limit
  • scripts/channels/deepseek/examples/search-result.json:23 Analysis incomplete: physical or joined line exceeds character limit
  • scripts/channels/deepseek/examples/search-result.json:24 Analysis incomplete: physical or joined line exceeds character limit
  • scripts/channels/ollama_search/examples/search-result.json:10 Analysis incomplete: physical or joined line exceeds character limit
  • scripts/channels/ollama_search/examples/search-result.json:8 Analysis incomplete: physical or joined line exceeds character limit
  • scripts/channels/ollama_search/examples/search-result.json:9 Analysis incomplete: physical or joined line exceeds character limit
  • scripts/channels/ollama_search/examples/search-result.json:22 Analysis incomplete: physical or joined line exceeds character limit
  • scripts/channels/ollama_search/examples/search-result.json:20 Analysis incomplete: physical or joined line exceeds character limit
  • scripts/channels/ollama_search/examples/search-result.json:21 Analysis incomplete: physical or joined line exceeds character limit
Show all 3,106 signals by file

.env.example

  • Access to secretsline 9
    [Credential-related source omitted]
  • Access to secretsline 13
    [Credential-related source omitted]
  • Network accessline 15
    [Credential-related source omitted]
  • Network accessline 16
    [Credential-related source omitted]
  • Access to secretsline 16
    [Credential-related source omitted]
  • Network accessline 17
    # 自建 Firecrawl 服务时填写,默认 https://api.firecrawl.dev
  • Network accessline 20
    [Credential-related source omitted]
  • Network accessline 21
    [Credential-related source omitted]
  • Access to secretsline 21
    [Credential-related source omitted]
  • Network accessline 22
    # 默认 https://api.deepseek.com
  • Network accessline 25
    [Credential-related source omitted]
  • Network accessline 26
    [Credential-related source omitted]
  • Network accessline 27
    # 默认 https://api.wsa.cloud.tencent.com/SearchPro
  • Network accessline 30
    [Credential-related source omitted]
  • Network accessline 31
    [Credential-related source omitted]
  • Access to secretsline 31
    [Credential-related source omitted]
  • Network accessline 32
    # 默认 https://api.search.tinyfish.ai
  • Network accessline 35
    [Credential-related source omitted]
  • Access to secretsline 35
    [Credential-related source omitted]
  • Network accessline 36
    [Credential-related source omitted]
  • Access to secretsline 36
    [Credential-related source omitted]
  • Network accessline 37
    # 默认 https://api.anysearch.com/v1/search
  • Network accessline 40
    [Credential-related source omitted]
  • Network accessline 41
    [Credential-related source omitted]
  • Access to secretsline 41
    [Credential-related source omitted]
  • Network accessline 42
    # 默认 https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation
  • Network accessline 47
    [Credential-related source omitted]
  • Network accessline 48
    [Credential-related source omitted]
  • Network accessline 49
    # 默认 https://developer.zhihu.com
  • Network accessline 52
    [Credential-related source omitted]
  • Network accessline 53
    [Credential-related source omitted]
  • Access to secretsline 53
    [Credential-related source omitted]
  • Network accessline 54
    # 默认 https://api.parallel.ai/v1/search
  • Network accessline 59
    [Credential-related source omitted]
  • Network accessline 60
    [Credential-related source omitted]
  • Access to secretsline 60
    [Credential-related source omitted]
  • Network accessline 61
    # 默认 https://ollama.com/api/web_search
  • Access to secretsline 65
    [Credential-related source omitted]
  • Network accessline 66
    # 默认 search_std,可选 search_pro、search_pro_sogou、search_pro_quark ZHIPU_SEARCH_ENGINE=search_std # 默认 https://open.bigmodel.cn/api/paas/v4/web_search
  • Network accessline 67
    ZHIPU_SEARCH_ENGINE=search_std # 默认 https://open.bigmodel.cn/api/paas/v4/web_search ZHIPU_WEB_SEARCH_ENDPOINT=
  • Network accessline 68
    # 默认 https://open.bigmodel.cn/api/paas/v4/web_search
  • Network accessline 71
    [Credential-related source omitted]
  • Network accessline 72
    [Credential-related source omitted]
  • Access to secretsline 72
    [Credential-related source omitted]
  • Network accessline 73
    # 默认 https://api.moonshot.cn/v1
  • Access to secretsline 79
    [Credential-related source omitted]
  • Access to secretsline 83
    [Credential-related source omitted]
  • Access to secretsline 88
    [Credential-related source omitted]
  • Access to secretsline 89
    [Credential-related source omitted]
  • Access to secretsline 90
    [Credential-related source omitted]
  • Access to secretsline 93
    [Credential-related source omitted]
  • Access to secretsline 94
    [Credential-related source omitted]
  • Access to secretsline 98
    [Credential-related source omitted]
  • Access to secretsline 104
    [Credential-related source omitted]
  • Access to secretsline 132
    [Credential-related source omitted]

.github/ISSUE_TEMPLATE/provider_listing.yml

  • Network accessline 14
    attributes:       label: 服务名称与官网 / Service name and website       placeholder: Example Search · https://example.com
  • Network accessline 15
    label: 服务名称与官网 / Service name and website       placeholder: Example Search · https://example.com     validations:
  • Network accessline 16
    placeholder: Example Search · https://example.com
  • Access to secretsline 44
    [Credential-related source omitted]
  • Network accessline 58
    attributes:       label: 请求示例 / Example request       description: curl 示例或官方 SDK 用法,Key 用占位符代替 / curl or SDK usage with a placeholder key
  • Network accessline 59
    label: 请求示例 / Example request       description: curl 示例或官方 SDK 用法,Key 用占位符代替 / curl or SDK usage with a placeholder key       render: bash
  • Network accessline 60
    description: curl 示例或官方 SDK 用法,Key 用占位符代替 / curl or SDK usage with a placeholder key

.gitignore

  • Access to secretsline 40
    [Credential-related source omitted]

README.en.md

  • Network accessline 9
    <p align="center">   <a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-blue.svg" alt="License: MIT"></a>
  • Network accessline 10
    <a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-blue.svg" alt="License: MIT"></a>
  • Network accessline 11
    <img src="https://img.shields.io/badge/search_channels-51-86edc5.svg" alt="51 search channels">
  • Network accessline 12
    <img src="https://img.shields.io/badge/python-3.10%2B-3776ab.svg" alt="Python 3.10+">
  • Network accessline 13
    <img src="https://img.shields.io/badge/agent-Claude_Code_%7C_Codex-b9a6ff.svg" alt="Works with Claude Code and Codex">
  • Network accessline 45
    git clone https://github.com/runningZ1/union-search-skill.git
  • Access to secretsline 63
    [Credential-related source omitted]
  • Network accessline 123
    python union_search_cli.py defuddle "https://example.com" --pretty
  • Network accessline 124
    python union_search_cli.py defuddle "https://example.com" --format markdown -o out/article.md
  • Access to secretsline 147
    [Credential-related source omitted]
  • Access to secretsline 167
    [Credential-related source omitted]
  • Access to secretsline 169
    [Credential-related source omitted]
  • Access to secretsline 198
    [Credential-related source omitted]
  • Access to secretsline 199
    [Credential-related source omitted]
  • Access to secretsline 237
    [Credential-related source omitted]
  • Network accessline 317
    1. Fill in the [provider listing request](https://github.com/runningZ1/union-search-skill/issues/new?template=provider_listing.yml) with your API docs, authentication, quota and response fields. Do not paste real keys into the issue.
  • Network accessline 393
    If a feature does not work, results look wrong, an upgrade breaks something or the docs are incorrect, please report it in [GitHub Issues](https://github.com/runningZ1/union-search-skill/issues). Search existing issues first; if there is no
  • Network accessline 412
    | Purpose | Projects | | --- | --- | | HTTP requests, configuration and HTML parsing | [Requests](https://github.com/psf/requests), [python-dotenv](https://github.com/theskumar/python-dotenv), [lxml](https://github.com/lxml/lxml) |
  • Network accessline 413
    | --- | --- | | HTTP requests, configuration and HTML parsing | [Requests](https://github.com/psf/requests), [python-dotenv](https://github.com/theskumar/python-dotenv), [lxml](https://github.com/lxml/lxml) | | Logging and structured data v
  • Network accessline 414
    | HTTP requests, configuration and HTML parsing | [Requests](https://github.com/psf/requests), [python-dotenv](https://github.com/theskumar/python-dotenv), [lxml](https://github.com/lxml/lxml) |
  • Network accessline 415
    | Logging and structured data validation | [Loguru](https://github.com/Delgan/loguru), [Pydantic](https://github.com/pydantic/pydantic) | | Images, media download and processing | [Pillow](https://github.com/python-pillow/Pillow), [chompjs]
  • Network accessline 416
    | Images, media download and processing | [Pillow](https://github.com/python-pillow/Pillow), [chompjs](https://github.com/Nykakin/chompjs), [pyimagedl / imagedl](https://github.com/CharlesPikachu/imagedl), [yt-dlp](https://github.com/yt-dlp
  • Network accessline 417
    | Search service SDKs | [tavily-python](https://github.com/tavily-ai/tavily-python), [firecrawl-py](https://pypi.org/project/firecrawl-py/) |
  • Network accessline 418
    | Web extraction and Node.js tooling | [Defuddle](https://github.com/kepano/defuddle), [Cheerio](https://github.com/cheeriojs/cheerio), [Commander.js](https://github.com/tj/commander.js), [jsdom](https://github.com/jsdom/jsdom) |

README.md

  • Network accessline 9
    <p align="center">   <a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-blue.svg" alt="License: MIT"></a>
  • Network accessline 10
    <a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-blue.svg" alt="License: MIT"></a>
  • Network accessline 11
    <img src="https://img.shields.io/badge/search_channels-51-86edc5.svg" alt="51 个搜索渠道">
  • Network accessline 12
    <img src="https://img.shields.io/badge/python-3.10%2B-3776ab.svg" alt="Python 3.10+">
  • Network accessline 13
    <img src="https://img.shields.io/badge/agent-Claude_Code_%7C_Codex-b9a6ff.svg" alt="适用于 Claude Code 和 Codex">
  • Network accessline 45
    git clone https://github.com/runningZ1/union-search-skill.git
  • Access to secretsline 63
    [Credential-related source omitted]
  • Network accessline 123
    python union_search_cli.py defuddle "https://example.com" --pretty
  • Network accessline 124
    python union_search_cli.py defuddle "https://example.com" --format markdown -o out/article.md
  • Access to secretsline 147
    [Credential-related source omitted]
  • Access to secretsline 167
    [Credential-related source omitted]
  • Access to secretsline 169
    [Credential-related source omitted]
  • Access to secretsline 198
    [Credential-related source omitted]
  • Access to secretsline 199
    [Credential-related source omitted]
  • Network accessline 315
    1. 填写[服务商入驻申请](https://github.com/runningZ1/union-search-skill/issues/new?template=provider_listing.yml),说明 API 文档、认证方式、额度和返回字段。请勿在 Issue 中粘贴真实 Key。
  • Network accessline 391
    使用中遇到功能不可用、结果异常、升级兼容问题或文档错误,请到 [GitHub Issues](https://github.com/runningZ1/union-search-skill/issues) 反馈。提交前可先搜索已有 Issue;没有相同问题时,[新建 Issue](https://github.com/runningZ1/union-search-skill/issues/new) 描述情况,也欢迎提交 Pull Request。
  • Network accessline 410
    | 用途 | 相关项目 | | --- | --- | | HTTP 请求、配置和 HTML 解析 | [Requests](https://github.com/psf/requests)、[python-dotenv](https://github.com/theskumar/python-dotenv)、[lxml](https://github.com/lxml/lxml) |
  • Network accessline 411
    | --- | --- | | HTTP 请求、配置和 HTML 解析 | [Requests](https://github.com/psf/requests)、[python-dotenv](https://github.com/theskumar/python-dotenv)、[lxml](https://github.com/lxml/lxml) | | 日志与结构化数据校验 | [Loguru](https://github.com/Delgan/loguru)、[
  • Network accessline 412
    | HTTP 请求、配置和 HTML 解析 | [Requests](https://github.com/psf/requests)、[python-dotenv](https://github.com/theskumar/python-dotenv)、[lxml](https://github.com/lxml/lxml) |
  • Network accessline 413
    | 日志与结构化数据校验 | [Loguru](https://github.com/Delgan/loguru)、[Pydantic](https://github.com/pydantic/pydantic) |
  • Network accessline 414
    | 图片、媒体下载与处理 | [Pillow](https://github.com/python-pillow/Pillow)、[chompjs](https://github.com/Nykakin/chompjs)、[pyimagedl / imagedl](https://github.com/CharlesPikachu/imagedl)、[yt-dlp](https://github.com/yt-dlp/yt-dlp)、[FFmpeg](https://ffmp
  • Network accessline 415
    | 搜索服务 SDK | [tavily-python](https://github.com/tavily-ai/tavily-python)、[firecrawl-py](https://pypi.org/project/firecrawl-py/) |
  • Network accessline 416
    | 网页提取与 Node.js 工具 | [Defuddle](https://github.com/kepano/defuddle)、[Cheerio](https://github.com/cheeriojs/cheerio)、[Commander.js](https://github.com/tj/commander.js)、[jsdom](https://github.com/jsdom/jsdom) |

SKILL.md

  • Access to secretsline 12
    [Credential-related source omitted]
  • Network accessline 35
    python union_search_cli.py doctor --platforms github wikipedia python union_search_cli.py search "Python packaging" --platforms github wikipedia --limit 3 --deduplicate -o .work/search.json python union_search_cli.py defuddle "https://examp
  • Network accessline 36
    python union_search_cli.py search "Python packaging" --platforms github wikipedia --limit 3 --deduplicate -o .work/search.json python union_search_cli.py defuddle "https://example.com" --format markdown -o .work/article.md python union_sear
  • Network accessline 37
    python union_search_cli.py defuddle "https://example.com" --format markdown -o .work/article.md python union_search_cli.py image "mountain landscape" --platforms bing --limit 5 --output-dir .work/images -o .work/images.json python union_sea

assets/readme/channels.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="1200" height="960" viewBox="0 0 1200 960" role="img" aria-labelledby="title desc">
  • Access to secretsline 14
    [Credential-related source omitted]

assets/readme/en/channels.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="1200" height="960" viewBox="0 0 1200 960" role="img" aria-labelledby="title desc">
  • Access to secretsline 14
    [Credential-related source omitted]

assets/readme/en/hero.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="1200" height="440" viewBox="0 0 1200 440" role="img" aria-labelledby="title desc">

assets/readme/en/provider-onboarding.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="1200" height="336" viewBox="0 0 1200 336" role="img" aria-labelledby="title desc">

assets/readme/hero.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="1200" height="440" viewBox="0 0 1200 440" role="img" aria-labelledby="title desc">

assets/readme/provider-onboarding.svg

  • Network accessline 1
    <svg xmlns="http://www.w3.org/2000/svg" width="1200" height="336" viewBox="0 0 1200 336" role="img" aria-labelledby="title desc">

package-lock.json

  • Network accessline 13
    "node_modules/@asamuzakjp/css-color": {       "version": "3.2.0",       "resolved": "https://registry.npmmirror.com/@asamuzakjp/css-color/-/css-color-3.2.0.tgz",
  • Network accessline 14
    "version": "3.2.0",       "resolved": "https://registry.npmmirror.com/@asamuzakjp/css-color/-/css-color-3.2.0.tgz",       "integrity": "sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw==",
  • Network accessline 15
    "resolved": "https://registry.npmmirror.com/@asamuzakjp/css-color/-/css-color-3.2.0.tgz",
  • Network accessline 26
    "node_modules/@csstools/color-helpers": {       "version": "5.1.0",       "resolved": "https://registry.npmmirror.com/@csstools/color-helpers/-/color-helpers-5.1.0.tgz",
  • Network accessline 27
    "version": "5.1.0",       "resolved": "https://registry.npmmirror.com/@csstools/color-helpers/-/color-helpers-5.1.0.tgz",       "integrity": "sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==",
  • Network accessline 28
    "resolved": "https://registry.npmmirror.com/@csstools/color-helpers/-/color-helpers-5.1.0.tgz",
  • Network accessline 31
    {           "type": "github",           "url": "https://github.com/sponsors/csstools"
  • Network accessline 32
    "type": "github",           "url": "https://github.com/sponsors/csstools"         },
  • Network accessline 33
    "url": "https://github.com/sponsors/csstools"
  • Network accessline 35
    {           "type": "opencollective",           "url": "https://opencollective.com/csstools"
  • Network accessline 36
    "type": "opencollective",           "url": "https://opencollective.com/csstools"         }
  • Network accessline 37
    "url": "https://opencollective.com/csstools"
  • Network accessline 45
    "node_modules/@csstools/css-calc": {       "version": "2.1.4",       "resolved": "https://registry.npmmirror.com/@csstools/css-calc/-/css-calc-2.1.4.tgz",
  • Network accessline 46
    "version": "2.1.4",       "resolved": "https://registry.npmmirror.com/@csstools/css-calc/-/css-calc-2.1.4.tgz",       "integrity": "sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==",
  • Network accessline 47
    "resolved": "https://registry.npmmirror.com/@csstools/css-calc/-/css-calc-2.1.4.tgz",
  • Network accessline 50
    {           "type": "github",           "url": "https://github.com/sponsors/csstools"
  • Network accessline 51
    "type": "github",           "url": "https://github.com/sponsors/csstools"         },
  • Network accessline 52
    "url": "https://github.com/sponsors/csstools"
  • Network accessline 54
    {           "type": "opencollective",           "url": "https://opencollective.com/csstools"
  • Network accessline 55
    "type": "opencollective",           "url": "https://opencollective.com/csstools"         }
  • Network accessline 56
    "url": "https://opencollective.com/csstools"
  • Network accessline 68
    "node_modules/@csstools/css-color-parser": {       "version": "3.1.0",       "resolved": "https://registry.npmmirror.com/@csstools/css-color-parser/-/css-color-parser-3.1.0.tgz",
  • Network accessline 69
    "version": "3.1.0",       "resolved": "https://registry.npmmirror.com/@csstools/css-color-parser/-/css-color-parser-3.1.0.tgz",       "integrity": "sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaT
  • Network accessline 70
    "resolved": "https://registry.npmmirror.com/@csstools/css-color-parser/-/css-color-parser-3.1.0.tgz",
  • Network accessline 73
    {           "type": "github",           "url": "https://github.com/sponsors/csstools"
  • Network accessline 74
    "type": "github",           "url": "https://github.com/sponsors/csstools"         },
  • Network accessline 75
    "url": "https://github.com/sponsors/csstools"
  • Network accessline 77
    {           "type": "opencollective",           "url": "https://opencollective.com/csstools"
  • Network accessline 78
    "type": "opencollective",           "url": "https://opencollective.com/csstools"         }
  • Network accessline 79
    "url": "https://opencollective.com/csstools"
  • Network accessline 95
    "node_modules/@csstools/css-parser-algorithms": {       "version": "3.0.5",       "resolved": "https://registry.npmmirror.com/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz",
  • Network accessline 96
    "version": "3.0.5",       "resolved": "https://registry.npmmirror.com/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz",       "integrity": "sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpM
  • Network accessline 97
    "resolved": "https://registry.npmmirror.com/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz",
  • Network accessline 100
    {           "type": "github",           "url": "https://github.com/sponsors/csstools"
  • Network accessline 101
    "type": "github",           "url": "https://github.com/sponsors/csstools"         },
  • Network accessline 102
    "url": "https://github.com/sponsors/csstools"
  • Network accessline 104
    {           "type": "opencollective",           "url": "https://opencollective.com/csstools"
  • Network accessline 105
    "type": "opencollective",           "url": "https://opencollective.com/csstools"         }
  • Network accessline 106
    "url": "https://opencollective.com/csstools"
  • Network accessline 117
    "node_modules/@csstools/css-tokenizer": {       "version": "3.0.4",       "resolved": "https://registry.npmmirror.com/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz",
  • Network accessline 118
    "version": "3.0.4",       "resolved": "https://registry.npmmirror.com/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz",       "integrity": "sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==",
  • Network accessline 119
    "resolved": "https://registry.npmmirror.com/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz",
  • Network accessline 122
    {           "type": "github",           "url": "https://github.com/sponsors/csstools"
  • Network accessline 123
    "type": "github",           "url": "https://github.com/sponsors/csstools"         },
  • Network accessline 124
    "url": "https://github.com/sponsors/csstools"
  • Network accessline 126
    {           "type": "opencollective",           "url": "https://opencollective.com/csstools"
  • Network accessline 127
    "type": "opencollective",           "url": "https://opencollective.com/csstools"         }
  • Network accessline 128
    "url": "https://opencollective.com/csstools"
  • Network accessline 136
    "node_modules/agent-base": {       "version": "7.1.4",       "resolved": "https://registry.npmmirror.com/agent-base/-/agent-base-7.1.4.tgz",
  • Network accessline 137
    "version": "7.1.4",       "resolved": "https://registry.npmmirror.com/agent-base/-/agent-base-7.1.4.tgz",       "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==",
  • Network accessline 138
    "resolved": "https://registry.npmmirror.com/agent-base/-/agent-base-7.1.4.tgz",
  • Network accessline 145
    "node_modules/asynckit": {       "version": "0.4.0",       "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz",
  • Network accessline 146
    "version": "0.4.0",       "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz",       "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
  • Network accessline 147
    "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz",
  • Network accessline 151
    "node_modules/boolbase": {       "version": "1.0.0",       "resolved": "https://registry.npmmirror.com/boolbase/-/boolbase-1.0.0.tgz",
  • Network accessline 152
    "version": "1.0.0",       "resolved": "https://registry.npmmirror.com/boolbase/-/boolbase-1.0.0.tgz",       "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==",
  • Network accessline 153
    "resolved": "https://registry.npmmirror.com/boolbase/-/boolbase-1.0.0.tgz",
  • Network accessline 157
    "node_modules/call-bind-apply-helpers": {       "version": "1.0.2",       "resolved": "https://registry.npmmirror.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
  • Network accessline 158
    "version": "1.0.2",       "resolved": "https://registry.npmmirror.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",       "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTO
  • Network accessline 159
    "resolved": "https://registry.npmmirror.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
  • Network accessline 170
    "node_modules/cheerio": {       "version": "1.2.0",       "resolved": "https://registry.npmmirror.com/cheerio/-/cheerio-1.2.0.tgz",
  • Network accessline 171
    "version": "1.2.0",       "resolved": "https://registry.npmmirror.com/cheerio/-/cheerio-1.2.0.tgz",       "integrity": "sha512-WDrybc/gKFpTYQutKIK6UvfcuxijIZfMfXaYm8NMsPQxSYvf+13fXUJ4rztGGbJcBQ/GF55gvrZ0Bc0bj/mqvg==",
  • Network accessline 172
    "resolved": "https://registry.npmmirror.com/cheerio/-/cheerio-1.2.0.tgz",
  • Network accessline 190
    },       "funding": {         "url": "https://github.com/cheeriojs/cheerio?sponsor=1"
  • Network accessline 191
    "funding": {         "url": "https://github.com/cheeriojs/cheerio?sponsor=1"       }
  • Network accessline 192
    "url": "https://github.com/cheeriojs/cheerio?sponsor=1"
  • Network accessline 195
    "node_modules/cheerio-select": {       "version": "2.1.0",       "resolved": "https://registry.npmmirror.com/cheerio-select/-/cheerio-select-2.1.0.tgz",
  • Network accessline 196
    "version": "2.1.0",       "resolved": "https://registry.npmmirror.com/cheerio-select/-/cheerio-select-2.1.0.tgz",       "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==",
  • Network accessline 197
    "resolved": "https://registry.npmmirror.com/cheerio-select/-/cheerio-select-2.1.0.tgz",
  • Network accessline 207
    },       "funding": {         "url": "https://github.com/sponsors/fb55"
  • Network accessline 208
    "funding": {         "url": "https://github.com/sponsors/fb55"       }
  • Network accessline 209
    "url": "https://github.com/sponsors/fb55"
  • Network accessline 212
    "node_modules/combined-stream": {       "version": "1.0.8",       "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz",
  • Network accessline 213
    "version": "1.0.8",       "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz",       "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
  • Network accessline 214
    "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz",
  • Network accessline 224
    "node_modules/commander": {       "version": "12.1.0",       "resolved": "https://registry.npmmirror.com/commander/-/commander-12.1.0.tgz",
  • Network accessline 225
    "version": "12.1.0",       "resolved": "https://registry.npmmirror.com/commander/-/commander-12.1.0.tgz",       "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==",
  • Network accessline 226
    "resolved": "https://registry.npmmirror.com/commander/-/commander-12.1.0.tgz",
  • Network accessline 233
    "node_modules/css-select": {       "version": "5.2.2",       "resolved": "https://registry.npmmirror.com/css-select/-/css-select-5.2.2.tgz",
  • Network accessline 234
    "version": "5.2.2",       "resolved": "https://registry.npmmirror.com/css-select/-/css-select-5.2.2.tgz",       "integrity": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==",
  • Network accessline 235
    "resolved": "https://registry.npmmirror.com/css-select/-/css-select-5.2.2.tgz",
  • Network accessline 244
    },       "funding": {         "url": "https://github.com/sponsors/fb55"
  • Network accessline 245
    "funding": {         "url": "https://github.com/sponsors/fb55"       }
  • Network accessline 246
    "url": "https://github.com/sponsors/fb55"
  • Network accessline 249
    "node_modules/css-what": {       "version": "6.2.2",       "resolved": "https://registry.npmmirror.com/css-what/-/css-what-6.2.2.tgz",
  • Network accessline 250
    "version": "6.2.2",       "resolved": "https://registry.npmmirror.com/css-what/-/css-what-6.2.2.tgz",       "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==",
  • Network accessline 251
    "resolved": "https://registry.npmmirror.com/css-what/-/css-what-6.2.2.tgz",
  • Network accessline 256
    },       "funding": {         "url": "https://github.com/sponsors/fb55"
  • Network accessline 257
    "funding": {         "url": "https://github.com/sponsors/fb55"       }
  • Network accessline 258
    "url": "https://github.com/sponsors/fb55"
  • Network accessline 261
    "node_modules/cssstyle": {       "version": "4.6.0",       "resolved": "https://registry.npmmirror.com/cssstyle/-/cssstyle-4.6.0.tgz",
  • Network accessline 262
    "version": "4.6.0",       "resolved": "https://registry.npmmirror.com/cssstyle/-/cssstyle-4.6.0.tgz",       "integrity": "sha512-2z+rWdzbbSZv6/rhtvzvqeZQHrBaqgogqt85sqFNbabZOuFbCVFb8kPeEtZjiKkbrm395irpNKiYeFeLiQnFPg==",
  • Network accessline 263
    "resolved": "https://registry.npmmirror.com/cssstyle/-/cssstyle-4.6.0.tgz",
  • Network accessline 274
    "node_modules/cssstyle/node_modules/rrweb-cssom": {       "version": "0.8.0",       "resolved": "https://registry.npmmirror.com/rrweb-cssom/-/rrweb-cssom-0.8.0.tgz",
  • Network accessline 275
    "version": "0.8.0",       "resolved": "https://registry.npmmirror.com/rrweb-cssom/-/rrweb-cssom-0.8.0.tgz",       "integrity": "sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==",
  • Network accessline 276
    "resolved": "https://registry.npmmirror.com/rrweb-cssom/-/rrweb-cssom-0.8.0.tgz",
  • Network accessline 280
    "node_modules/data-urls": {       "version": "5.0.0",       "resolved": "https://registry.npmmirror.com/data-urls/-/data-urls-5.0.0.tgz",
  • Network accessline 281
    "version": "5.0.0",       "resolved": "https://registry.npmmirror.com/data-urls/-/data-urls-5.0.0.tgz",       "integrity": "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==",
  • Network accessline 282
    "resolved": "https://registry.npmmirror.com/data-urls/-/data-urls-5.0.0.tgz",
  • Network accessline 293
    "node_modules/debug": {       "version": "4.4.3",       "resolved": "https://registry.npmmirror.com/debug/-/debug-4.4.3.tgz",
  • Network accessline 294
    "version": "4.4.3",       "resolved": "https://registry.npmmirror.com/debug/-/debug-4.4.3.tgz",       "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
  • Network accessline 295
    "resolved": "https://registry.npmmirror.com/debug/-/debug-4.4.3.tgz",
  • Network accessline 310
    "node_modules/decimal.js": {       "version": "10.6.0",       "resolved": "https://registry.npmmirror.com/decimal.js/-/decimal.js-10.6.0.tgz",
  • Network accessline 311
    "version": "10.6.0",       "resolved": "https://registry.npmmirror.com/decimal.js/-/decimal.js-10.6.0.tgz",       "integrity": "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==",
  • Network accessline 312
    "resolved": "https://registry.npmmirror.com/decimal.js/-/decimal.js-10.6.0.tgz",
  • Network accessline 316
    "node_modules/delayed-stream": {       "version": "1.0.0",       "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz",
  • Network accessline 317
    "version": "1.0.0",       "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz",       "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
  • Network accessline 318
    "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz",
  • Network accessline 325
    "node_modules/dom-serializer": {       "version": "2.0.0",       "resolved": "https://registry.npmmirror.com/dom-serializer/-/dom-serializer-2.0.0.tgz",
  • Network accessline 326
    "version": "2.0.0",       "resolved": "https://registry.npmmirror.com/dom-serializer/-/dom-serializer-2.0.0.tgz",       "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==",
  • Network accessline 327
    "resolved": "https://registry.npmmirror.com/dom-serializer/-/dom-serializer-2.0.0.tgz",
  • Network accessline 334
    },       "funding": {         "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
  • Network accessline 335
    "funding": {         "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"       }
  • Network accessline 336
    "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
  • Network accessline 339
    "node_modules/domelementtype": {       "version": "2.3.0",       "resolved": "https://registry.npmmirror.com/domelementtype/-/domelementtype-2.3.0.tgz",
  • Network accessline 340
    "version": "2.3.0",       "resolved": "https://registry.npmmirror.com/domelementtype/-/domelementtype-2.3.0.tgz",       "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
  • Network accessline 341
    "resolved": "https://registry.npmmirror.com/domelementtype/-/domelementtype-2.3.0.tgz",
  • Network accessline 344
    {           "type": "github",           "url": "https://github.com/sponsors/fb55"
  • Network accessline 345
    "type": "github",           "url": "https://github.com/sponsors/fb55"         }
  • Network accessline 346
    "url": "https://github.com/sponsors/fb55"
  • Network accessline 351
    "node_modules/domhandler": {       "version": "5.0.3",       "resolved": "https://registry.npmmirror.com/domhandler/-/domhandler-5.0.3.tgz",
  • Network accessline 352
    "version": "5.0.3",       "resolved": "https://registry.npmmirror.com/domhandler/-/domhandler-5.0.3.tgz",       "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==",
  • Network accessline 353
    "resolved": "https://registry.npmmirror.com/domhandler/-/domhandler-5.0.3.tgz",
  • Network accessline 361
    },       "funding": {         "url": "https://github.com/fb55/domhandler?sponsor=1"
  • Network accessline 362
    "funding": {         "url": "https://github.com/fb55/domhandler?sponsor=1"       }
  • Network accessline 363
    "url": "https://github.com/fb55/domhandler?sponsor=1"
  • Network accessline 366
    "node_modules/domutils": {       "version": "3.2.2",       "resolved": "https://registry.npmmirror.com/domutils/-/domutils-3.2.2.tgz",
  • Network accessline 367
    "version": "3.2.2",       "resolved": "https://registry.npmmirror.com/domutils/-/domutils-3.2.2.tgz",       "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==",
  • Network accessline 368
    "resolved": "https://registry.npmmirror.com/domutils/-/domutils-3.2.2.tgz",
  • Network accessline 375
    },       "funding": {         "url": "https://github.com/fb55/domutils?sponsor=1"
  • Network accessline 376
    "funding": {         "url": "https://github.com/fb55/domutils?sponsor=1"       }
  • Network accessline 377
    "url": "https://github.com/fb55/domutils?sponsor=1"
  • Network accessline 380
    "node_modules/dunder-proto": {       "version": "1.0.1",       "resolved": "https://registry.npmmirror.com/dunder-proto/-/dunder-proto-1.0.1.tgz",
  • Network accessline 381
    "version": "1.0.1",       "resolved": "https://registry.npmmirror.com/dunder-proto/-/dunder-proto-1.0.1.tgz",       "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
  • Network accessline 382
    "resolved": "https://registry.npmmirror.com/dunder-proto/-/dunder-proto-1.0.1.tgz",
  • Network accessline 394
    "node_modules/encoding-sniffer": {       "version": "0.2.1",       "resolved": "https://registry.npmmirror.com/encoding-sniffer/-/encoding-sniffer-0.2.1.tgz",
  • Network accessline 395
    "version": "0.2.1",       "resolved": "https://registry.npmmirror.com/encoding-sniffer/-/encoding-sniffer-0.2.1.tgz",       "integrity": "sha512-5gvq20T6vfpekVtqrYQsSCFZ1wEg5+wW0/QaZMWkFr6BqD3NfKs0rLCx4rrVlSWJeZb5NBJgVLswK/w2MWU+Gw==",
  • Network accessline 396
    "resolved": "https://registry.npmmirror.com/encoding-sniffer/-/encoding-sniffer-0.2.1.tgz",
  • Network accessline 402
    },       "funding": {         "url": "https://github.com/fb55/encoding-sniffer?sponsor=1"
  • Network accessline 403
    "funding": {         "url": "https://github.com/fb55/encoding-sniffer?sponsor=1"       }
  • Network accessline 404
    "url": "https://github.com/fb55/encoding-sniffer?sponsor=1"
  • Network accessline 407
    "node_modules/entities": {       "version": "4.5.0",       "resolved": "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz",
  • Network accessline 408
    "version": "4.5.0",       "resolved": "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz",       "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
  • Network accessline 409
    "resolved": "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz",
  • Network accessline 414
    },       "funding": {         "url": "https://github.com/fb55/entities?sponsor=1"
  • Network accessline 415
    "funding": {         "url": "https://github.com/fb55/entities?sponsor=1"       }
  • Network accessline 416
    "url": "https://github.com/fb55/entities?sponsor=1"
  • Network accessline 419
    "node_modules/es-define-property": {       "version": "1.0.1",       "resolved": "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.1.tgz",
  • Network accessline 420
    "version": "1.0.1",       "resolved": "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.1.tgz",       "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
  • Network accessline 421
    "resolved": "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.1.tgz",
  • Network accessline 428
    "node_modules/es-errors": {       "version": "1.3.0",       "resolved": "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz",
  • Network accessline 429
    "version": "1.3.0",       "resolved": "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz",       "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
  • Network accessline 430
    "resolved": "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz",
  • Network accessline 437
    "node_modules/es-object-atoms": {       "version": "1.1.1",       "resolved": "https://registry.npmmirror.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
  • Network accessline 438
    "version": "1.1.1",       "resolved": "https://registry.npmmirror.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz",       "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
  • Network accessline 439
    "resolved": "https://registry.npmmirror.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
  • Network accessline 449
    "node_modules/es-set-tostringtag": {       "version": "2.1.0",       "resolved": "https://registry.npmmirror.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
  • Network accessline 450
    "version": "2.1.0",       "resolved": "https://registry.npmmirror.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",       "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==",
  • Network accessline 451
    "resolved": "https://registry.npmmirror.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
  • Network accessline 464
    "node_modules/form-data": {       "version": "4.0.5",       "resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.5.tgz",
  • Network accessline 465
    "version": "4.0.5",       "resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.5.tgz",       "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==",
  • Network accessline 466
    "resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.5.tgz",
  • Network accessline 480
    "node_modules/function-bind": {       "version": "1.1.2",       "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz",
  • Network accessline 481
    "version": "1.1.2",       "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz",       "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
  • Network accessline 482
    "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz",
  • Network accessline 484
    "license": "MIT",       "funding": {         "url": "https://github.com/sponsors/ljharb"
  • Network accessline 485
    "funding": {         "url": "https://github.com/sponsors/ljharb"       }
  • Network accessline 486
    "url": "https://github.com/sponsors/ljharb"
  • Network accessline 489
    "node_modules/get-intrinsic": {       "version": "1.3.0",       "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
  • Network accessline 490
    "version": "1.3.0",       "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz",       "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
  • Network accessline 491
    "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
  • Network accessline 508
    },       "funding": {         "url": "https://github.com/sponsors/ljharb"
  • Network accessline 509
    "funding": {         "url": "https://github.com/sponsors/ljharb"       }
  • Network accessline 510
    "url": "https://github.com/sponsors/ljharb"
  • Network accessline 513
    "node_modules/get-proto": {       "version": "1.0.1",       "resolved": "https://registry.npmmirror.com/get-proto/-/get-proto-1.0.1.tgz",
  • Network accessline 514
    "version": "1.0.1",       "resolved": "https://registry.npmmirror.com/get-proto/-/get-proto-1.0.1.tgz",       "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
  • Network accessline 515
    "resolved": "https://registry.npmmirror.com/get-proto/-/get-proto-1.0.1.tgz",
  • Network accessline 526
    "node_modules/gopd": {       "version": "1.2.0",       "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.2.0.tgz",
  • Network accessline 527
    "version": "1.2.0",       "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.2.0.tgz",       "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
  • Network accessline 528
    "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.2.0.tgz",
  • Network accessline 533
    },       "funding": {         "url": "https://github.com/sponsors/ljharb"
  • Network accessline 534
    "funding": {         "url": "https://github.com/sponsors/ljharb"       }
  • Network accessline 535
    "url": "https://github.com/sponsors/ljharb"
  • Network accessline 538
    "node_modules/has-symbols": {       "version": "1.1.0",       "resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.1.0.tgz",
  • Network accessline 539
    "version": "1.1.0",       "resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.1.0.tgz",       "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
  • Network accessline 540
    "resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.1.0.tgz",
  • Network accessline 545
    },       "funding": {         "url": "https://github.com/sponsors/ljharb"
  • Network accessline 546
    "funding": {         "url": "https://github.com/sponsors/ljharb"       }
  • Network accessline 547
    "url": "https://github.com/sponsors/ljharb"
  • Network accessline 550
    "node_modules/has-tostringtag": {       "version": "1.0.2",       "resolved": "https://registry.npmmirror.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
  • Network accessline 551
    "version": "1.0.2",       "resolved": "https://registry.npmmirror.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz",       "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
  • Network accessline 552
    "resolved": "https://registry.npmmirror.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
  • Network accessline 560
    },       "funding": {         "url": "https://github.com/sponsors/ljharb"
  • Network accessline 561
    "funding": {         "url": "https://github.com/sponsors/ljharb"       }
  • Network accessline 562
    "url": "https://github.com/sponsors/ljharb"
  • Network accessline 565
    "node_modules/hasown": {       "version": "2.0.2",       "resolved": "https://registry.npmmirror.com/hasown/-/hasown-2.0.2.tgz",
  • Network accessline 566
    "version": "2.0.2",       "resolved": "https://registry.npmmirror.com/hasown/-/hasown-2.0.2.tgz",       "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
  • Network accessline 567
    "resolved": "https://registry.npmmirror.com/hasown/-/hasown-2.0.2.tgz",
  • Network accessline 577
    "node_modules/html-encoding-sniffer": {       "version": "4.0.0",       "resolved": "https://registry.npmmirror.com/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz",
  • Network accessline 578
    "version": "4.0.0",       "resolved": "https://registry.npmmirror.com/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz",       "integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTg
  • Network accessline 579
    "resolved": "https://registry.npmmirror.com/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz",
  • Network accessline 589
    "node_modules/htmlparser2": {       "version": "10.1.0",       "resolved": "https://registry.npmmirror.com/htmlparser2/-/htmlparser2-10.1.0.tgz",
  • Network accessline 590
    "version": "10.1.0",       "resolved": "https://registry.npmmirror.com/htmlparser2/-/htmlparser2-10.1.0.tgz",       "integrity": "sha512-VTZkM9GWRAtEpveh7MSF6SjjrpNVNNVJfFup7xTY3UpFtm67foy9HDVXneLtFVt4pMz5kZtgNcvCniNFb1hlEQ==",
  • Network accessline 591
    "resolved": "https://registry.npmmirror.com/htmlparser2/-/htmlparser2-10.1.0.tgz",
  • Network accessline 592
    "integrity": "sha512-VTZkM9GWRAtEpveh7MSF6SjjrpNVNNVJfFup7xTY3UpFtm67foy9HDVXneLtFVt4pMz5kZtgNcvCniNFb1hlEQ==",       "funding": [         "https://github.com/fb55/htmlparser2?sponsor=1",
  • Network accessline 593
    "funding": [         "https://github.com/fb55/htmlparser2?sponsor=1",         {
  • Network accessline 594
    "https://github.com/fb55/htmlparser2?sponsor=1",
  • Network accessline 595
    {           "type": "github",           "url": "https://github.com/sponsors/fb55"
  • Network accessline 596
    "type": "github",           "url": "https://github.com/sponsors/fb55"         }
  • Network accessline 597
    "url": "https://github.com/sponsors/fb55"
  • Network accessline 608
    "node_modules/htmlparser2/node_modules/entities": {       "version": "7.0.1",       "resolved": "https://registry.npmmirror.com/entities/-/entities-7.0.1.tgz",
  • Network accessline 609
    "version": "7.0.1",       "resolved": "https://registry.npmmirror.com/entities/-/entities-7.0.1.tgz",       "integrity": "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==",
  • Network accessline 610
    "resolved": "https://registry.npmmirror.com/entities/-/entities-7.0.1.tgz",
  • Network accessline 615
    },       "funding": {         "url": "https://github.com/fb55/entities?sponsor=1"
  • Network accessline 616
    "funding": {         "url": "https://github.com/fb55/entities?sponsor=1"       }
  • Network accessline 617
    "url": "https://github.com/fb55/entities?sponsor=1"
  • Network accessline 620
    "node_modules/http-proxy-agent": {       "version": "7.0.2",       "resolved": "https://registry.npmmirror.com/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz",
  • Network accessline 621
    "version": "7.0.2",       "resolved": "https://registry.npmmirror.com/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz",       "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==",
  • Network accessline 622
    "resolved": "https://registry.npmmirror.com/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz",
  • Network accessline 633
    "node_modules/https-proxy-agent": {       "version": "7.0.6",       "resolved": "https://registry.npmmirror.com/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz",
  • Network accessline 634
    "version": "7.0.6",       "resolved": "https://registry.npmmirror.com/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz",       "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==",
  • Network accessline 635
    "resolved": "https://registry.npmmirror.com/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz",
  • Network accessline 646
    "node_modules/iconv-lite": {       "version": "0.6.3",       "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.6.3.tgz",
  • Network accessline 647
    "version": "0.6.3",       "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.6.3.tgz",       "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
  • Network accessline 648
    "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.6.3.tgz",
  • Network accessline 658
    "node_modules/is-potential-custom-element-name": {       "version": "1.0.1",       "resolved": "https://registry.npmmirror.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz",
  • Network accessline 659
    "version": "1.0.1",       "resolved": "https://registry.npmmirror.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz",       "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64
  • Network accessline 660
    "resolved": "https://registry.npmmirror.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz",
  • Network accessline 664
    "node_modules/jsdom": {       "version": "24.1.3",       "resolved": "https://registry.npmmirror.com/jsdom/-/jsdom-24.1.3.tgz",
  • Network accessline 665
    "version": "24.1.3",       "resolved": "https://registry.npmmirror.com/jsdom/-/jsdom-24.1.3.tgz",       "integrity": "sha512-MyL55p3Ut3cXbeBEG7Hcv0mVM8pp8PBNWxRqchZnSfAiES1v1mRnMeFfaHWIPULpwsYfvO+ZmMZz5tGCnjzDUQ==",
  • Network accessline 666
    "resolved": "https://registry.npmmirror.com/jsdom/-/jsdom-24.1.3.tgz",
  • Network accessline 704
    "node_modules/lru-cache": {       "version": "10.4.3",       "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-10.4.3.tgz",
  • Network accessline 705
    "version": "10.4.3",       "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-10.4.3.tgz",       "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
  • Network accessline 706
    "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-10.4.3.tgz",
  • Network accessline 710
    "node_modules/math-intrinsics": {       "version": "1.1.0",       "resolved": "https://registry.npmmirror.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
  • Network accessline 711
    "version": "1.1.0",       "resolved": "https://registry.npmmirror.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz",       "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
  • Network accessline 712
    "resolved": "https://registry.npmmirror.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
  • Network accessline 719
    "node_modules/mime-db": {       "version": "1.52.0",       "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz",
  • Network accessline 720
    "version": "1.52.0",       "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz",       "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
  • Network accessline 721
    "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz",
  • Network accessline 728
    "node_modules/mime-types": {       "version": "2.1.35",       "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz",
  • Network accessline 729
    "version": "2.1.35",       "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz",       "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
  • Network accessline 730
    "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz",
  • Network accessline 740
    "node_modules/ms": {       "version": "2.1.3",       "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz",
  • Network accessline 741
    "version": "2.1.3",       "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz",       "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
  • Network accessline 742
    "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz",
  • Network accessline 746
    "node_modules/nth-check": {       "version": "2.1.1",       "resolved": "https://registry.npmmirror.com/nth-check/-/nth-check-2.1.1.tgz",
  • Network accessline 747
    "version": "2.1.1",       "resolved": "https://registry.npmmirror.com/nth-check/-/nth-check-2.1.1.tgz",       "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==",
  • Network accessline 748
    "resolved": "https://registry.npmmirror.com/nth-check/-/nth-check-2.1.1.tgz",
  • Network accessline 753
    },       "funding": {         "url": "https://github.com/fb55/nth-check?sponsor=1"
  • Network accessline 754
    "funding": {         "url": "https://github.com/fb55/nth-check?sponsor=1"       }
  • Network accessline 755
    "url": "https://github.com/fb55/nth-check?sponsor=1"
  • Network accessline 758
    "node_modules/nwsapi": {       "version": "2.2.23",       "resolved": "https://registry.npmmirror.com/nwsapi/-/nwsapi-2.2.23.tgz",
  • Network accessline 759
    "version": "2.2.23",       "resolved": "https://registry.npmmirror.com/nwsapi/-/nwsapi-2.2.23.tgz",       "integrity": "sha512-7wfH4sLbt4M0gCDzGE6vzQBo0bfTKjU7Sfpqy/7gs1qBfYz2vEJH6vXcBKpO3+6Yu1telwd0t9HpyOoLEQQbIQ==",
  • Network accessline 760
    "resolved": "https://registry.npmmirror.com/nwsapi/-/nwsapi-2.2.23.tgz",
  • Network accessline 764
    "node_modules/parse5": {       "version": "7.3.0",       "resolved": "https://registry.npmmirror.com/parse5/-/parse5-7.3.0.tgz",
  • Network accessline 765
    "version": "7.3.0",       "resolved": "https://registry.npmmirror.com/parse5/-/parse5-7.3.0.tgz",       "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==",
  • Network accessline 766
    "resolved": "https://registry.npmmirror.com/parse5/-/parse5-7.3.0.tgz",
  • Network accessline 771
    },       "funding": {         "url": "https://github.com/inikulin/parse5?sponsor=1"
  • Network accessline 772
    "funding": {         "url": "https://github.com/inikulin/parse5?sponsor=1"       }
  • Network accessline 773
    "url": "https://github.com/inikulin/parse5?sponsor=1"
  • Network accessline 776
    "node_modules/parse5-htmlparser2-tree-adapter": {       "version": "7.1.0",       "resolved": "https://registry.npmmirror.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz",
  • Network accessline 777
    "version": "7.1.0",       "resolved": "https://registry.npmmirror.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz",       "integrity": "sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8eue
  • Network accessline 778
    "resolved": "https://registry.npmmirror.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz",
  • Network accessline 784
    },       "funding": {         "url": "https://github.com/inikulin/parse5?sponsor=1"
  • Network accessline 785
    "funding": {         "url": "https://github.com/inikulin/parse5?sponsor=1"       }
  • Network accessline 786
    "url": "https://github.com/inikulin/parse5?sponsor=1"
  • Network accessline 789
    "node_modules/parse5-parser-stream": {       "version": "7.1.2",       "resolved": "https://registry.npmmirror.com/parse5-parser-stream/-/parse5-parser-stream-7.1.2.tgz",
  • Network accessline 790
    "version": "7.1.2",       "resolved": "https://registry.npmmirror.com/parse5-parser-stream/-/parse5-parser-stream-7.1.2.tgz",       "integrity": "sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow=
  • Network accessline 791
    "resolved": "https://registry.npmmirror.com/parse5-parser-stream/-/parse5-parser-stream-7.1.2.tgz",
  • Network accessline 796
    },       "funding": {         "url": "https://github.com/inikulin/parse5?sponsor=1"
  • Network accessline 797
    "funding": {         "url": "https://github.com/inikulin/parse5?sponsor=1"       }
  • Network accessline 798
    "url": "https://github.com/inikulin/parse5?sponsor=1"
  • Network accessline 801
    "node_modules/parse5/node_modules/entities": {       "version": "6.0.1",       "resolved": "https://registry.npmmirror.com/entities/-/entities-6.0.1.tgz",
  • Network accessline 802
    "version": "6.0.1",       "resolved": "https://registry.npmmirror.com/entities/-/entities-6.0.1.tgz",       "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==",
  • Network accessline 803
    "resolved": "https://registry.npmmirror.com/entities/-/entities-6.0.1.tgz",
  • Network accessline 808
    },       "funding": {         "url": "https://github.com/fb55/entities?sponsor=1"
  • Network accessline 809
    "funding": {         "url": "https://github.com/fb55/entities?sponsor=1"       }
  • Network accessline 810
    "url": "https://github.com/fb55/entities?sponsor=1"
  • Network accessline 813
    "node_modules/psl": {       "version": "1.15.0",       "resolved": "https://registry.npmmirror.com/psl/-/psl-1.15.0.tgz",
  • Network accessline 814
    "version": "1.15.0",       "resolved": "https://registry.npmmirror.com/psl/-/psl-1.15.0.tgz",       "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==",
  • Network accessline 815
    "resolved": "https://registry.npmmirror.com/psl/-/psl-1.15.0.tgz",
  • Network accessline 820
    },       "funding": {         "url": "https://github.com/sponsors/lupomontero"
  • Network accessline 821
    "funding": {         "url": "https://github.com/sponsors/lupomontero"       }
  • Network accessline 822
    "url": "https://github.com/sponsors/lupomontero"
  • Network accessline 825
    "node_modules/punycode": {       "version": "2.3.1",       "resolved": "https://registry.npmmirror.com/punycode/-/punycode-2.3.1.tgz",
  • Network accessline 826
    "version": "2.3.1",       "resolved": "https://registry.npmmirror.com/punycode/-/punycode-2.3.1.tgz",       "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
  • Network accessline 827
    "resolved": "https://registry.npmmirror.com/punycode/-/punycode-2.3.1.tgz",
  • Network accessline 834
    "node_modules/querystringify": {       "version": "2.2.0",       "resolved": "https://registry.npmmirror.com/querystringify/-/querystringify-2.2.0.tgz",
  • Network accessline 835
    "version": "2.2.0",       "resolved": "https://registry.npmmirror.com/querystringify/-/querystringify-2.2.0.tgz",       "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==",
  • Network accessline 836
    "resolved": "https://registry.npmmirror.com/querystringify/-/querystringify-2.2.0.tgz",
  • Network accessline 840
    "node_modules/requires-port": {       "version": "1.0.0",       "resolved": "https://registry.npmmirror.com/requires-port/-/requires-port-1.0.0.tgz",
  • Network accessline 841
    "version": "1.0.0",       "resolved": "https://registry.npmmirror.com/requires-port/-/requires-port-1.0.0.tgz",       "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==",
  • Network accessline 842
    "resolved": "https://registry.npmmirror.com/requires-port/-/requires-port-1.0.0.tgz",
  • Network accessline 846
    "node_modules/rrweb-cssom": {       "version": "0.7.1",       "resolved": "https://registry.npmmirror.com/rrweb-cssom/-/rrweb-cssom-0.7.1.tgz",
  • Network accessline 847
    "version": "0.7.1",       "resolved": "https://registry.npmmirror.com/rrweb-cssom/-/rrweb-cssom-0.7.1.tgz",       "integrity": "sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==",
  • Network accessline 848
    "resolved": "https://registry.npmmirror.com/rrweb-cssom/-/rrweb-cssom-0.7.1.tgz",
  • Network accessline 852
    "node_modules/safer-buffer": {       "version": "2.1.2",       "resolved": "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz",
  • Network accessline 853
    "version": "2.1.2",       "resolved": "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz",       "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
  • Network accessline 854
    "resolved": "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz",
  • Network accessline 858
    "node_modules/saxes": {       "version": "6.0.0",       "resolved": "https://registry.npmmirror.com/saxes/-/saxes-6.0.0.tgz",
  • Network accessline 859
    "version": "6.0.0",       "resolved": "https://registry.npmmirror.com/saxes/-/saxes-6.0.0.tgz",       "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==",
  • Network accessline 860
    "resolved": "https://registry.npmmirror.com/saxes/-/saxes-6.0.0.tgz",
  • Network accessline 870
    "node_modules/symbol-tree": {       "version": "3.2.4",       "resolved": "https://registry.npmmirror.com/symbol-tree/-/symbol-tree-3.2.4.tgz",
  • Network accessline 871
    "version": "3.2.4",       "resolved": "https://registry.npmmirror.com/symbol-tree/-/symbol-tree-3.2.4.tgz",       "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==",
  • Network accessline 872
    "resolved": "https://registry.npmmirror.com/symbol-tree/-/symbol-tree-3.2.4.tgz",
  • Network accessline 876
    "node_modules/tough-cookie": {       "version": "4.1.4",       "resolved": "https://registry.npmmirror.com/tough-cookie/-/tough-cookie-4.1.4.tgz",
  • Network accessline 877
    "version": "4.1.4",       "resolved": "https://registry.npmmirror.com/tough-cookie/-/tough-cookie-4.1.4.tgz",       "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==",
  • Network accessline 878
    "resolved": "https://registry.npmmirror.com/tough-cookie/-/tough-cookie-4.1.4.tgz",
  • Network accessline 891
    "node_modules/tr46": {       "version": "5.1.1",       "resolved": "https://registry.npmmirror.com/tr46/-/tr46-5.1.1.tgz",
  • Network accessline 892
    "version": "5.1.1",       "resolved": "https://registry.npmmirror.com/tr46/-/tr46-5.1.1.tgz",       "integrity": "sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==",
  • Network accessline 893
    "resolved": "https://registry.npmmirror.com/tr46/-/tr46-5.1.1.tgz",
  • Network accessline 903
    "node_modules/undici": {       "version": "7.25.0",       "resolved": "https://registry.npmmirror.com/undici/-/undici-7.25.0.tgz",
  • Network accessline 904
    "version": "7.25.0",       "resolved": "https://registry.npmmirror.com/undici/-/undici-7.25.0.tgz",       "integrity": "sha512-xXnp4kTyor2Zq+J1FfPI6Eq3ew5h6Vl0F/8d9XU5zZQf1tX9s2Su1/3PiMmUANFULpmksxkClamIZcaUqryHsQ==",
  • Network accessline 905
    "resolved": "https://registry.npmmirror.com/undici/-/undici-7.25.0.tgz",
  • Network accessline 912
    "node_modules/universalify": {       "version": "0.2.0",       "resolved": "https://registry.npmmirror.com/universalify/-/universalify-0.2.0.tgz",
  • Network accessline 913
    "version": "0.2.0",       "resolved": "https://registry.npmmirror.com/universalify/-/universalify-0.2.0.tgz",       "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==",
  • Network accessline 914
    "resolved": "https://registry.npmmirror.com/universalify/-/universalify-0.2.0.tgz",
  • Network accessline 921
    "node_modules/url-parse": {       "version": "1.5.10",       "resolved": "https://registry.npmmirror.com/url-parse/-/url-parse-1.5.10.tgz",
  • Network accessline 922
    "version": "1.5.10",       "resolved": "https://registry.npmmirror.com/url-parse/-/url-parse-1.5.10.tgz",       "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==",
  • Network accessline 923
    "resolved": "https://registry.npmmirror.com/url-parse/-/url-parse-1.5.10.tgz",
  • Network accessline 931
    "node_modules/w3c-xmlserializer": {       "version": "5.0.0",       "resolved": "https://registry.npmmirror.com/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz",
  • Network accessline 932
    "version": "5.0.0",       "resolved": "https://registry.npmmirror.com/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz",       "integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==",
  • Network accessline 933
    "resolved": "https://registry.npmmirror.com/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz",
  • Network accessline 943
    "node_modules/webidl-conversions": {       "version": "7.0.0",       "resolved": "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
  • Network accessline 944
    "version": "7.0.0",       "resolved": "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz",       "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==",
  • Network accessline 945
    "resolved": "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
  • Network accessline 952
    "node_modules/whatwg-encoding": {       "version": "3.1.1",       "resolved": "https://registry.npmmirror.com/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz",
  • Network accessline 953
    "version": "3.1.1",       "resolved": "https://registry.npmmirror.com/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz",       "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==",
  • Network accessline 954
    "resolved": "https://registry.npmmirror.com/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz",
  • Network accessline 965
    "node_modules/whatwg-mimetype": {       "version": "4.0.0",       "resolved": "https://registry.npmmirror.com/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz",
  • Network accessline 966
    "version": "4.0.0",       "resolved": "https://registry.npmmirror.com/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz",       "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==",
  • Network accessline 967
    "resolved": "https://registry.npmmirror.com/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz",
  • Network accessline 974
    "node_modules/whatwg-url": {       "version": "14.2.0",       "resolved": "https://registry.npmmirror.com/whatwg-url/-/whatwg-url-14.2.0.tgz",
  • Network accessline 975
    "version": "14.2.0",       "resolved": "https://registry.npmmirror.com/whatwg-url/-/whatwg-url-14.2.0.tgz",       "integrity": "sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==",
  • Network accessline 976
    "resolved": "https://registry.npmmirror.com/whatwg-url/-/whatwg-url-14.2.0.tgz",
  • Network accessline 987
    "node_modules/ws": {       "version": "8.20.0",       "resolved": "https://registry.npmmirror.com/ws/-/ws-8.20.0.tgz",
  • Network accessline 988
    "version": "8.20.0",       "resolved": "https://registry.npmmirror.com/ws/-/ws-8.20.0.tgz",       "integrity": "sha512-sAt8BhgNbzCtgGbt2OxmpuryO63ZoDk/sqaB/znQm94T4fCEsy/yV+7CdC1kJhOU9lboAEU7R3kquuycDoibVA==",
  • Network accessline 989
    "resolved": "https://registry.npmmirror.com/ws/-/ws-8.20.0.tgz",
  • Network accessline 1008
    "node_modules/xml-name-validator": {       "version": "5.0.0",       "resolved": "https://registry.npmmirror.com/xml-name-validator/-/xml-name-validator-5.0.0.tgz",
  • Network accessline 1009
    "version": "5.0.0",       "resolved": "https://registry.npmmirror.com/xml-name-validator/-/xml-name-validator-5.0.0.tgz",       "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==",
  • Network accessline 1010
    "resolved": "https://registry.npmmirror.com/xml-name-validator/-/xml-name-validator-5.0.0.tgz",
  • Network accessline 1017
    "node_modules/xmlchars": {       "version": "2.2.0",       "resolved": "https://registry.npmmirror.com/xmlchars/-/xmlchars-2.2.0.tgz",
  • Network accessline 1018
    "version": "2.2.0",       "resolved": "https://registry.npmmirror.com/xmlchars/-/xmlchars-2.2.0.tgz",       "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==",
  • Network accessline 1019
    "resolved": "https://registry.npmmirror.com/xmlchars/-/xmlchars-2.2.0.tgz",

package.json

  • Executable scriptline 1
    Executable file

references/agent_api_key_setup.md

  • Access to secretsline 120
    [Credential-related source omitted]
  • Access to secretsline 121
    [Credential-related source omitted]
  • Access to secretsline 122
    [Credential-related source omitted]
  • Access to secretsline 123
    [Credential-related source omitted]
  • Access to secretsline 124
    [Credential-related source omitted]
  • Access to secretsline 125
    [Credential-related source omitted]
  • Access to secretsline 126
    [Credential-related source omitted]
  • Access to secretsline 127
    [Credential-related source omitted]
  • Access to secretsline 128
    [Credential-related source omitted]
  • Access to secretsline 129
    [Credential-related source omitted]
  • Access to secretsline 130
    [Credential-related source omitted]
  • Access to secretsline 131
    [Credential-related source omitted]
  • Access to secretsline 133
    [Credential-related source omitted]
  • Access to secretsline 134
    [Credential-related source omitted]
  • Access to secretsline 135
    [Credential-related source omitted]
  • Access to secretsline 136
    [Credential-related source omitted]
  • Access to secretsline 137
    [Credential-related source omitted]
  • Access to secretsline 138
    [Credential-related source omitted]
  • Access to secretsline 141
    [Credential-related source omitted]

references/api_credentials.md

  • Network accessline 9
    **获取地址**: https://github.com/settings/tokens
  • Access to secretsline 23
    [Credential-related source omitted]
  • Network accessline 35
    **获取地址**: - API Key: https://console.cloud.google.com/apis/credentials
  • Network accessline 36
    - API Key: https://console.cloud.google.com/apis/credentials
  • Network accessline 37
    - Search Engine ID: https://programmablesearchengine.google.com/
  • Access to secretsline 56
    [Credential-related source omitted]
  • Access to secretsline 57
    [Credential-related source omitted]
  • Network accessline 69
    **获取地址**: https://tavily.com
  • Access to secretsline 78
    [Credential-related source omitted]
  • Access to secretsline 79
    [Credential-related source omitted]
  • Network accessline 91
    **获取地址**: https://console.bce.baidu.com/ai-search/qianfan/ais/console/apiKey
  • Access to secretsline 102
    [Credential-related source omitted]
  • Access to secretsline 105
    [Credential-related source omitted]
  • Network accessline 115
    **获取地址**: https://console.cloud.google.com/apis/credentials
  • Access to secretsline 126
    [Credential-related source omitted]
  • Access to secretsline 127
    [Credential-related source omitted]
  • Access to secretsline 140
    [Credential-related source omitted]
  • Access to secretsline 143
    [Credential-related source omitted]
  • Access to secretsline 147
    [Credential-related source omitted]
  • Network accessline 151
    DUCKDUCKGO_PROXY=http://127.0.0.1:7890
  • Network accessline 152
    BRAVE_PROXY=http://127.0.0.1:7890
  • Network accessline 153
    YAHOO_PROXY=http://127.0.0.1:7890
  • Network accessline 154
    WIKIPEDIA_PROXY=http://127.0.0.1:7890
  • Network accessline 161
    **获取地址**: https://www.firecrawl.dev/app
  • Access to secretsline 170
    [Credential-related source omitted]
  • Access to secretsline 171
    [Credential-related source omitted]
  • Network accessline 173
    # 自建 Firecrawl 服务 FIRECRAWL_API_URL=https://your-firecrawl-instance
  • Network accessline 174
    FIRECRAWL_API_URL=https://your-firecrawl-instance
  • Network accessline 185
    **获取地址**: https://platform.deepseek.com/api_keys
  • Access to secretsline 194
    [Credential-related source omitted]
  • Access to secretsline 195
    [Credential-related source omitted]
  • Network accessline 197
    # 代理或私有网关 DEEPSEEK_API_URL=https://api.deepseek.com
  • Network accessline 198
    DEEPSEEK_API_URL=https://api.deepseek.com
  • Network accessline 209
    **获取地址**: https://console.cloud.tencent.com/wsa
  • Access to secretsline 219
    [Credential-related source omitted]
  • Network accessline 222
    # 默认接口地址 TENCENTCLOUD_WSA_ENDPOINT=https://api.wsa.cloud.tencent.com/SearchPro
  • Network accessline 223
    TENCENTCLOUD_WSA_ENDPOINT=https://api.wsa.cloud.tencent.com/SearchPro
  • Network accessline 235
    **获取地址**: https://www.tinyfish.ai
  • Access to secretsline 244
    [Credential-related source omitted]
  • Access to secretsline 245
    [Credential-related source omitted]
  • Network accessline 248
    **注意事项**: - 默认限速 5 次/分钟,超限返回 429 - 请求头使用 `X-API-Key`,接口为 `GET https://api.search.tinyfish.ai`
  • Network accessline 250
    - 请求头使用 `X-API-Key`,接口为 `GET https://api.search.tinyfish.ai`
  • Network accessline 256
    **获取地址**: https://anysearch.com/console/api-keys
  • Access to secretsline 265
    [Credential-related source omitted]
  • Access to secretsline 266
    [Credential-related source omitted]
  • Access to secretsline 270
    [Credential-related source omitted]
  • Network accessline 277
    **获取地址**: https://bailian.console.aliyun.com
  • Access to secretsline 286
    [Credential-related source omitted]
  • Access to secretsline 287
    [Credential-related source omitted]
  • Network accessline 302
    **获取地址**: https://developer.zhihu.com
  • Access to secretsline 311
    [Credential-related source omitted]
  • Network accessline 325
    **获取地址**: https://platform.parallel.ai
  • Access to secretsline 334
    [Credential-related source omitted]
  • Access to secretsline 335
    [Credential-related source omitted]
  • Network accessline 341
    **注意事项**: - 接口为 `POST https://api.parallel.ai/v1/search`,请求头 `x-api-key`
  • Network accessline 342
    - 接口为 `POST https://api.parallel.ai/v1/search`,请求头 `x-api-key`
  • Network accessline 344
    - 欧盟节点 `https://eu.parallel.ai` 只接受 `basic` 模式
  • Network accessline 350
    **获取地址**: https://ollama.com/settings/keys
  • Access to secretsline 359
    [Credential-related source omitted]
  • Access to secretsline 360
    [Credential-related source omitted]
  • Network accessline 363
    [Credential-related source omitted]
  • Network accessline 364
    [Credential-related source omitted]
  • Network accessline 372
    **获取地址**: https://bigmodel.cn/apikey/platform
  • Access to secretsline 381
    [Credential-related source omitted]
  • Access to secretsline 382
    [Credential-related source omitted]
  • Network accessline 388
    **注意事项**: - 接口为 `POST https://open.bigmodel.cn/api/paas/v4/web_search`
  • Network accessline 389
    - 接口为 `POST https://open.bigmodel.cn/api/paas/v4/web_search`
  • Network accessline 397
    **获取地址**: https://platform.kimi.com
  • Access to secretsline 406
    [Credential-related source omitted]
  • Access to secretsline 407
    [Credential-related source omitted]

references/baidu_apikey_fetch.md

  • Access to secretsline 3
    [Credential-related source omitted]
  • Access to secretsline 5
    [Credential-related source omitted]
  • Network accessline 7
    ### 1. Get API Key Visit: **https://console.bce.baidu.com/ai-search/qianfan/ais/console/apiKey**
  • Network accessline 8
    Visit: **https://console.bce.baidu.com/ai-search/qianfan/ais/console/apiKey**
  • Access to secretsline 25
    [Credential-related source omitted]

references/platform_notes.md

  • Access to secretsline 14
    [Credential-related source omitted]
  • Access to secretsline 44
    [Credential-related source omitted]
  • Access to secretsline 63
    [Credential-related source omitted]
  • Access to secretsline 67
    [Credential-related source omitted]

references/rate_limits.md

  • Access to secretsline 123
    [Credential-related source omitted]
  • Access to secretsline 125
    [Credential-related source omitted]
  • Access to secretsline 134
    [Credential-related source omitted]
  • Access to secretsline 272
    [Credential-related source omitted]
  • Access to secretsline 364
    [Credential-related source omitted]

references/search_workflow.md

  • Access to secretsline 28
    [Credential-related source omitted]
  • Access to secretsline 34
    [Credential-related source omitted]
  • Network accessline 47
    python union_search_cli.py search "Python packaging" --platforms github wikipedia --limit 3 --deduplicate --fail-on-platform-error -o .work/search.json python union_search_cli.py platform github "Python packaging" --limit 3 -o .work/github.
  • Network accessline 49
    python union_search_cli.py defuddle "https://example.com" --format markdown -o .work/article.md
  • Access to secretsline 87
    [Credential-related source omitted]

references/third_party.md

  • Network accessline 11
    | 安装包 / 上游项目 | 在本项目中的用途 | | --- | --- | | [requests](https://github.com/psf/requests) | 调用搜索 API、获取网页与下载内容 |
  • Network accessline 12
    | --- | --- | | [requests](https://github.com/psf/requests) | 调用搜索 API、获取网页与下载内容 | | [python-dotenv](https://github.com/theskumar/python-dotenv) | 加载本地 `.env` 配置 |
  • Network accessline 13
    | [requests](https://github.com/psf/requests) | 调用搜索 API、获取网页与下载内容 |
  • Network accessline 14
    | [python-dotenv](https://github.com/theskumar/python-dotenv) | 加载本地 `.env` 配置 |
  • Network accessline 15
    | [lxml](https://github.com/lxml/lxml) | HTML / XML 解析与页面内容提取 |
  • Network accessline 16
    | [curl_cffi](https://github.com/lexiforest/curl_cffi) | 网页搜索的 HTTP 会话与浏览器请求兼容;声明范围 `>=0.16.0,<0.17` |
  • Network accessline 17
    | [pyimagedl / imagedl](https://github.com/CharlesPikachu/imagedl) | 保留的 SDK 图片平台搜索与下载;原生图片平台独立实现 |
  • Network accessline 18
    | [Pillow](https://github.com/python-pillow/Pillow) | 实际下载图片的 `Image.verify()` 校验与图片信息读取,声明要求 `>=12` |
  • Network accessline 19
    | [chompjs](https://github.com/Nykakin/chompjs) | 解析图片平台页面中的 JavaScript 数据,声明要求 `>=1.2` |
  • Network accessline 20
    | [yt-dlp](https://github.com/yt-dlp/yt-dlp) | 媒体下载及站点适配 |
  • Network accessline 21
    | [tavily-python](https://github.com/tavily-ai/tavily-python) | Tavily Python SDK |
  • Network accessline 22
    | [loguru](https://github.com/Delgan/loguru) | 日志输出 |
  • Network accessline 23
    | [pydantic](https://github.com/pydantic/pydantic) | 结构化模型与数据校验,声明要求为 `>=2.0.0` |
  • Network accessline 24
    | [firecrawl-py](https://pypi.org/project/firecrawl-py/) | Firecrawl Python SDK;部分入口也直接请求 HTTP API |
  • Network accessline 30
    | 上游项目 | 声明范围 | 用途 | | --- | --- | --- | | [Cheerio](https://github.com/cheeriojs/cheerio) | `^1.2.0` | 服务端 HTML 解析与选择器处理 |
  • Network accessline 31
    | --- | --- | --- | | [Cheerio](https://github.com/cheeriojs/cheerio) | `^1.2.0` | 服务端 HTML 解析与选择器处理 | | [Commander.js](https://github.com/tj/commander.js) | `^12.1.0` | Node.js 命令行参数处理 |
  • Network accessline 32
    | [Cheerio](https://github.com/cheeriojs/cheerio) | `^1.2.0` | 服务端 HTML 解析与选择器处理 |
  • Network accessline 33
    | [Commander.js](https://github.com/tj/commander.js) | `^12.1.0` | Node.js 命令行参数处理 |
  • Network accessline 34
    | [jsdom](https://github.com/jsdom/jsdom) | `^24.0.0` | DOM 环境与网页内容处理 |
  • Network accessline 38
    | 项目 | 集成方式与用途 | 来源和许可说明 | | --- | --- | --- | | [Defuddle](https://github.com/kepano/defuddle) | 在 `scripts/url_to_markdown/engines/defuddle-node/` 通过 `npm ci` 安装正式 npm 包,固定版本 `0.10.0` | 作者 `kepano`、许可证 `MIT`;安装包保留第三方版权和许可声明 |
  • Network accessline 39
    | --- | --- | --- | | [Defuddle](https://github.com/kepano/defuddle) | 在 `scripts/url_to_markdown/engines/defuddle-node/` 通过 `npm ci` 安装正式 npm 包,固定版本 `0.10.0` | 作者 `kepano`、许可证 `MIT`;安装包保留第三方版权和许可声明 | | [Commander.js](https://github.com/tj/
  • Network accessline 40
    | [Defuddle](https://github.com/kepano/defuddle) | 在 `scripts/url_to_markdown/engines/defuddle-node/` 通过 `npm ci` 安装正式 npm 包,固定版本 `0.10.0` | 作者 `kepano`、许可证 `MIT`;安装包保留第三方版权和许可声明 |
  • Network accessline 41
    | [Commander.js](https://github.com/tj/commander.js) | Defuddle 的传递依赖 | 与根目录依赖分别安装,版本以各自锁文件为准 |
  • Network accessline 42
    | [jsdom](https://github.com/jsdom/jsdom) | Defuddle 安装目录显式固定版本 `24.1.3` | 提供正文提取所需 DOM 环境 |
  • Network accessline 43
    | [mathml-to-latex](https://www.npmjs.com/package/mathml-to-latex) | Defuddle 子包的可选依赖 `^1.5.0` | 处理数学公式转换,是否安装取决于环境 |
  • Network accessline 44
    | [Temml](https://www.npmjs.com/package/temml) | Defuddle 子包的可选依赖 `^0.13.1` | 数学公式处理,是否安装取决于环境 |
  • Network accessline 45
    | [Turndown](https://www.npmjs.com/package/turndown) | Defuddle 子包的可选依赖 `^7.2.0` | HTML 转 Markdown,是否安装取决于环境 |
  • Network accessline 46
    | [FFmpeg](https://ffmpeg.org/) | 由用户按需在系统安装,配合 yt-dlp 使用 | 用于音视频合并和音频提取,不由根目录 pip / npm 声明安装;具体构建的许可与启用组件有关 |
  • Network accessline 74
    | 参考项目 | 参考范围 | | --- | --- | | [standard-readme](https://github.com/RichardLitt/standard-readme) | README 信息组织与基础章节 |
  • Network accessline 75
    | --- | --- | | [standard-readme](https://github.com/RichardLitt/standard-readme) | README 信息组织与基础章节 | | [Best-README-Template](https://github.com/othneildrew/Best-README-Template) | 项目介绍、安装和参与维护等内容组织 |
  • Network accessline 76
    | [standard-readme](https://github.com/RichardLitt/standard-readme) | README 信息组织与基础章节 |
  • Network accessline 77
    | [Best-README-Template](https://github.com/othneildrew/Best-README-Template) | 项目介绍、安装和参与维护等内容组织 |
  • Network accessline 78
    | [beautify-github-readme](https://github.com/oil-oil/beautify-github-readme) | README 视觉呈现与阅读导航 |

references/troubleshooting.md

  • Access to secretsline 19
    [Credential-related source omitted]
  • Access to secretsline 20
    [Credential-related source omitted]
  • Access to secretsline 22
    [Credential-related source omitted]
  • Access to secretsline 23
    [Credential-related source omitted]
  • Access to secretsline 87
    [Credential-related source omitted]

scripts/channels/ai_tools/__init__.py

  • Executable scriptline 1
    Executable file

scripts/channels/ai_tools/adapter.py

  • Executable scriptline 1
    Executable file

scripts/channels/ai_tools/examples/search-result-claude_code.json

  • Network accessline 7
    {       "title": "Legislative Interventions, Challenges, and Opportunities in Revolutionizing Textile Upcycling/Recycling Processes for a Circular Economy",       "url": "https://www.ncbi.nlm.nih.gov/pmc/articles/PMC11615812/",
  • Network accessline 8
    "title": "Legislative Interventions, Challenges, and Opportunities in Revolutionizing Textile Upcycling/Recycling Processes for a Circular Economy",       "url": "https://www.ncbi.nlm.nih.gov/pmc/articles/PMC11615812/",       "snippet": "A 
  • Network accessline 9
    "url": "https://www.ncbi.nlm.nih.gov/pmc/articles/PMC11615812/",
  • Network accessline 14
    {       "title": "Transform textiles",       "url": "https://www.wrap.ngo/what-we-do/transform-textiles",
  • Network accessline 15
    "title": "Transform textiles",       "url": "https://www.wrap.ngo/what-we-do/transform-textiles",       "snippet": "WRAP is working with industry to enhance and scale up sorting and recycling infrastructure.",
  • Network accessline 16
    "url": "https://www.wrap.ngo/what-we-do/transform-textiles",
  • Network accessline 21
    {       "title": "Textiles for Circular Fashion: The Logic behind Recycling Options",       "url": "https://www.mdpi.com/2071-1050/13/17/9714",
  • Network accessline 22
    "title": "Textiles for Circular Fashion: The Logic behind Recycling Options",       "url": "https://www.mdpi.com/2071-1050/13/17/9714",       "snippet": "A separate paper found good recycling options for mono-material streams within the cel
  • Network accessline 23
    "url": "https://www.mdpi.com/2071-1050/13/17/9714",

scripts/channels/ai_tools/examples/search-result-grok_build.json

  • Network accessline 7
    {       "title": "Circular Fashion & Textile Recycling Technologies: Complete 2026 Industry Guide - Sustainability Awakening",       "url": "https://sustainabilityawakening.com/circular-fashion-textile-recycling-technologies-guide/",
  • Network accessline 8
    "title": "Circular Fashion & Textile Recycling Technologies: Complete 2026 Industry Guide - Sustainability Awakening",       "url": "https://sustainabilityawakening.com/circular-fashion-textile-recycling-technologies-guide/",       "snippet
  • Network accessline 9
    "url": "https://sustainabilityawakening.com/circular-fashion-textile-recycling-technologies-guide/",
  • Network accessline 15
    {       "title": "Circular Economy in Fashion: A Guide for Brands",       "url": "https://www.reconomy.com/2024/09/03/the-state-of-the-circular-economy-in-the-fashion-industry/",
  • Network accessline 16
    "title": "Circular Economy in Fashion: A Guide for Brands",       "url": "https://www.reconomy.com/2024/09/03/the-state-of-the-circular-economy-in-the-fashion-industry/",       "snippet": "It matters because the EU generates 12.6 million to
  • Network accessline 17
    "url": "https://www.reconomy.com/2024/09/03/the-state-of-the-circular-economy-in-the-fashion-industry/",
  • Network accessline 23
    {       "title": "Europe stitches together plan to close the loop in the fashion industry | Reuters",       "url": "https://www.reuters.com/sustainability/boards-policy-regulation/europe-stitches-together-plan-close-loop-fashion-industry--e
  • Network accessline 24
    "title": "Europe stitches together plan to close the loop in the fashion industry | Reuters",       "url": "https://www.reuters.com/sustainability/boards-policy-regulation/europe-stitches-together-plan-close-loop-fashion-industry--ecmii-202
  • Network accessline 25
    "url": "https://www.reuters.com/sustainability/boards-policy-regulation/europe-stitches-together-plan-close-loop-fashion-industry--ecmii-2026-08-24/",

scripts/channels/ai_tools/examples/search-result.json

  • Network accessline 7
    {       "title": "Sustainable and circular textiles | UNEP - UN Environment Programme",       "url": "https://www.unep.org/topics/chemicals-and-pollution-action/circularity-sectors/sustainable-and-circular-textiles",
  • Network accessline 8
    "title": "Sustainable and circular textiles | UNEP - UN Environment Programme",       "url": "https://www.unep.org/topics/chemicals-and-pollution-action/circularity-sectors/sustainable-and-circular-textiles",       "snippet": "The UNEP Text
  • Network accessline 9
    "url": "https://www.unep.org/topics/chemicals-and-pollution-action/circularity-sectors/sustainable-and-circular-textiles",
  • Network accessline 15
    {       "title": "Regenerative Fashion Systems: Redefining Circularity in the Fashion and Textiles Industry | Circular Economy and Sustainability | Springer Nature Link",       "url": "https://link.springer.com/article/10.1007/s43615-026-00
  • Network accessline 16
    "title": "Regenerative Fashion Systems: Redefining Circularity in the Fashion and Textiles Industry | Circular Economy and Sustainability | Springer Nature Link",       "url": "https://link.springer.com/article/10.1007/s43615-026-00824-3", 
  • Network accessline 17
    "url": "https://link.springer.com/article/10.1007/s43615-026-00824-3",
  • Network accessline 23
    {       "title": "Textiles Strategy - Environment - European Commission",       "url": "https://environment.ec.europa.eu/strategy/textiles-strategy_en",
  • Network accessline 24
    "title": "Textiles Strategy - Environment - European Commission",       "url": "https://environment.ec.europa.eu/strategy/textiles-strategy_en",       "snippet": "1% of material in clothing is recycled into new clothing ... * Restrict the e
  • Network accessline 25
    "url": "https://environment.ec.europa.eu/strategy/textiles-strategy_en",

scripts/channels/ai_tools/native_search/__init__.py

  • Executable scriptline 1
    Executable file

scripts/channels/ai_tools/native_search/backends/__init__.py

  • Executable scriptline 1
    Executable file

scripts/channels/ai_tools/native_search/backends/claude.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 8
    [Credential-related source omitted]
  • Access to secretsline 19
    [Credential-related source omitted]
  • Access to secretsline 21
    [Credential-related source omitted]
  • Access to secretsline 22
    [Credential-related source omitted]
  • Access to secretsline 41
    [Credential-related source omitted]
  • Network accessline 75
    def fetch(url: str, max_chars: int) -> dict:

scripts/channels/ai_tools/native_search/backends/cli_json.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 58
    [Credential-related source omitted]
  • Access to secretsline 147
    [Credential-related source omitted]

scripts/channels/ai_tools/native_search/backends/codex.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 22
    [Credential-related source omitted]
  • Access to secretsline 23
    [Credential-related source omitted]
  • Access to secretsline 38
    [Credential-related source omitted]
  • Network accessline 39
    [Credential-related source omitted]
  • Access to secretsline 39
    [Credential-related source omitted]
  • Network accessline 40
    [Credential-related source omitted]
  • Network accessline 41
    request = urllib.request.Request(url, data=body, headers={"Content-Type": "application/json", "User-Agent": UA}, method="POST")
  • Network accessline 42
    try:         with urllib.request.urlopen(request, timeout=30) as response:             payload = json.loads(response.read().decode())
  • Network accessline 43
    with urllib.request.urlopen(request, timeout=30) as response:
  • Access to secretsline 48
    [Credential-related source omitted]
  • Access to secretsline 49
    [Credential-related source omitted]
  • Access to secretsline 50
    [Credential-related source omitted]
  • Access to secretsline 56
    [Credential-related source omitted]
  • Access to secretsline 64
    [Credential-related source omitted]
  • Network accessline 70
    headers["ChatGPT-Account-ID"] = tokens["account_id"]     url = os.environ.get("CODEX_ENDPOINT") or CODEX_SEARCH_URL     request = urllib.request.Request(url, data=json.dumps(payload).encode(), headers=headers, method="POST")
  • Network accessline 71
    [Credential-related source omitted]
  • Access to secretsline 71
    [Credential-related source omitted]
  • Network accessline 72
    request = urllib.request.Request(url, data=json.dumps(payload).encode(), headers=headers, method="POST")
  • Network accessline 73
    try:         with urllib.request.urlopen(request, timeout=60) as response:             raw = response.read().decode()
  • Network accessline 74
    with urllib.request.urlopen(request, timeout=60) as response:
  • Network accessline 137
    def fetch(url: str, max_chars: int) -> dict:

scripts/channels/ai_tools/native_search/backends/grok.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 8
    [Credential-related source omitted]
  • Access to secretsline 24
    [Credential-related source omitted]
  • Access to secretsline 34
    [Credential-related source omitted]
  • Network accessline 50
    def fetch(url: str, max_chars: int) -> dict:

scripts/channels/ai_tools/native_search/config.py

  • Executable scriptline 1
    Executable file
  • Network accessline 12
    DEFAULT_LIMIT = None DEFAULT_MAX_CHARS = 12_000 CODEX_SEARCH_URL = "https://chatgpt.com/backend-api/codex/alpha/search"
  • Network accessline 13
    DEFAULT_MAX_CHARS = 12_000 CODEX_SEARCH_URL = "https://chatgpt.com/backend-api/codex/alpha/search" CODEX_REFRESH_URL = "https://chatgpt.com/backend-api/auth/refresh"
  • Network accessline 14
    CODEX_SEARCH_URL = "https://chatgpt.com/backend-api/codex/alpha/search"
  • Network accessline 15
    CODEX_REFRESH_URL = "https://chatgpt.com/backend-api/auth/refresh"
  • Access to secretsline 19
    [Credential-related source omitted]
  • Access to secretsline 23
    [Credential-related source omitted]
  • Access to secretsline 30
    [Credential-related source omitted]

scripts/channels/ai_tools/native_search/errors.py

  • Executable scriptline 1
    Executable file

scripts/channels/ai_tools/native_search/textutil.py

  • Executable scriptline 1
    Executable file

scripts/channels/ai_tools/output-analysis.md

  • Network accessline 31
    官方来源(资料整理日期:2026-10-25):[Claude Code CLI 参数](https://code.claude.com/docs/en/cli-reference)、[Codex CLI 与 ChatGPT 登录](https://learn.chatgpt.com/docs/codex/cli)、[Grok Build CLI](https://docs.x.ai/build/overview)。这些入口用于核对实际客户端,不作为内部搜索端点条数保证。

scripts/channels/ai_tools/worker.py

  • Executable scriptline 1
    Executable file

scripts/channels/anysearch/README.md

  • Access to secretsline 10
    [Credential-related source omitted]
  • Network accessline 17
    [Credential-related source omitted]
  • Network accessline 18
    [Credential-related source omitted]
  • Access to secretsline 18
    [Credential-related source omitted]
  • Network accessline 19
    # 默认 https://api.anysearch.com/v1/search
  • Network accessline 23
    API Key 在 [AnySearch 控制台](https://anysearch.com/console/api-keys) 创建。
  • Network accessline 54
    | `--freshness` | `day`、`week`、`month`、`year` | - | | `--api-key` | API Key(优先于环境变量;必须提供有效 Key) | 读取 `ANYSEARCH_API_KEY` | | `--endpoint` | 接口地址 | https://api.anysearch.com/v1/search |
  • Network accessline 55
    [Credential-related source omitted]
  • Access to secretsline 55
    [Credential-related source omitted]
  • Network accessline 56
    | `--endpoint` | 接口地址 | https://api.anysearch.com/v1/search |
  • Network accessline 72
    - [AnySearch 官网](https://anysearch.com)
  • Network accessline 73
    - [API Key 管理](https://anysearch.com/console/api-keys)

scripts/channels/anysearch/anysearch_search.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 9
    [Credential-related source omitted]
  • Network accessline 11
    DEFAULT_ENDPOINT = "https://api.anysearch.com/v1/search"
  • Network accessline 17
    """AnySearch 搜索客户端,接口文档 https://anysearch.com/docs"""
  • Access to secretsline 21
    [Credential-related source omitted]
  • Access to secretsline 23
    [Credential-related source omitted]
  • Access to secretsline 24
    [Credential-related source omitted]
  • Access to secretsline 25
    [Credential-related source omitted]
  • Network accessline 26
    [Credential-related source omitted]
  • Access to secretsline 26
    [Credential-related source omitted]
  • Network accessline 27
    [Credential-related source omitted]
  • Access to secretsline 27
    [Credential-related source omitted]
  • Network accessline 28
    self.session = requests.Session()
  • Access to secretsline 30
    [Credential-related source omitted]
  • Access to secretsline 122
    [Credential-related source omitted]
  • Access to secretsline 125
    [Credential-related source omitted]
  • Network accessline 137
    parser.add_argument("--freshness", choices=list(ALLOWED_FRESHNESS), help="时间范围")     parser.add_argument("--api-key", help="AnySearch API Key,也可通过 ANYSEARCH_API_KEY 环境变量提供")     parser.add_argument("--endpoint", help="接口地址,默认 https://api.an
  • Network accessline 138
    [Credential-related source omitted]
  • Access to secretsline 138
    [Credential-related source omitted]
  • Network accessline 139
    parser.add_argument("--endpoint", help="接口地址,默认 https://api.anysearch.com/v1/search")
  • Access to secretsline 145
    [Credential-related source omitted]

scripts/channels/anysearch/examples/search-result.json

  • Network accessline 7
    {       "title": "Sustainable Practices in the Apparel Industry",       "href": "https://www.netsuite.com/portal/resource/articles/erp/sustainability-in-apparel.shtml",
  • Network accessline 8
    "title": "Sustainable Practices in the Apparel Industry",       "href": "https://www.netsuite.com/portal/resource/articles/erp/sustainability-in-apparel.shtml",       "body": "Sustainability in the apparel industry means producing clothing,
  • Network accessline 9
    "href": "https://www.netsuite.com/portal/resource/articles/erp/sustainability-in-apparel.shtml",
  • Network accessline 20
    {       "title": "How can we make textile and garment production ...",       "href": "https://www.weforum.org/stories/nature-and-biodiversity/textile-garment-industry-sustainability-policy-measures",
  • Network accessline 21
    "title": "How can we make textile and garment production ...",       "href": "https://www.weforum.org/stories/nature-and-biodiversity/textile-garment-industry-sustainability-policy-measures",       "body": "Producing and consuming garments 
  • Network accessline 22
    "href": "https://www.weforum.org/stories/nature-and-biodiversity/textile-garment-industry-sustainability-policy-measures",
  • Network accessline 33
    {       "title": "How the Apparel Industry Could Refashion Itself with ...",       "href": "https://www.gsb.stanford.edu/insights/how-apparel-industry-could-refashion-itself-sustainability-mind",
  • Network accessline 34
    "title": "How the Apparel Industry Could Refashion Itself with ...",       "href": "https://www.gsb.stanford.edu/insights/how-apparel-industry-could-refashion-itself-sustainability-mind",       "body": "While some companies have taken steps
  • Network accessline 35
    "href": "https://www.gsb.stanford.edu/insights/how-apparel-industry-could-refashion-itself-sustainability-mind",

scripts/channels/anysearch/output-analysis.md

  • Network accessline 36
    核查日期:2026-10-25。官方来源:[Search API](https://anysearch.com/docs/api-endpoints/v1-search)。

scripts/channels/baidu/baidu_no_api.py

  • Executable scriptline 1
    Executable file
  • Network accessline 33
    ENGINE_NAME = 'baidu'     ENGINE_DISPLAY_NAME = '百度搜索'     SEARCH_URL = 'https://www.baidu.com/s?wd={keyword}'
  • Network accessline 34
    ENGINE_DISPLAY_NAME = '百度搜索'     SEARCH_URL = 'https://www.baidu.com/s?wd={keyword}'     REQUIRES_PROXY = False
  • Network accessline 35
    SEARCH_URL = 'https://www.baidu.com/s?wd={keyword}'
  • Network accessline 72
    if not title:                 continue             target = urljoin('https://www.baidu.com/', link.get('href'))
  • Network accessline 73
    continue             target = urljoin('https://www.baidu.com/', link.get('href'))             if _excluded_url(target):
  • Network accessline 74
    target = urljoin('https://www.baidu.com/', link.get('href'))
  • Network accessline 82
    if not candidate:                     continue                 candidate = urljoin('https://www.baidu.com/', candidate)
  • Network accessline 83
    continue                 candidate = urljoin('https://www.baidu.com/', candidate)                 location = urlsplit(candidate)
  • Network accessline 84
    candidate = urljoin('https://www.baidu.com/', candidate)

scripts/channels/baidu/baidu_search.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 20
    [Credential-related source omitted]
  • Access to secretsline 20
    [Credential-related source omitted]
  • Network accessline 21
    API_URL = "https://qianfan.baidubce.com/v2/ai_search/web_search"
  • Access to secretsline 55
    [Credential-related source omitted]
  • Access to secretsline 57
    [Credential-related source omitted]
  • Network accessline 62
    response = requests.post(API_URL, json=request_body, headers=headers, timeout=30)
  • Access to secretsline 111
    [Credential-related source omitted]
  • Access to secretsline 112
    [Credential-related source omitted]
  • Access to secretsline 113
    [Credential-related source omitted]
  • Access to secretsline 124
    [Credential-related source omitted]

scripts/channels/baidu/examples/search-result-baidu_direct.json

  • Network accessline 7
    {       "title": "服装(汉语词语) - 百度百科",       "url": "https://baike.baidu.com/item/%E6%9C%8D%E8%A3%85/247479",
  • Network accessline 8
    "title": "服装(汉语词语) - 百度百科",       "url": "https://baike.baidu.com/item/%E6%9C%8D%E8%A3%85/247479",       "content": "",
  • Network accessline 9
    "url": "https://baike.baidu.com/item/%E6%9C%8D%E8%A3%85/247479",
  • Network accessline 21
    {       "title": "服装 - 智能分身实时回复",       "url": "https://agents.baidu.com/content/question/c71661cc27d90bbc67f725f4",
  • Network accessline 22
    "title": "服装 - 智能分身实时回复",       "url": "https://agents.baidu.com/content/question/c71661cc27d90bbc67f725f4",       "content": "",
  • Network accessline 23
    "url": "https://agents.baidu.com/content/question/c71661cc27d90bbc67f725f4",
  • Network accessline 35
    {       "title": "衣服(服装) - 百度百科",       "url": "https://baike.baidu.com/item/衣服/16558952",
  • Network accessline 36
    "title": "衣服(服装) - 百度百科",       "url": "https://baike.baidu.com/item/衣服/16558952",       "content": "“衣”在古代有广义狭义之分,广义指人体上所有穿着,头上戴的叫头衣,鞋类叫足衣,身上穿的则叫体衣;狭义则专指上体所穿的服装。上衣也有长短、内外、厚薄之分。短上衣称襦,辛延年《羽林郎》中说:“长裙连理带,广袖合欢襦。”襦也有长短,颜师古《急就篇... 历史记载 古代文化 服装搭配 
  • Network accessline 37
    "url": "https://baike.baidu.com/item/衣服/16558952",

scripts/channels/baidu/examples/search-result.json

  • Network accessline 7
    {       "id": 1,       "url": "https://www.sciencedirect.com/topics/social-sciences/apparel-industry",
  • Network accessline 8
    "id": 1,       "url": "https://www.sciencedirect.com/topics/social-sciences/apparel-industry",       "title": "Apparel Industry - an overview | ScienceDirect Topics",
  • Network accessline 9
    "url": "https://www.sciencedirect.com/topics/social-sciences/apparel-industry",
  • Network accessline 11
    "date": "2024-01-01 00:00:00",       "content": " 2 Context of the textiles and apparel industry An important context for the evaluation of ES of the textiles and apparel industry is the decentralized nature of the industry ( Pal and Gander
  • Network accessline 12
    "content": " 2 Context of the textiles and apparel industry An important context for the evaluation of ES of the textiles and apparel industry is the decentralized nature of the industry ( Pal and Gander, 2018 ). A majority of the productio
  • Network accessline 13
    "icon": "https://sdfestaticassets-us-east-1.sciencedirectassets.com/shared-assets/103/images/favSD.ico",
  • Network accessline 22
    "images": [           {             "url": "https://ars.els-cdn.com/content/image/1-s2.0-B9780444595317000223-f22-07-9780444595317.jpg",
  • Network accessline 23
    {             "url": "https://ars.els-cdn.com/content/image/1-s2.0-B9780444595317000223-f22-07-9780444595317.jpg",             "height": "400",
  • Network accessline 24
    "url": "https://ars.els-cdn.com/content/image/1-s2.0-B9780444595317000223-f22-07-9780444595317.jpg",
  • Network accessline 27
    },           {             "url": "https://ars.els-cdn.com/content/image/1-s2.0-B9780444595317000223-f22-08-9780444595317.jpg",
  • Network accessline 28
    {             "url": "https://ars.els-cdn.com/content/image/1-s2.0-B9780444595317000223-f22-08-9780444595317.jpg",             "height": "401",
  • Network accessline 29
    "url": "https://ars.els-cdn.com/content/image/1-s2.0-B9780444595317000223-f22-08-9780444595317.jpg",
  • Network accessline 40
    {       "id": 2,       "url": "http://www.nstl.gov.cn/paper_detail.html?id=0eef4fd4d773664a1ce2ed8b23e2644c",
  • Network accessline 41
    "id": 2,       "url": "http://www.nstl.gov.cn/paper_detail.html?id=0eef4fd4d773664a1ce2ed8b23e2644c",       "title": "Sustainability in Indian textile and apparel industry",
  • Network accessline 42
    "url": "http://www.nstl.gov.cn/paper_detail.html?id=0eef4fd4d773664a1ce2ed8b23e2644c",
  • Network accessline 44
    "date": "2026-10-01 00:00:00",       "content": "Sustainability in Indian textile and apparel industryThe textile and apparel industry has a significant environmental impact and needs to adopt sustainable practices to ensure its long-term v
  • Network accessline 45
    "content": "Sustainability in Indian textile and apparel industryThe textile and apparel industry has a significant environmental impact and needs to adopt sustainable practices to ensure its long-term viability. While there have been effor
  • Network accessline 46
    "icon": "http://www.nstl.gov.cn/favicon.ico",
  • Network accessline 62
    {       "id": 3,       "url": "https://en.shhqcbd.gov.cn/2025-09/08/c_1123260.htm",
  • Network accessline 63
    "id": 3,       "url": "https://en.shhqcbd.gov.cn/2025-09/08/c_1123260.htm",       "title": "Textile expo in Shanghai spotlights innovation, sustainability",
  • Network accessline 64
    "url": "https://en.shhqcbd.gov.cn/2025-09/08/c_1123260.htm",

scripts/channels/baidu/output-analysis.md

  • Network accessline 40
    核查日期:2026-10-25。官方来源:[百度搜索 API](https://ai.baidu.com/ai-doc/AppBuilder/pmaxd1hvy)。
  • Access to secretsline 51
    [Credential-related source omitted]

scripts/channels/bailian/README.md

  • Network accessline 17
    [Credential-related source omitted]
  • Access to secretsline 17
    [Credential-related source omitted]
  • Network accessline 18
    # 默认 https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation
  • Network accessline 24
    API Key 在 [百炼控制台](https://bailian.console.aliyun.com) 的 API-KEY 管理页面创建。
  • Network accessline 73
    - [百炼联网搜索文档](https://help.aliyun.com/zh/model-studio/web-search)
  • Network accessline 74
    - [DashScope API 参考](https://help.aliyun.com/zh/model-studio/qwen-api-via-dashscope)

scripts/channels/bailian/bailian_search.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 9
    [Credential-related source omitted]
  • Network accessline 11
    DEFAULT_ENDPOINT = "https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation"
  • Network accessline 18
    """阿里云百炼联网搜索客户端,接口文档 https://help.aliyun.com/zh/model-studio/web-search"""
  • Access to secretsline 22
    [Credential-related source omitted]
  • Access to secretsline 24
    [Credential-related source omitted]
  • Access to secretsline 25
    [Credential-related source omitted]
  • Access to secretsline 26
    [Credential-related source omitted]
  • Access to secretsline 27
    [Credential-related source omitted]
  • Network accessline 29
    [Credential-related source omitted]
  • Access to secretsline 29
    [Credential-related source omitted]
  • Network accessline 30
    self.session = requests.Session()
  • Access to secretsline 32
    [Credential-related source omitted]
  • Access to secretsline 67
    [Credential-related source omitted]
  • Access to secretsline 140
    [Credential-related source omitted]
  • Access to secretsline 143
    [Credential-related source omitted]
  • Access to secretsline 163
    [Credential-related source omitted]

scripts/channels/bailian/examples/search-result.json

  • Network accessline 7
    {       "title": "Sustainability topic trends in the textile and apparel industry: a text mining-based magazine article analysis",       "href": "http://www.researchgate.net/publication/350820768_Sustainability_topic_trends_in_the_textile_a
  • Network accessline 8
    "title": "Sustainability topic trends in the textile and apparel industry: a text mining-based magazine article analysis",       "href": "http://www.researchgate.net/publication/350820768_Sustainability_topic_trends_in_the_textile_and_appar
  • Network accessline 9
    "href": "http://www.researchgate.net/publication/350820768_Sustainability_topic_trends_in_the_textile_and_apparel_industry_a_text_mining-based_magazine_article_analysis",
  • Network accessline 11
    "engine": "bailian",       "site_name": "无",       "icon": "http://www.researchgate.net/favicon.ico",
  • Network accessline 12
    "site_name": "无",       "icon": "http://www.researchgate.net/favicon.ico",       "index": 1
  • Network accessline 13
    "icon": "http://www.researchgate.net/favicon.ico",
  • Network accessline 16
    {       "title": "Recent Trends in Sustainable Textiles and Apparel Production",       "href": "http://www.researchgate.net/publication/349041104_Recent_Trends_in_Sustainable_Textiles_and_Apparel_Production",
  • Network accessline 17
    "title": "Recent Trends in Sustainable Textiles and Apparel Production",       "href": "http://www.researchgate.net/publication/349041104_Recent_Trends_in_Sustainable_Textiles_and_Apparel_Production",       "body": "",
  • Network accessline 18
    "href": "http://www.researchgate.net/publication/349041104_Recent_Trends_in_Sustainable_Textiles_and_Apparel_Production",
  • Network accessline 20
    "engine": "bailian",       "site_name": "无",       "icon": "http://www.researchgate.net/favicon.ico",
  • Network accessline 21
    "site_name": "无",       "icon": "http://www.researchgate.net/favicon.ico",       "index": 2
  • Network accessline 22
    "icon": "http://www.researchgate.net/favicon.ico",
  • Network accessline 25
    {       "title": "Bio-Based Packaging Materials for the Textile and Apparel Supply Chain: Eco-Innovations, Industry Trends, and Future Research Directions",       "href": "http://link.springer.com/article/10.1007/s42824-026-00219-7",
  • Network accessline 26
    "title": "Bio-Based Packaging Materials for the Textile and Apparel Supply Chain: Eco-Innovations, Industry Trends, and Future Research Directions",       "href": "http://link.springer.com/article/10.1007/s42824-026-00219-7",       "body": 
  • Network accessline 27
    "href": "http://link.springer.com/article/10.1007/s42824-026-00219-7",
  • Network accessline 29
    "engine": "bailian",       "site_name": "无",       "icon": "https://link.springer.com/oscar-static/img/favicons/darwin/apple-touch-icon-6ef0829b9c.png",
  • Network accessline 30
    "site_name": "无",       "icon": "https://link.springer.com/oscar-static/img/favicons/darwin/apple-touch-icon-6ef0829b9c.png",       "index": 3
  • Network accessline 31
    "icon": "https://link.springer.com/oscar-static/img/favicons/darwin/apple-touch-icon-6ef0829b9c.png",

scripts/channels/bailian/output-analysis.md

  • Network accessline 41
    核查日期:2026-10-25。官方来源:[联网搜索](https://help.aliyun.com/zh/model-studio/web-search)。

scripts/channels/bing/README.md

  • Network accessline 36
    # 使用代理 python scripts/channels/bing/bing_search.py "search query" --proxy http://127.0.0.1:7890
  • Network accessline 37
    python scripts/channels/bing/bing_search.py "search query" --proxy http://127.0.0.1:7890
  • Network accessline 57
    [Credential-related source omitted]
  • Access to secretsline 57
    [Credential-related source omitted]
  • Network accessline 58
    BING_PROXY=http://127.0.0.1:7890

scripts/channels/bing/bing_cn_no_api.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 20
    ENGINE_NAME = "bing_cn"     ENGINE_DISPLAY_NAME = "Bing 中国"     SEARCH_URL = "https://cn.bing.com/search?q={keyword}&ensearch=0"
  • Network accessline 21
    ENGINE_DISPLAY_NAME = "Bing 中国"     SEARCH_URL = "https://cn.bing.com/search?q={keyword}&ensearch=0"     REQUIRES_PROXY = False
  • Network accessline 22
    SEARCH_URL = "https://cn.bing.com/search?q={keyword}&ensearch=0"

scripts/channels/bing/bing_int_no_api.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 20
    ENGINE_NAME = "bing_int"     ENGINE_DISPLAY_NAME = "Bing 国际"     SEARCH_URL = "https://www.bing.com/search?q={keyword}&mkt=en-US&setlang=en"
  • Network accessline 21
    ENGINE_DISPLAY_NAME = "Bing 国际"     SEARCH_URL = "https://www.bing.com/search?q={keyword}&mkt=en-US&setlang=en"     REQUIRES_PROXY = True
  • Network accessline 22
    SEARCH_URL = "https://www.bing.com/search?q={keyword}&mkt=en-US&setlang=en"

scripts/channels/bing/bing_serpapi_search.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 5
    Uses SerpAPI to perform Bing searches as a backup/alternative method. Updated with full features from https://serpapi.com/bing-search-api
  • Network accessline 6
    Updated with full features from https://serpapi.com/bing-search-api
  • Access to secretsline 19
    [Credential-related source omitted]
  • Access to secretsline 30
    [Credential-related source omitted]
  • Access to secretsline 35
    [Credential-related source omitted]
  • Access to secretsline 38
    [Credential-related source omitted]
  • Access to secretsline 39
    [Credential-related source omitted]
  • Access to secretsline 41
    [Credential-related source omitted]
  • Access to secretsline 42
    [Credential-related source omitted]
  • Access to secretsline 43
    [Credential-related source omitted]
  • Access to secretsline 62
    [Credential-related source omitted]
  • Access to secretsline 103
    [Credential-related source omitted]
  • Access to secretsline 109
    [Credential-related source omitted]
  • Access to secretsline 155
    [Credential-related source omitted]
  • Access to secretsline 199
    [Credential-related source omitted]

scripts/channels/bing/examples/search-result-bing_int_direct.json

  • Network accessline 7
    {       "title": "SUSTAINABLE Definition & Meaning - Merriam-Webster",       "href": "https://www.bing.com/ck/a?!&&p=d3c5c69b15cdd4d5cfe2d13fc74f5e043c4f6a5c8422dc215d2eecd396854facJmltdHM9MTc5MjgwMDAwMA&ptn=3&ver=2&hsh=4&fclid=3fc87e83-a4a
  • Network accessline 8
    "title": "SUSTAINABLE Definition & Meaning - Merriam-Webster",       "href": "https://www.bing.com/ck/a?!&&p=d3c5c69b15cdd4d5cfe2d13fc74f5e043c4f6a5c8422dc215d2eecd396854facJmltdHM9MTc5MjgwMDAwMA&ptn=3&ver=2&hsh=4&fclid=3fc87e83-a4a4-6baa-3
  • Network accessline 9
    "href": "https://www.bing.com/ck/a?!&&p=d3c5c69b15cdd4d5cfe2d13fc74f5e043c4f6a5c8422dc215d2eecd396854facJmltdHM9MTc5MjgwMDAwMA&ptn=3&ver=2&hsh=4&fclid=3fc87e83-a4a4-6baa-3d0b-697ea54d6a83&u=a1aHR0cHM6Ly93d3cubWVycmlhbS13ZWJzdGVyLmNvbS9kaWN0
  • Network accessline 13
    {       "title": "Sustainability - Wikipedia",       "href": "https://www.bing.com/ck/a?!&&p=b768a24986fef90264574f36ff45a50a59f18ca29062735a3c19553e350f4877JmltdHM9MTc5MjgwMDAwMA&ptn=3&ver=2&hsh=4&fclid=3fc87e83-a4a4-6baa-3d0b-697ea54d6a83
  • Network accessline 14
    "title": "Sustainability - Wikipedia",       "href": "https://www.bing.com/ck/a?!&&p=b768a24986fef90264574f36ff45a50a59f18ca29062735a3c19553e350f4877JmltdHM9MTc5MjgwMDAwMA&ptn=3&ver=2&hsh=4&fclid=3fc87e83-a4a4-6baa-3d0b-697ea54d6a83&u=a1aHR
  • Network accessline 15
    "href": "https://www.bing.com/ck/a?!&&p=b768a24986fef90264574f36ff45a50a59f18ca29062735a3c19553e350f4877JmltdHM9MTc5MjgwMDAwMA&ptn=3&ver=2&hsh=4&fclid=3fc87e83-a4a4-6baa-3d0b-697ea54d6a83&u=a1aHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvU3VzdGFp
  • Network accessline 19
    {       "title": "SUSTAINABLE | English meaning - Cambridge Dictionary",       "href": "https://www.bing.com/ck/a?!&&p=bd80d98bc077b02e83dd3ee8f03cf4d2adc86d7e9a3d0926766e1f4e2e197017JmltdHM9MTc5MjgwMDAwMA&ptn=3&ver=2&hsh=4&fclid=3fc87e83-a
  • Network accessline 20
    "title": "SUSTAINABLE | English meaning - Cambridge Dictionary",       "href": "https://www.bing.com/ck/a?!&&p=bd80d98bc077b02e83dd3ee8f03cf4d2adc86d7e9a3d0926766e1f4e2e197017JmltdHM9MTc5MjgwMDAwMA&ptn=3&ver=2&hsh=4&fclid=3fc87e83-a4a4-6baa
  • Network accessline 21
    "href": "https://www.bing.com/ck/a?!&&p=bd80d98bc077b02e83dd3ee8f03cf4d2adc86d7e9a3d0926766e1f4e2e197017JmltdHM9MTc5MjgwMDAwMA&ptn=3&ver=2&hsh=4&fclid=3fc87e83-a4a4-6baa-3d0b-697ea54d6a83&u=a1aHR0cHM6Ly9kaWN0aW9uYXJ5LmNhbWJyaWRnZS5vcmcvZGlj

scripts/channels/bing/examples/search-result.json

  • Network accessline 7
    {       "title": "SUSTAINABLE Definition & Meaning - Merriam-Webster",       "href": "https://www.merriam-webster.com/dictionary/sustainable",
  • Network accessline 8
    "title": "SUSTAINABLE Definition & Meaning - Merriam-Webster",       "href": "https://www.merriam-webster.com/dictionary/sustainable",       "body": "The meaning of SUSTAINABLE is capable of being sustained. How to use sustainable in a sent
  • Network accessline 9
    "href": "https://www.merriam-webster.com/dictionary/sustainable",
  • Network accessline 10
    "body": "The meaning of SUSTAINABLE is capable of being sustained. How to use sustainable in a sentence.",       "displayed_link": "https://www.merriam-webster.com › dictionary › sustainable"     },
  • Network accessline 11
    "displayed_link": "https://www.merriam-webster.com › dictionary › sustainable"
  • Network accessline 13
    {       "title": "Sustainability - Wikipedia",       "href": "https://en.wikipedia.org/wiki/Sustainability",
  • Network accessline 14
    "title": "Sustainability - Wikipedia",       "href": "https://en.wikipedia.org/wiki/Sustainability",       "body": "\" Sustainability is often thought of as a long-term goal (i.e. a more sustainable world), while sustainable development ref
  • Network accessline 15
    "href": "https://en.wikipedia.org/wiki/Sustainability",
  • Network accessline 16
    "body": "\" Sustainability is often thought of as a long-term goal (i.e. a more sustainable world), while sustainable development refers to the …",       "displayed_link": "https://en.wikipedia.org › wiki › Sustainability"     },
  • Network accessline 17
    "displayed_link": "https://en.wikipedia.org › wiki › Sustainability"
  • Network accessline 19
    {       "title": "SUSTAINABLE | English meaning - Cambridge Dictionary",       "href": "https://dictionary.cambridge.org/dictionary/english/sustainable",
  • Network accessline 20
    "title": "SUSTAINABLE | English meaning - Cambridge Dictionary",       "href": "https://dictionary.cambridge.org/dictionary/english/sustainable",       "body": "SUSTAINABLE definition: 1. able to continue over a period of time: 2. causing, 
  • Network accessline 21
    "href": "https://dictionary.cambridge.org/dictionary/english/sustainable",
  • Network accessline 22
    "body": "SUSTAINABLE definition: 1. able to continue over a period of time: 2. causing, or made in a way that causes, little or no…. Learn more.",       "displayed_link": "https://dictionary.cambridge.org › dictionary › english › sustainabl
  • Network accessline 23
    "displayed_link": "https://dictionary.cambridge.org › dictionary › english › sustainable"

scripts/channels/bing/output-analysis.md

  • Network accessline 32
    核查日期:2026-10-25。官方来源:[SerpAPI Bing Search API](https://serpapi.com/bing-search-api)。当前商业入口使用 SerpAPI。

scripts/channels/brave/README.md

  • Network accessline 8
    python scripts/channels/brave/brave_search.py "python documentation" --json --pretty python scripts/channels/brave/brave_no_api.py "人工智能 新闻" --page 2 --timelimit w --safesearch strict --timeout 30 --json python scripts/channels/brave/brave_
  • Network accessline 10
    python scripts/channels/brave/brave_search.py "local news" --country us --proxy http://127.0.0.1:7890 --json

scripts/channels/brave/brave_no_api.py

  • Executable scriptline 1
    Executable file

scripts/channels/brave/brave_search.py

  • Executable scriptline 1
    Executable file
  • Network accessline 13
    ENGINE_NAME = 'brave'     ENGINE_DISPLAY_NAME = 'Brave 搜索'     SEARCH_URL = 'https://search.brave.com/search'
  • Network accessline 14
    ENGINE_DISPLAY_NAME = 'Brave 搜索'     SEARCH_URL = 'https://search.brave.com/search'     REQUIRES_PROXY = True
  • Network accessline 15
    SEARCH_URL = 'https://search.brave.com/search'

scripts/channels/brave/examples/search-result.json

  • Network accessline 7
    {       "title": "Sustainability in Textiles and Apparel",       "url": "https://keypointintelligence.com/keypoint-blogs/sustainability-in-textiles-and-apparel",
  • Network accessline 8
    "title": "Sustainability in Textiles and Apparel",       "url": "https://keypointintelligence.com/keypoint-blogs/sustainability-in-textiles-and-apparel",       "content": "July 23, 2024 - Cascale (formerly “Sustainable Apparel Coalition” or
  • Network accessline 9
    "url": "https://keypointintelligence.com/keypoint-blogs/sustainability-in-textiles-and-apparel",
  • Network accessline 21
    {       "title": "Sustainability trends and gaps in the textile, apparel and fashion industries - PMC",       "url": "https://pmc.ncbi.nlm.nih.gov/articles/PMC9912224/",
  • Network accessline 22
    "title": "Sustainability trends and gaps in the textile, apparel and fashion industries - PMC",       "url": "https://pmc.ncbi.nlm.nih.gov/articles/PMC9912224/",       "content": "As a result, stakeholders are becoming more aware of the eff
  • Network accessline 23
    "url": "https://pmc.ncbi.nlm.nih.gov/articles/PMC9912224/",
  • Network accessline 35
    {       "title": "How can we make textile and garment production sustainable? | World Economic Forum",       "url": "https://www.weforum.org/stories/2023/11/textile-garment-industry-sustainability-policy-measures/",
  • Network accessline 36
    "title": "How can we make textile and garment production sustainable? | World Economic Forum",       "url": "https://www.weforum.org/stories/2023/11/textile-garment-industry-sustainability-policy-measures/",       "content": "Making the tex
  • Network accessline 37
    "url": "https://www.weforum.org/stories/2023/11/textile-garment-industry-sustainability-policy-measures/",

scripts/channels/brave/output-analysis.md

  • Network accessline 31
    官方来源(2026-10-25):[Brave Search 帮助](https://search.brave.com/help)、[网页设置](https://search.brave.com/settings)。本次帮助正文抓取返回 HTTP 429,相关说明由官方页面的联网检索内容核对;未获得固定条数的官方证据。
  • Network accessline 33
    来源为 `https://search.brave.com/search` 的网页 HTML,`brave_search.py` 只解析 `data-type="web"` 容器;`brave_no_api.py` 继承相同实现。联合搜索名称 `brave_direct` 归并到 `brave`,两者共用本文。网页标题来自 `div.title`,链接来自其最近的祖先 `a`,摘要来自 `generic-snippet` 内的 `div.content`。

scripts/channels/deepseek/README.md

  • Network accessline 17
    [Credential-related source omitted]
  • Access to secretsline 17
    [Credential-related source omitted]
  • Network accessline 18
    # 默认 https://api.deepseek.com
  • Network accessline 22
    API Key 在 [DeepSeek 开放平台](https://platform.deepseek.com/) 创建。
  • Network accessline 48
    | `--need-content` | 返回网页正文 | False | | `--api-key` | API Key(优先于环境变量) | - | | `--api-url` | 接口地址 | https://api.deepseek.com |
  • Network accessline 49
    | `--api-key` | API Key(优先于环境变量) | - | | `--api-url` | 接口地址 | https://api.deepseek.com | | `--timeout` | 请求超时秒数 | 30 |
  • Network accessline 50
    | `--api-url` | 接口地址 | https://api.deepseek.com |
  • Network accessline 66
    - [DeepSeek 搜索 API 参考](https://api-docs.deepseek.com/zh-cn/api/search/)
  • Network accessline 67
    - [DeepSeek 搜索与抓取指南](https://api-docs.deepseek.com/zh-cn/guides/search/)

scripts/channels/deepseek/deepseek_search.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 9
    [Credential-related source omitted]
  • Network accessline 11
    DEFAULT_API_URL = "https://api.deepseek.com"
  • Network accessline 17
    """DeepSeek 联网搜索客户端,接口文档 https://api-docs.deepseek.com/zh-cn/api/search/"""
  • Access to secretsline 21
    [Credential-related source omitted]
  • Access to secretsline 23
    [Credential-related source omitted]
  • Access to secretsline 24
    [Credential-related source omitted]
  • Access to secretsline 25
    [Credential-related source omitted]
  • Access to secretsline 26
    [Credential-related source omitted]
  • Network accessline 28
    [Credential-related source omitted]
  • Access to secretsline 28
    [Credential-related source omitted]
  • Network accessline 29
    self.session = requests.Session()
  • Access to secretsline 31
    [Credential-related source omitted]
  • Access to secretsline 120
    [Credential-related source omitted]
  • Access to secretsline 123
    [Credential-related source omitted]
  • Network accessline 133
    parser.add_argument("--need-content", action="store_true", help="返回网页正文")     parser.add_argument("--api-key", help="DeepSeek API Key")     parser.add_argument("--api-url", help="DeepSeek API 地址,默认 https://api.deepseek.com")
  • Network accessline 134
    parser.add_argument("--api-key", help="DeepSeek API Key")     parser.add_argument("--api-url", help="DeepSeek API 地址,默认 https://api.deepseek.com")     parser.add_argument("--timeout", type=int, default=30, help="请求超时秒数")
  • Network accessline 135
    parser.add_argument("--api-url", help="DeepSeek API 地址,默认 https://api.deepseek.com")
  • Access to secretsline 141
    [Credential-related source omitted]

scripts/channels/deepseek/examples/search-result.json

  • Network accessline 7
    {       "title": "Textile and fashion under transformation: Toward regenerative design",       "href": "https://www.sciencedirect.com/science/chapter/edited-volume/abs/pii/B9780443458316000053?via%3Dihub",
  • Network accessline 8
    "title": "Textile and fashion under transformation: Toward regenerative design",       "href": "https://www.sciencedirect.com/science/chapter/edited-volume/abs/pii/B9780443458316000053?via%3Dihub",       "body": "This chapter argues ... Key
  • Network accessline 9
    "href": "https://www.sciencedirect.com/science/chapter/edited-volume/abs/pii/B9780443458316000053?via%3Dihub",
  • Network accessline 13
    "content": "",       "site_name": "ScienceDirect.com",       "site_icon": "https://cdn.deepseek.com/site-icons/sciencedirect.com",
  • Network accessline 14
    "site_name": "ScienceDirect.com",       "site_icon": "https://cdn.deepseek.com/site-icons/sciencedirect.com",       "date": "2026-10-22T16:00:00+00:00",
  • Network accessline 15
    "site_icon": "https://cdn.deepseek.com/site-icons/sciencedirect.com",
  • Network accessline 20
    {       "title": "Circ® and H&M Group Advance Circular Fashion through UNIDO-Led SWITCH2CE Program | UNIDO",       "href": "https://www.unido.org/news/circr-and-hm-group-advance-circular-fashion-through-unido-led-switch2ce-program",
  • Network accessline 21
    "title": "Circ® and H&M Group Advance Circular Fashion through UNIDO-Led SWITCH2CE Program | UNIDO",       "href": "https://www.unido.org/news/circr-and-hm-group-advance-circular-fashion-through-unido-led-switch2ce-program",       "body": "
  • Network accessline 22
    "href": "https://www.unido.org/news/circr-and-hm-group-advance-circular-fashion-through-unido-led-switch2ce-program",
  • Network accessline 26
    "content": "",       "site_name": "United Nations Industrial Development Organization (UNIDO)",       "site_icon": "https://cdn.deepseek.com/site-icons/unido.org",
  • Network accessline 27
    "site_name": "United Nations Industrial Development Organization (UNIDO)",       "site_icon": "https://cdn.deepseek.com/site-icons/unido.org",       "date": null,
  • Network accessline 28
    "site_icon": "https://cdn.deepseek.com/site-icons/unido.org",
  • Network accessline 33
    {       "title": "UNIDO-led circular textile pilot delivers second commercial product | UNIDO",       "href": "https://www.unido.org/news/unido-led-circular-textile-pilot-delivers-second-commercial-product",
  • Network accessline 34
    "title": "UNIDO-led circular textile pilot delivers second commercial product | UNIDO",       "href": "https://www.unido.org/news/unido-led-circular-textile-pilot-delivers-second-commercial-product",       "body": "The achievement demonstra
  • Network accessline 35
    "href": "https://www.unido.org/news/unido-led-circular-textile-pilot-delivers-second-commercial-product",
  • Network accessline 39
    "content": "",       "site_name": "United Nations Industrial Development Organization (UNIDO)",       "site_icon": "https://cdn.deepseek.com/site-icons/unido.org",
  • Network accessline 40
    "site_name": "United Nations Industrial Development Organization (UNIDO)",       "site_icon": "https://cdn.deepseek.com/site-icons/unido.org",       "date": "2026-10-06T16:00:00+00:00",
  • Network accessline 41
    "site_icon": "https://cdn.deepseek.com/site-icons/unido.org",

scripts/channels/deepseek/output-analysis.md

  • Network accessline 39
    核查日期:2026-10-25。官方来源:[Search API](https://api-docs.deepseek.com/zh-cn/api/search/)。

scripts/channels/duckduckgo/duckduckgo_no_api.py

  • Executable scriptline 1
    Executable file

scripts/channels/duckduckgo/duckduckgo_search.py

  • Executable scriptline 1
    Executable file
  • Network accessline 27
    deadline = SearchDeadline(timeout)         with self.session:             home = request(self.session, 'GET', 'https://duckduckgo.com/', params={'q': query, 't': 'h_', 'ia': 'web'}, timeout=deadline.remaining())
  • Network accessline 28
    with self.session:             home = request(self.session, 'GET', 'https://duckduckgo.com/', params={'q': query, 't': 'h_', 'ia': 'web'}, timeout=deadline.remaining())             links = document(home).xpath('//link[@id="deep_preload_link
  • Network accessline 29
    home = request(self.session, 'GET', 'https://duckduckgo.com/', params={'q': query, 't': 'h_', 'ia': 'web'}, timeout=deadline.remaining())
  • Network accessline 38
    if dict(parse_qsl(parsed.query)).get('o') != 'json':                     endpoint = endpoint.replace('/d.js?', '/d.js?o=json&', 1)                 response = request(self.session, 'GET', endpoint, timeout=deadline.remaining(), headers={'Ref
  • Network accessline 39
    endpoint = endpoint.replace('/d.js?', '/d.js?o=json&', 1)                 response = request(self.session, 'GET', endpoint, timeout=deadline.remaining(), headers={'Referer': 'https://duckduckgo.com/', 'Accept': '*/*', 'Sec-Fetch-Dest': 'scr
  • Network accessline 40
    response = request(self.session, 'GET', endpoint, timeout=deadline.remaining(), headers={'Referer': 'https://duckduckgo.com/', 'Accept': '*/*', 'Sec-Fetch-Dest': 'script', 'Sec-Fetch-Mode': 'no-cors', 'Sec-Fetch-Site': 'same-site'})
  • Network accessline 46
    if not next_links:                         return []                     endpoint = urljoin('https://duckduckgo.com/', next_links[-1])
  • Network accessline 47
    return []                     endpoint = urljoin('https://duckduckgo.com/', next_links[-1])             items = []
  • Network accessline 48
    endpoint = urljoin('https://duckduckgo.com/', next_links[-1])

scripts/channels/duckduckgo/examples/search-result.json

  • Network accessline 7
    {       "title": "Green production and consumption of textiles and apparel: Importance ...",       "url": "https://www.sciencedirect.com/science/article/pii/S219985312400074X",
  • Network accessline 8
    "title": "Green production and consumption of textiles and apparel: Importance ...",       "url": "https://www.sciencedirect.com/science/article/pii/S219985312400074X",       "content": "The textile and clothing industry can do its part to 
  • Network accessline 9
    "url": "https://www.sciencedirect.com/science/article/pii/S219985312400074X",
  • Network accessline 21
    {       "title": "PDF Review on Sustainability in the Textiles and Apparel Industry: A ...",       "url": "https://ijsmt.org/wp-content/uploads/2026/04/Review-on-Sustainability-in-the-Textiles-and-Apparel-Industry-A-Comprehensive-Analysis-o
  • Network accessline 22
    "title": "PDF Review on Sustainability in the Textiles and Apparel Industry: A ...",       "url": "https://ijsmt.org/wp-content/uploads/2026/04/Review-on-Sustainability-in-the-Textiles-and-Apparel-Industry-A-Comprehensive-Analysis-of-Enviro
  • Network accessline 23
    "url": "https://ijsmt.org/wp-content/uploads/2026/04/Review-on-Sustainability-in-the-Textiles-and-Apparel-Industry-A-Comprehensive-Analysis-of-Environmental-and-Social-Impacts.pdf",
  • Network accessline 35
    {       "title": "Sustainability in Apparel Industry: The Complete Guide (2027)",       "url": "https://ordnur.com/apparel/sustainability-in-apparel-industry/",
  • Network accessline 36
    "title": "Sustainability in Apparel Industry: The Complete Guide (2027)",       "url": "https://ordnur.com/apparel/sustainability-in-apparel-industry/",       "content": "Sustainability in the apparel industry explained: environmental impac
  • Network accessline 37
    "url": "https://ordnur.com/apparel/sustainability-in-apparel-industry/",

scripts/channels/duckduckgo/output-analysis.md

  • Network accessline 30
    官方来源(2026-10-25):[DuckDuckGo 网页 URL 参数说明](https://duckduckgo.com/duckduckgo-help-pages/settings/params/),已读取正文,未发现固定最大结果数承诺。

scripts/channels/duckduckgo_instant/duckduckgo_instant.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 21
    ENGINE_NAME = "duckduckgo_instant"     ENGINE_DISPLAY_NAME = "DuckDuckGo 即时答案"     API_URL = "https://api.duckduckgo.com/?q={keyword}&format=json&no_redirect=1&no_html=1"
  • Network accessline 22
    ENGINE_DISPLAY_NAME = "DuckDuckGo 即时答案"     API_URL = "https://api.duckduckgo.com/?q={keyword}&format=json&no_redirect=1&no_html=1"     REQUIRES_PROXY = False
  • Network accessline 23
    API_URL = "https://api.duckduckgo.com/?q={keyword}&format=json&no_redirect=1&no_html=1"
  • Network accessline 26
    def __init__(self, proxy=None):         self.proxy = proxy         self.session = requests.Session()
  • Network accessline 27
    self.proxy = proxy         self.session = requests.Session()         self.session.headers.update({
  • Network accessline 28
    self.session = requests.Session()

scripts/channels/duckduckgo_instant/examples/search-result.json

  • Network accessline 3
    {       "title": "Textile An umbrella term that includes various fiber-based materials, including ",       "href": "https://duckduckgo.com/Textile",
  • Network accessline 4
    "title": "Textile An umbrella term that includes various fiber-based materials, including ",       "href": "https://duckduckgo.com/Textile",       "body": "Textile An umbrella term that includes various fiber-based materials, including fibe
  • Network accessline 5
    "href": "https://duckduckgo.com/Textile",
  • Network accessline 10
    {       "title": "Textile industry The textile industry is primarily concerned with the design, pr",       "href": "https://duckduckgo.com/Textile_industry",
  • Network accessline 11
    "title": "Textile industry The textile industry is primarily concerned with the design, pr",       "href": "https://duckduckgo.com/Textile_industry",       "body": "Textile industry The textile industry is primarily concerned with the desig
  • Network accessline 12
    "href": "https://duckduckgo.com/Textile_industry",
  • Network accessline 17
    {       "title": "Textile (markup language) A lightweight markup language that uses a text formatt",       "href": "https://duckduckgo.com/Textile_(markup_language)",
  • Network accessline 18
    "title": "Textile (markup language) A lightweight markup language that uses a text formatt",       "href": "https://duckduckgo.com/Textile_(markup_language)",       "body": "Textile (markup language) A lightweight markup language that uses 
  • Network accessline 19
    "href": "https://duckduckgo.com/Textile_(markup_language)",

scripts/channels/duckduckgo_instant/output-analysis.md

  • Network accessline 31
    官方来源(2026-10-25):[DuckDuckGo 官方仓库中的 Instant Answer API 文档](https://github.com/duckduckgo/duckduckgo-publisher/blob/master/share/site/duckduckgo/api.tx)、[同一文档原文](https://raw.githubusercontent.com/duckduckgo/duckduckgo-publisher/master/share/
  • Network accessline 33
    `duckduckgo_instant.py` 调用 `https://api.duckduckgo.com/` 的匿名 JSON Instant Answer 接口,使用 `format=json&no_redirect=1&no_html=1`。内容范围为即时答案、主要结果与相关主题。函数返回数组,脚本 `--json` 包装为 `{results:array<object>}`;上游响应对象本身不会完整输出。

scripts/channels/ecosia/ecosia_no_api.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 21
    ENGINE_NAME = "ecosia"     ENGINE_DISPLAY_NAME = "Ecosia"     SEARCH_URL = "https://www.ecosia.org/search?q={keyword}"
  • Network accessline 22
    ENGINE_DISPLAY_NAME = "Ecosia"     SEARCH_URL = "https://www.ecosia.org/search?q={keyword}"     REQUIRES_PROXY = True
  • Network accessline 23
    SEARCH_URL = "https://www.ecosia.org/search?q={keyword}"

scripts/channels/ecosia/output-analysis.md

  • Network accessline 28
    官方来源(2026-10-25):[Ecosia 搜索设置](https://support.ecosia.org/article/349-ecosia-settings),已读取正文;[搜索提供商说明](https://support.ecosia.org/article/579-search-results-providers),经官方页面检索核对。
  • Network accessline 30
    `ecosia_no_api.py` 请求 `https://www.ecosia.org/search?q=...`,输入来源为网页 HTML。它继承 `no_api/base_engine.py`,用 lxml 解析响应;没有调用 Ecosia JSON API,也没有浏览器执行页面脚本。结果容器匹配 `article` 的 result 类名或 `div.result-web`。

scripts/channels/exa/README.md

  • Network accessline 25
    mcporter config add exa "https://mcp.exa.ai/mcp?tools=web_search_exa,web_search_advanced_exa,get_code_context_exa,crawling_exa,company_research_exa,people_search_exa,deep_researcher_start,deep_researcher_check"
  • Network accessline 75
    # 抓取网页内容 python scripts/channels/exa/exa_mcp.py crawl "https://example.com" --max-chars 5000
  • Network accessline 76
    python scripts/channels/exa/exa_mcp.py crawl "https://example.com" --max-chars 5000
  • Network accessline 131
    mcporter config add exa "https://mcp.exa.ai/mcp?tools=web_search_exa,web_search_advanced_exa,get_code_context_exa,crawling_exa,company_research_exa,people_search_exa,deep_researcher_start,deep_researcher_check"
  • Network accessline 142
    - [Exa MCP Server GitHub](https://github.com/exa-labs/exa-mcp-server)
  • Network accessline 143
    - [Exa npm](https://www.npmjs.com/package/exa-mcp-server)
  • Network accessline 144
    - [Exa Docs](https://exa.ai/docs)

scripts/channels/exa/exa_mcp.py

  • Executable scriptline 1
    #!/usr/bin/env python3

scripts/channels/exa/exa_search.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 6
    免费额度:1000 次/月(约 33 次/天) 申请 API Key: https://exa.ai/
  • Network accessline 7
    申请 API Key: https://exa.ai/
  • Access to secretsline 8
    [Credential-related source omitted]
  • Access to secretsline 22
    [Credential-related source omitted]
  • Network accessline 28
    ENGINE_NAME = "exa"     ENGINE_DISPLAY_NAME = "Exa AI 搜索"     API_ENDPOINT = "https://api.exa.ai/search"
  • Network accessline 29
    [Credential-related source omitted]
  • Network accessline 30
    API_ENDPOINT = "https://api.exa.ai/search"
  • Access to secretsline 31
    [Credential-related source omitted]
  • Access to secretsline 33
    [Credential-related source omitted]
  • Access to secretsline 38
    [Credential-related source omitted]
  • Access to secretsline 40
    [Credential-related source omitted]
  • Access to secretsline 41
    [Credential-related source omitted]
  • Access to secretsline 42
    [Credential-related source omitted]
  • Network accessline 44
    self.session = requests.Session()
  • Access to secretsline 46
    [Credential-related source omitted]
  • Access to secretsline 167
    [Credential-related source omitted]
  • Access to secretsline 173
    [Credential-related source omitted]
  • Access to secretsline 202
    [Credential-related source omitted]
  • Access to secretsline 210
    [Credential-related source omitted]

scripts/channels/exa/examples/search-result.json

  • Network accessline 7
    {       "title": "Sustainability and Circularity in the Textile Value Chain",       "href": "https://wedocs.unep.org/rest/api/core/bitstreams/c2f77b11-e92c-4428-a8bf-1a63c9e5ad45/content",
  • Network accessline 8
    "title": "Sustainability and Circularity in the Textile Value Chain",       "href": "https://wedocs.unep.org/rest/api/core/bitstreams/c2f77b11-e92c-4428-a8bf-1a63c9e5ad45/content",       "body": "Sustainability and Circularity in the Textil
  • Network accessline 9
    "href": "https://wedocs.unep.org/rest/api/core/bitstreams/c2f77b11-e92c-4428-a8bf-1a63c9e5ad45/content",
  • Network accessline 14
    {       "title": "Sustainability trends and gaps in the textile, apparel and fashion industries | Environment, Development and Sustainability | Springer Nature Link",       "href": "https://link.springer.com/article/10.1007/s10668-022-02887
  • Network accessline 15
    "title": "Sustainability trends and gaps in the textile, apparel and fashion industries | Environment, Development and Sustainability | Springer Nature Link",       "href": "https://link.springer.com/article/10.1007/s10668-022-02887-2",    
  • Network accessline 16
    "href": "https://link.springer.com/article/10.1007/s10668-022-02887-2",
  • Network accessline 21
    {       "title": "Textiles Strategy - Environment - European Commission",       "href": "https://environment.ec.europa.eu/strategy/textiles-strategy_en",
  • Network accessline 22
    "title": "Textiles Strategy - Environment - European Commission",       "href": "https://environment.ec.europa.eu/strategy/textiles-strategy_en",       "body": "Textiles Strategy - Environment - European Commission\n\n# Sustainable and Circ
  • Network accessline 23
    "href": "https://environment.ec.europa.eu/strategy/textiles-strategy_en",

scripts/channels/exa/mcporter.json

  • Network accessline 2
    "mcpServers": {     "exa": {       "baseUrl": "https://mcp.exa.ai/mcp?tools=web_search_exa,web_search_advanced_exa,get_code_context_exa,crawling_exa,company_research_exa,people_search_exa,deep_researcher_start,deep_researcher_check"
  • Network accessline 3
    "exa": {       "baseUrl": "https://mcp.exa.ai/mcp?tools=web_search_exa,web_search_advanced_exa,get_code_context_exa,crawling_exa,company_research_exa,people_search_exa,deep_researcher_start,deep_researcher_check"     }
  • Network accessline 4
    "baseUrl": "https://mcp.exa.ai/mcp?tools=web_search_exa,web_search_advanced_exa,get_code_context_exa,crawling_exa,company_research_exa,people_search_exa,deep_researcher_start,deep_researcher_check"

scripts/channels/exa/output-analysis.md

  • Network accessline 35
    核查日期:2026-10-25。官方来源:[Search API](https://exa.ai/docs/reference/search)。

scripts/channels/firecrawl/README.md

  • Network accessline 18
    [Credential-related source omitted]
  • Access to secretsline 18
    [Credential-related source omitted]
  • Network accessline 19
    # 自建服务时填写,默认 https://api.firecrawl.dev
  • Network accessline 23
    API Key 在 [Firecrawl 控制台](https://www.firecrawl.dev/app) 创建。
  • Network accessline 58
    | `--formats` | 抓取格式 | markdown | | `--api-key` | API Key(优先于环境变量) | - | | `--api-url` | 接口地址 | https://api.firecrawl.dev |
  • Network accessline 59
    | `--api-key` | API Key(优先于环境变量) | - | | `--api-url` | 接口地址 | https://api.firecrawl.dev | | `--json` | JSON 输出 | False |
  • Network accessline 60
    | `--api-url` | 接口地址 | https://api.firecrawl.dev |
  • Network accessline 73
    - [Firecrawl 搜索文档](https://docs.firecrawl.dev/features/search)
  • Network accessline 74
    - [Firecrawl API 参考](https://docs.firecrawl.dev/api-reference/endpoint/search)

scripts/channels/firecrawl/examples/search-result.json

  • Network accessline 7
    {       "title": "Environmental Sustainability in the Fashion Industry",       "href": "https://www.genevaenvironmentnetwork.org/resources/updates/sustainable-fashion/",
  • Network accessline 8
    "title": "Environmental Sustainability in the Fashion Industry",       "href": "https://www.genevaenvironmentnetwork.org/resources/updates/sustainable-fashion/",       "body": "The fashion and textiles sector relies heavily on synthetic fib
  • Network accessline 9
    "href": "https://www.genevaenvironmentnetwork.org/resources/updates/sustainable-fashion/",
  • Network accessline 15
    {       "title": "Sustainable Clothing Manufacturing: Best Practices for Eco-Friendly ...",       "href": "https://www.white2labelmanufacturing.com/blog/sustainable-clothing-manufacturing",
  • Network accessline 16
    "title": "Sustainable Clothing Manufacturing: Best Practices for Eco-Friendly ...",       "href": "https://www.white2labelmanufacturing.com/blog/sustainable-clothing-manufacturing",       "body": "To achieve sustainable garment manufacturin
  • Network accessline 17
    "href": "https://www.white2labelmanufacturing.com/blog/sustainable-clothing-manufacturing",
  • Network accessline 23
    {       "title": "Sustainable Fashion and Apparel Design: Standards | Certificates",       "href": "https://guides.library.cornell.edu/c.php?g=662121&p=5277662",
  • Network accessline 24
    "title": "Sustainable Fashion and Apparel Design: Standards | Certificates",       "href": "https://guides.library.cornell.edu/c.php?g=662121&p=5277662",       "body": "# Sustainable Fashion and Apparel Design: Standards | Certificates | Se
  • Network accessline 25
    "href": "https://guides.library.cornell.edu/c.php?g=662121&p=5277662",
  • Network accessline 26
    "body": "# Sustainable Fashion and Apparel Design: Standards | Certificates | Seals | Initiatives | Responsibility\n## Environment\nHeadquartered in Switzerland Remei AG coordinates the production of sustainable textiles made from organic c

scripts/channels/firecrawl/firecrawl_search.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 11
    [Credential-related source omitted]
  • Network accessline 13
    DEFAULT_API_URL = "https://api.firecrawl.dev"
  • Network accessline 17
    """Firecrawl 搜索客户端,接口文档 https://docs.firecrawl.dev/features/search"""
  • Access to secretsline 21
    [Credential-related source omitted]
  • Access to secretsline 23
    [Credential-related source omitted]
  • Access to secretsline 24
    [Credential-related source omitted]
  • Access to secretsline 25
    [Credential-related source omitted]
  • Access to secretsline 26
    [Credential-related source omitted]
  • Network accessline 28
    [Credential-related source omitted]
  • Access to secretsline 28
    [Credential-related source omitted]
  • Network accessline 29
    self.session = requests.Session()
  • Access to secretsline 31
    [Credential-related source omitted]
  • Access to secretsline 179
    [Credential-related source omitted]
  • Access to secretsline 182
    [Credential-related source omitted]
  • Network accessline 198
    parser.add_argument("--formats", nargs="+", default=["markdown"], help="抓取格式")     parser.add_argument("--api-key", help="Firecrawl API Key")     parser.add_argument("--api-url", help="Firecrawl API 地址,默认 https://api.firecrawl.dev")
  • Network accessline 199
    parser.add_argument("--api-key", help="Firecrawl API Key")     parser.add_argument("--api-url", help="Firecrawl API 地址,默认 https://api.firecrawl.dev")     parser.add_argument("--timeout", type=int, default=60, help="请求超时秒数")
  • Network accessline 200
    parser.add_argument("--api-url", help="Firecrawl API 地址,默认 https://api.firecrawl.dev")
  • Access to secretsline 206
    [Credential-related source omitted]

scripts/channels/firecrawl/output-analysis.md

  • Network accessline 42
    核查日期:2026-10-25。官方来源:[Search v2](https://docs.firecrawl.dev/api-reference/endpoint/search)。

scripts/channels/github_search/README.md

  • Network accessline 18
    [Credential-related source omitted]
  • Network accessline 66
    WebFetch https://deepwiki.com/owner/repo "你的问题"
  • Network accessline 71
    WebFetch https://deepwiki.com/vercel/next.js "请总结 Next.js 的核心架构"
  • Network accessline 72
    WebFetch https://deepwiki.com/facebook/react "React 的 Fiber 架构是如何工作的?"

scripts/channels/github_search/deepwiki.md

  • Network accessline 19
    claude mcp add -s user -t http deepwiki https://mcp.deepwiki.com/mcp
  • Network accessline 27
    "mcpServers": {     "deepwiki": {       "url": "https://mcp.deepwiki.com/mcp",
  • Network accessline 28
    "deepwiki": {       "url": "https://mcp.deepwiki.com/mcp",       "transport": "http"
  • Network accessline 29
    "url": "https://mcp.deepwiki.com/mcp",
  • Network accessline 40
    "mcpServers": {     "deepwiki": {       "serverUrl": "https://mcp.deepwiki.com/sse"
  • Network accessline 41
    "deepwiki": {       "serverUrl": "https://mcp.deepwiki.com/sse"     }
  • Network accessline 42
    "serverUrl": "https://mcp.deepwiki.com/sse"
  • Network accessline 105
    - 官网: https://deepwiki.com
  • Network accessline 106
    - 文档: https://docs.devin.ai/work-with-devin/deepwiki
  • Network accessline 107
    - GitHub: https://github.com/CognitionAI/deepwiki

scripts/channels/github_search/examples/search-result.json

  • Network accessline 15
    "id": 228436136,         "node_id": "U_kgDODZ2oqA",         "avatar_url": "https://avatars.githubusercontent.com/u/228436136?v=4",
  • Network accessline 16
    "node_id": "U_kgDODZ2oqA",         "avatar_url": "https://avatars.githubusercontent.com/u/228436136?v=4",         "gravatar_id": "",
  • Network accessline 17
    "avatar_url": "https://avatars.githubusercontent.com/u/228436136?v=4",
  • Network accessline 18
    "gravatar_id": "",         "url": "https://api.github.com/users/ruhianjum0425-code",         "html_url": "https://github.com/ruhianjum0425-code",
  • Network accessline 19
    "url": "https://api.github.com/users/ruhianjum0425-code",
  • Network accessline 20
    "html_url": "https://github.com/ruhianjum0425-code",
  • Network accessline 21
    "followers_url": "https://api.github.com/users/ruhianjum0425-code/followers",
  • Network accessline 22
    "following_url": "https://api.github.com/users/ruhianjum0425-code/following{/other_user}",
  • Network accessline 23
    "gists_url": "https://api.github.com/users/ruhianjum0425-code/gists{/gist_id}",
  • Network accessline 24
    "starred_url": "https://api.github.com/users/ruhianjum0425-code/starred{/owner}{/repo}",
  • Network accessline 25
    "subscriptions_url": "https://api.github.com/users/ruhianjum0425-code/subscriptions",
  • Network accessline 26
    "organizations_url": "https://api.github.com/users/ruhianjum0425-code/orgs",
  • Network accessline 27
    "repos_url": "https://api.github.com/users/ruhianjum0425-code/repos",
  • Network accessline 28
    "events_url": "https://api.github.com/users/ruhianjum0425-code/events{/privacy}",
  • Network accessline 29
    "received_events_url": "https://api.github.com/users/ruhianjum0425-code/received_events",
  • Network accessline 32
    "site_admin": false       },       "html_url": "https://github.com/ruhianjum0425-code/apparel-textiles-data-integration",
  • Network accessline 33
    },       "html_url": "https://github.com/ruhianjum0425-code/apparel-textiles-data-integration",       "description": "A Python-based data integration project for the apparel and textiles industry. Combines retail sales, inventory, and mater
  • Network accessline 34
    "html_url": "https://github.com/ruhianjum0425-code/apparel-textiles-data-integration",
  • Network accessline 35
    "description": "A Python-based data integration project for the apparel and textiles industry. Combines retail sales, inventory, and material sustainability datasets through data cleaning, normalization, reconciliation, transformation, and 
  • Network accessline 36
    "fork": false,       "url": "https://api.github.com/repos/ruhianjum0425-code/apparel-textiles-data-integration",       "forks_url": "https://api.github.com/repos/ruhianjum0425-code/apparel-textiles-data-integration/forks",
  • Network accessline 37
    "url": "https://api.github.com/repos/ruhianjum0425-code/apparel-textiles-data-integration",
  • Network accessline 38
    "forks_url": "https://api.github.com/repos/ruhianjum0425-code/apparel-textiles-data-integration/forks",
  • Network accessline 39
    "keys_url": "https://api.github.com/repos/ruhianjum0425-code/apparel-textiles-data-integration/keys{/key_id}",
  • Network accessline 40
    "collaborators_url": "https://api.github.com/repos/ruhianjum0425-code/apparel-textiles-data-integration/collaborators{/collaborator}",
  • Network accessline 41
    "teams_url": "https://api.github.com/repos/ruhianjum0425-code/apparel-textiles-data-integration/teams",
  • Network accessline 42
    "hooks_url": "https://api.github.com/repos/ruhianjum0425-code/apparel-textiles-data-integration/hooks",
  • Network accessline 43
    "issue_events_url": "https://api.github.com/repos/ruhianjum0425-code/apparel-textiles-data-integration/issues/events{/number}",
  • Network accessline 44
    "events_url": "https://api.github.com/repos/ruhianjum0425-code/apparel-textiles-data-integration/events",
  • Network accessline 45
    "assignees_url": "https://api.github.com/repos/ruhianjum0425-code/apparel-textiles-data-integration/assignees{/user}",
  • Network accessline 46
    "branches_url": "https://api.github.com/repos/ruhianjum0425-code/apparel-textiles-data-integration/branches{/branch}",
  • Network accessline 47
    "tags_url": "https://api.github.com/repos/ruhianjum0425-code/apparel-textiles-data-integration/tags",
  • Network accessline 48
    "blobs_url": "https://api.github.com/repos/ruhianjum0425-code/apparel-textiles-data-integration/git/blobs{/sha}",
  • Network accessline 49
    "git_tags_url": "https://api.github.com/repos/ruhianjum0425-code/apparel-textiles-data-integration/git/tags{/sha}",
  • Network accessline 50
    "git_refs_url": "https://api.github.com/repos/ruhianjum0425-code/apparel-textiles-data-integration/git/refs{/sha}",
  • Network accessline 51
    "trees_url": "https://api.github.com/repos/ruhianjum0425-code/apparel-textiles-data-integration/git/trees{/sha}",
  • Network accessline 52
    "statuses_url": "https://api.github.com/repos/ruhianjum0425-code/apparel-textiles-data-integration/statuses/{sha}",
  • Network accessline 53
    "languages_url": "https://api.github.com/repos/ruhianjum0425-code/apparel-textiles-data-integration/languages",
  • Network accessline 54
    "stargazers_url": "https://api.github.com/repos/ruhianjum0425-code/apparel-textiles-data-integration/stargazers",
  • Network accessline 55
    "contributors_url": "https://api.github.com/repos/ruhianjum0425-code/apparel-textiles-data-integration/contributors",
  • Network accessline 56
    "subscribers_url": "https://api.github.com/repos/ruhianjum0425-code/apparel-textiles-data-integration/subscribers",
  • Network accessline 57
    "subscription_url": "https://api.github.com/repos/ruhianjum0425-code/apparel-textiles-data-integration/subscription",
  • Network accessline 58
    "commits_url": "https://api.github.com/repos/ruhianjum0425-code/apparel-textiles-data-integration/commits{/sha}",
  • Network accessline 59
    "git_commits_url": "https://api.github.com/repos/ruhianjum0425-code/apparel-textiles-data-integration/git/commits{/sha}",
  • Network accessline 60
    "comments_url": "https://api.github.com/repos/ruhianjum0425-code/apparel-textiles-data-integration/comments{/number}",
  • Network accessline 61
    "issue_comment_url": "https://api.github.com/repos/ruhianjum0425-code/apparel-textiles-data-integration/issues/comments{/number}",
  • Network accessline 62
    "contents_url": "https://api.github.com/repos/ruhianjum0425-code/apparel-textiles-data-integration/contents/{+path}",
  • Network accessline 63
    "compare_url": "https://api.github.com/repos/ruhianjum0425-code/apparel-textiles-data-integration/compare/{base}...{head}",
  • Network accessline 64
    "merges_url": "https://api.github.com/repos/ruhianjum0425-code/apparel-textiles-data-integration/merges",
  • Network accessline 65
    "archive_url": "https://api.github.com/repos/ruhianjum0425-code/apparel-textiles-data-integration/{archive_format}{/ref}",
  • Network accessline 66
    "downloads_url": "https://api.github.com/repos/ruhianjum0425-code/apparel-textiles-data-integration/downloads",
  • Network accessline 67
    "issues_url": "https://api.github.com/repos/ruhianjum0425-code/apparel-textiles-data-integration/issues{/number}",
  • Network accessline 68
    "pulls_url": "https://api.github.com/repos/ruhianjum0425-code/apparel-textiles-data-integration/pulls{/number}",
  • Network accessline 69
    "milestones_url": "https://api.github.com/repos/ruhianjum0425-code/apparel-textiles-data-integration/milestones{/number}",
  • Network accessline 70
    "notifications_url": "https://api.github.com/repos/ruhianjum0425-code/apparel-textiles-data-integration/notifications{?since,all,participating}",
  • Network accessline 71
    "labels_url": "https://api.github.com/repos/ruhianjum0425-code/apparel-textiles-data-integration/labels{/name}",
  • Network accessline 72
    "releases_url": "https://api.github.com/repos/ruhianjum0425-code/apparel-textiles-data-integration/releases{/id}",
  • Network accessline 73
    "deployments_url": "https://api.github.com/repos/ruhianjum0425-code/apparel-textiles-data-integration/deployments",
  • Network accessline 77
    "git_url": "git://github.com/ruhianjum0425-code/apparel-textiles-data-integration.git",       "ssh_url": "git@github.com:ruhianjum0425-code/apparel-textiles-data-integration.git",       "clone_url": "https://github.com/ruhianjum0425-code/ap
  • Network accessline 78
    "ssh_url": "git@github.com:ruhianjum0425-code/apparel-textiles-data-integration.git",       "clone_url": "https://github.com/ruhianjum0425-code/apparel-textiles-data-integration.git",       "svn_url": "https://github.com/ruhianjum0425-code/
  • Network accessline 79
    "clone_url": "https://github.com/ruhianjum0425-code/apparel-textiles-data-integration.git",
  • Network accessline 80
    "svn_url": "https://github.com/ruhianjum0425-code/apparel-textiles-data-integration",
  • Network accessline 126
    "id": 163707498,         "node_id": "U_kgDOCcH6ag",         "avatar_url": "https://avatars.githubusercontent.com/u/163707498?v=4",
  • Network accessline 127
    "node_id": "U_kgDOCcH6ag",         "avatar_url": "https://avatars.githubusercontent.com/u/163707498?v=4",         "gravatar_id": "",
  • Network accessline 128
    "avatar_url": "https://avatars.githubusercontent.com/u/163707498?v=4",
  • Network accessline 129
    "gravatar_id": "",         "url": "https://api.github.com/users/ftzon",         "html_url": "https://github.com/ftzon",
  • Network accessline 130
    "url": "https://api.github.com/users/ftzon",
  • Network accessline 131
    "html_url": "https://github.com/ftzon",
  • Network accessline 132
    "followers_url": "https://api.github.com/users/ftzon/followers",
  • Network accessline 133
    "following_url": "https://api.github.com/users/ftzon/following{/other_user}",
  • Network accessline 134
    "gists_url": "https://api.github.com/users/ftzon/gists{/gist_id}",
  • Network accessline 135
    "starred_url": "https://api.github.com/users/ftzon/starred{/owner}{/repo}",
  • Network accessline 136
    "subscriptions_url": "https://api.github.com/users/ftzon/subscriptions",
  • Network accessline 137
    "organizations_url": "https://api.github.com/users/ftzon/orgs",
  • Network accessline 138
    "repos_url": "https://api.github.com/users/ftzon/repos",
  • Network accessline 139
    "events_url": "https://api.github.com/users/ftzon/events{/privacy}",
  • Network accessline 140
    "received_events_url": "https://api.github.com/users/ftzon/received_events",
  • Network accessline 143
    "site_admin": false       },       "html_url": "https://github.com/ftzon/SCM_Sustainability_Digitalization_DutchT-A",
  • Network accessline 144
    },       "html_url": "https://github.com/ftzon/SCM_Sustainability_Digitalization_DutchT-A",       "description": "Sustainability performance of Dutch firms and the role of digitalization: The case of textile and apparel industry",
  • Network accessline 145
    "html_url": "https://github.com/ftzon/SCM_Sustainability_Digitalization_DutchT-A",
  • Network accessline 146
    "description": "Sustainability performance of Dutch firms and the role of digitalization: The case of textile and apparel industry",       "fork": false,       "url": "https://api.github.com/repos/ftzon/SCM_Sustainability_Digitalization_Dut
  • Network accessline 147
    "fork": false,       "url": "https://api.github.com/repos/ftzon/SCM_Sustainability_Digitalization_DutchT-A",       "forks_url": "https://api.github.com/repos/ftzon/SCM_Sustainability_Digitalization_DutchT-A/forks",
  • Network accessline 148
    "url": "https://api.github.com/repos/ftzon/SCM_Sustainability_Digitalization_DutchT-A",
  • Network accessline 149
    "forks_url": "https://api.github.com/repos/ftzon/SCM_Sustainability_Digitalization_DutchT-A/forks",
  • Network accessline 150
    "keys_url": "https://api.github.com/repos/ftzon/SCM_Sustainability_Digitalization_DutchT-A/keys{/key_id}",
  • Network accessline 151
    "collaborators_url": "https://api.github.com/repos/ftzon/SCM_Sustainability_Digitalization_DutchT-A/collaborators{/collaborator}",
  • Network accessline 152
    "teams_url": "https://api.github.com/repos/ftzon/SCM_Sustainability_Digitalization_DutchT-A/teams",
  • Network accessline 153
    "hooks_url": "https://api.github.com/repos/ftzon/SCM_Sustainability_Digitalization_DutchT-A/hooks",
  • Network accessline 154
    "issue_events_url": "https://api.github.com/repos/ftzon/SCM_Sustainability_Digitalization_DutchT-A/issues/events{/number}",
  • Network accessline 155
    "events_url": "https://api.github.com/repos/ftzon/SCM_Sustainability_Digitalization_DutchT-A/events",
  • Network accessline 156
    "assignees_url": "https://api.github.com/repos/ftzon/SCM_Sustainability_Digitalization_DutchT-A/assignees{/user}",
  • Network accessline 157
    "branches_url": "https://api.github.com/repos/ftzon/SCM_Sustainability_Digitalization_DutchT-A/branches{/branch}",
  • Network accessline 158
    "tags_url": "https://api.github.com/repos/ftzon/SCM_Sustainability_Digitalization_DutchT-A/tags",
  • Network accessline 159
    "blobs_url": "https://api.github.com/repos/ftzon/SCM_Sustainability_Digitalization_DutchT-A/git/blobs{/sha}",
  • Network accessline 160
    "git_tags_url": "https://api.github.com/repos/ftzon/SCM_Sustainability_Digitalization_DutchT-A/git/tags{/sha}",
  • Network accessline 161
    "git_refs_url": "https://api.github.com/repos/ftzon/SCM_Sustainability_Digitalization_DutchT-A/git/refs{/sha}",
  • Network accessline 162
    "trees_url": "https://api.github.com/repos/ftzon/SCM_Sustainability_Digitalization_DutchT-A/git/trees{/sha}",
  • Network accessline 163
    "statuses_url": "https://api.github.com/repos/ftzon/SCM_Sustainability_Digitalization_DutchT-A/statuses/{sha}",
  • Network accessline 164
    "languages_url": "https://api.github.com/repos/ftzon/SCM_Sustainability_Digitalization_DutchT-A/languages",
  • Network accessline 165
    "stargazers_url": "https://api.github.com/repos/ftzon/SCM_Sustainability_Digitalization_DutchT-A/stargazers",
  • Network accessline 166
    "contributors_url": "https://api.github.com/repos/ftzon/SCM_Sustainability_Digitalization_DutchT-A/contributors",
  • Network accessline 167
    "subscribers_url": "https://api.github.com/repos/ftzon/SCM_Sustainability_Digitalization_DutchT-A/subscribers",
  • Network accessline 168
    "subscription_url": "https://api.github.com/repos/ftzon/SCM_Sustainability_Digitalization_DutchT-A/subscription",
  • Network accessline 169
    "commits_url": "https://api.github.com/repos/ftzon/SCM_Sustainability_Digitalization_DutchT-A/commits{/sha}",
  • Network accessline 170
    "git_commits_url": "https://api.github.com/repos/ftzon/SCM_Sustainability_Digitalization_DutchT-A/git/commits{/sha}",
  • Network accessline 171
    "comments_url": "https://api.github.com/repos/ftzon/SCM_Sustainability_Digitalization_DutchT-A/comments{/number}",
  • Network accessline 172
    "issue_comment_url": "https://api.github.com/repos/ftzon/SCM_Sustainability_Digitalization_DutchT-A/issues/comments{/number}",
  • Network accessline 173
    "contents_url": "https://api.github.com/repos/ftzon/SCM_Sustainability_Digitalization_DutchT-A/contents/{+path}",
  • Network accessline 174
    "compare_url": "https://api.github.com/repos/ftzon/SCM_Sustainability_Digitalization_DutchT-A/compare/{base}...{head}",
  • Network accessline 175
    "merges_url": "https://api.github.com/repos/ftzon/SCM_Sustainability_Digitalization_DutchT-A/merges",
  • Network accessline 176
    "archive_url": "https://api.github.com/repos/ftzon/SCM_Sustainability_Digitalization_DutchT-A/{archive_format}{/ref}",
  • Network accessline 177
    "downloads_url": "https://api.github.com/repos/ftzon/SCM_Sustainability_Digitalization_DutchT-A/downloads",
  • Network accessline 178
    "issues_url": "https://api.github.com/repos/ftzon/SCM_Sustainability_Digitalization_DutchT-A/issues{/number}",
  • Network accessline 179
    "pulls_url": "https://api.github.com/repos/ftzon/SCM_Sustainability_Digitalization_DutchT-A/pulls{/number}",
  • Network accessline 180
    "milestones_url": "https://api.github.com/repos/ftzon/SCM_Sustainability_Digitalization_DutchT-A/milestones{/number}",
  • Network accessline 181
    "notifications_url": "https://api.github.com/repos/ftzon/SCM_Sustainability_Digitalization_DutchT-A/notifications{?since,all,participating}",
  • Network accessline 182
    "labels_url": "https://api.github.com/repos/ftzon/SCM_Sustainability_Digitalization_DutchT-A/labels{/name}",
  • Network accessline 183
    "releases_url": "https://api.github.com/repos/ftzon/SCM_Sustainability_Digitalization_DutchT-A/releases{/id}",
  • Network accessline 184
    "deployments_url": "https://api.github.com/repos/ftzon/SCM_Sustainability_Digitalization_DutchT-A/deployments",
  • Network accessline 188
    "git_url": "git://github.com/ftzon/SCM_Sustainability_Digitalization_DutchT-A.git",       "ssh_url": "git@github.com:ftzon/SCM_Sustainability_Digitalization_DutchT-A.git",       "clone_url": "https://github.com/ftzon/SCM_Sustainability_Digi
  • Network accessline 189
    "ssh_url": "git@github.com:ftzon/SCM_Sustainability_Digitalization_DutchT-A.git",       "clone_url": "https://github.com/ftzon/SCM_Sustainability_Digitalization_DutchT-A.git",       "svn_url": "https://github.com/ftzon/SCM_Sustainability_Di
  • Network accessline 190
    "clone_url": "https://github.com/ftzon/SCM_Sustainability_Digitalization_DutchT-A.git",
  • Network accessline 191
    "svn_url": "https://github.com/ftzon/SCM_Sustainability_Digitalization_DutchT-A",
  • Network accessline 237
    "id": 208210674,         "node_id": "U_kgDODGkK8g",         "avatar_url": "https://avatars.githubusercontent.com/u/208210674?v=4",
  • Network accessline 238
    "node_id": "U_kgDODGkK8g",         "avatar_url": "https://avatars.githubusercontent.com/u/208210674?v=4",         "gravatar_id": "",
  • Network accessline 239
    "avatar_url": "https://avatars.githubusercontent.com/u/208210674?v=4",
  • Network accessline 240
    "gravatar_id": "",         "url": "https://api.github.com/users/mahtab2011",         "html_url": "https://github.com/mahtab2011",
  • Network accessline 241
    "url": "https://api.github.com/users/mahtab2011",
  • Network accessline 242
    "html_url": "https://github.com/mahtab2011",
  • Network accessline 243
    "followers_url": "https://api.github.com/users/mahtab2011/followers",
  • Network accessline 244
    "following_url": "https://api.github.com/users/mahtab2011/following{/other_user}",
  • Network accessline 245
    "gists_url": "https://api.github.com/users/mahtab2011/gists{/gist_id}",
  • Network accessline 246
    "starred_url": "https://api.github.com/users/mahtab2011/starred{/owner}{/repo}",
  • Network accessline 247
    "subscriptions_url": "https://api.github.com/users/mahtab2011/subscriptions",
  • Network accessline 248
    "organizations_url": "https://api.github.com/users/mahtab2011/orgs",
  • Network accessline 249
    "repos_url": "https://api.github.com/users/mahtab2011/repos",
  • Network accessline 250
    "events_url": "https://api.github.com/users/mahtab2011/events{/privacy}",
  • Network accessline 251
    "received_events_url": "https://api.github.com/users/mahtab2011/received_events",
  • Network accessline 254
    "site_admin": false       },       "html_url": "https://github.com/mahtab2011/bangladeshapparel",
  • Network accessline 255
    },       "html_url": "https://github.com/mahtab2011/bangladeshapparel",       "description": "Bangladesh Apparel Industry Digital Marketplace connecting global buyers, garment manufacturers, textile mills, accessories suppliers, sustainabil
  • Network accessline 256
    "html_url": "https://github.com/mahtab2011/bangladeshapparel",
  • Network accessline 257
    "description": "Bangladesh Apparel Industry Digital Marketplace connecting global buyers, garment manufacturers, textile mills, accessories suppliers, sustainability initiatives, workforce intelligence and AI-powered factory analytics.",   
  • Network accessline 258
    "fork": false,       "url": "https://api.github.com/repos/mahtab2011/bangladeshapparel",       "forks_url": "https://api.github.com/repos/mahtab2011/bangladeshapparel/forks",
  • Network accessline 259
    "url": "https://api.github.com/repos/mahtab2011/bangladeshapparel",
  • Network accessline 260
    "forks_url": "https://api.github.com/repos/mahtab2011/bangladeshapparel/forks",
  • Network accessline 261
    "keys_url": "https://api.github.com/repos/mahtab2011/bangladeshapparel/keys{/key_id}",
  • Network accessline 262
    "collaborators_url": "https://api.github.com/repos/mahtab2011/bangladeshapparel/collaborators{/collaborator}",
  • Network accessline 263
    "teams_url": "https://api.github.com/repos/mahtab2011/bangladeshapparel/teams",
  • Network accessline 264
    "hooks_url": "https://api.github.com/repos/mahtab2011/bangladeshapparel/hooks",
  • Network accessline 265
    "issue_events_url": "https://api.github.com/repos/mahtab2011/bangladeshapparel/issues/events{/number}",
  • Network accessline 266
    "events_url": "https://api.github.com/repos/mahtab2011/bangladeshapparel/events",
  • Network accessline 267
    "assignees_url": "https://api.github.com/repos/mahtab2011/bangladeshapparel/assignees{/user}",
  • Network accessline 268
    "branches_url": "https://api.github.com/repos/mahtab2011/bangladeshapparel/branches{/branch}",
  • Network accessline 269
    "tags_url": "https://api.github.com/repos/mahtab2011/bangladeshapparel/tags",
  • Network accessline 270
    "blobs_url": "https://api.github.com/repos/mahtab2011/bangladeshapparel/git/blobs{/sha}",
  • Network accessline 271
    "git_tags_url": "https://api.github.com/repos/mahtab2011/bangladeshapparel/git/tags{/sha}",
  • Network accessline 272
    "git_refs_url": "https://api.github.com/repos/mahtab2011/bangladeshapparel/git/refs{/sha}",
  • Network accessline 273
    "trees_url": "https://api.github.com/repos/mahtab2011/bangladeshapparel/git/trees{/sha}",
  • Network accessline 274
    "statuses_url": "https://api.github.com/repos/mahtab2011/bangladeshapparel/statuses/{sha}",
  • Network accessline 275
    "languages_url": "https://api.github.com/repos/mahtab2011/bangladeshapparel/languages",
  • Network accessline 276
    "stargazers_url": "https://api.github.com/repos/mahtab2011/bangladeshapparel/stargazers",
  • Network accessline 277
    "contributors_url": "https://api.github.com/repos/mahtab2011/bangladeshapparel/contributors",
  • Network accessline 278
    "subscribers_url": "https://api.github.com/repos/mahtab2011/bangladeshapparel/subscribers",
  • Network accessline 279
    "subscription_url": "https://api.github.com/repos/mahtab2011/bangladeshapparel/subscription",
  • Network accessline 280
    "commits_url": "https://api.github.com/repos/mahtab2011/bangladeshapparel/commits{/sha}",
  • Network accessline 281
    "git_commits_url": "https://api.github.com/repos/mahtab2011/bangladeshapparel/git/commits{/sha}",
  • Network accessline 282
    "comments_url": "https://api.github.com/repos/mahtab2011/bangladeshapparel/comments{/number}",
  • Network accessline 283
    "issue_comment_url": "https://api.github.com/repos/mahtab2011/bangladeshapparel/issues/comments{/number}",
  • Network accessline 284
    "contents_url": "https://api.github.com/repos/mahtab2011/bangladeshapparel/contents/{+path}",
  • Network accessline 285
    "compare_url": "https://api.github.com/repos/mahtab2011/bangladeshapparel/compare/{base}...{head}",
  • Network accessline 286
    "merges_url": "https://api.github.com/repos/mahtab2011/bangladeshapparel/merges",
  • Network accessline 287
    "archive_url": "https://api.github.com/repos/mahtab2011/bangladeshapparel/{archive_format}{/ref}",
  • Network accessline 288
    "downloads_url": "https://api.github.com/repos/mahtab2011/bangladeshapparel/downloads",
  • Network accessline 289
    "issues_url": "https://api.github.com/repos/mahtab2011/bangladeshapparel/issues{/number}",
  • Network accessline 290
    "pulls_url": "https://api.github.com/repos/mahtab2011/bangladeshapparel/pulls{/number}",
  • Network accessline 291
    "milestones_url": "https://api.github.com/repos/mahtab2011/bangladeshapparel/milestones{/number}",
  • Network accessline 292
    "notifications_url": "https://api.github.com/repos/mahtab2011/bangladeshapparel/notifications{?since,all,participating}",
  • Network accessline 293
    "labels_url": "https://api.github.com/repos/mahtab2011/bangladeshapparel/labels{/name}",
  • Network accessline 294
    "releases_url": "https://api.github.com/repos/mahtab2011/bangladeshapparel/releases{/id}",
  • Network accessline 295
    "deployments_url": "https://api.github.com/repos/mahtab2011/bangladeshapparel/deployments",
  • Network accessline 299
    "git_url": "git://github.com/mahtab2011/bangladeshapparel.git",       "ssh_url": "git@github.com:mahtab2011/bangladeshapparel.git",       "clone_url": "https://github.com/mahtab2011/bangladeshapparel.git",
  • Network accessline 300
    "ssh_url": "git@github.com:mahtab2011/bangladeshapparel.git",       "clone_url": "https://github.com/mahtab2011/bangladeshapparel.git",       "svn_url": "https://github.com/mahtab2011/bangladeshapparel",
  • Network accessline 301
    "clone_url": "https://github.com/mahtab2011/bangladeshapparel.git",
  • Network accessline 302
    "svn_url": "https://github.com/mahtab2011/bangladeshapparel",
  • Network accessline 303
    "homepage": "https://bangladeshapparel.vercel.app",

scripts/channels/github_search/github_search.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 49
    BASE_URL = "https://api.github.com"
  • Network accessline 59
    [Credential-related source omitted]
  • Network accessline 60
    self.session = requests.Session()
  • Access to secretsline 568
    [Credential-related source omitted]

scripts/channels/github_search/output-analysis.md

  • Network accessline 31
    官方来源(资料整理日期:2026-10-25):[REST Search:仓库、代码、Issue 参数与搜索限制](https://docs.github.com/en/rest/search/search?apiVersion=2022-11-28)。

scripts/channels/google_search/README.md

  • Access to secretsline 5
    [Credential-related source omitted]
  • Network accessline 24
    1. 访问 [Google Cloud Console](https://console.cloud.google.com/apis/credentials) 获取 API Key
  • Network accessline 25
    2. 访问 [Programmable Search Engine](https://programmablesearchengine.google.com/) 创建自定义搜索引擎
  • Access to secretsline 28
    [Credential-related source omitted]
  • Network accessline 80
    - [Google Custom Search API 文档](https://developers.google.com/custom-search/v1/overview)
  • Network accessline 81
    - [API 配额说明](https://developers.google.com/custom-search/v1/overview#pricing)

scripts/channels/google_search/examples/search-result.json

  • Network accessline 9
    "title": "Environmental Sustainability in the Fashion Industry",       "htmlTitle": "Environmental <b>Sustainability</b> in the <b>Fashion Industry</b>",       "link": "https://www.genevaenvironmentnetwork.org/resources/updates/sustainable-
  • Network accessline 10
    "htmlTitle": "Environmental <b>Sustainability</b> in the <b>Fashion Industry</b>",       "link": "https://www.genevaenvironmentnetwork.org/resources/updates/sustainable-fashion/",       "displayLink": "www.genevaenvironmentnetwork.org",
  • Network accessline 11
    "link": "https://www.genevaenvironmentnetwork.org/resources/updates/sustainable-fashion/",
  • Network accessline 13
    "snippet": "Sep 17, 2026 ... Discarded clothing often ends up in the Global South, where inadequate waste management leads to dumping, burning, and severe environmental and ...",       "htmlSnippet": "Sep 17, 2026 <b>...</b> Discarded <b>cl
  • Network accessline 14
    "htmlSnippet": "Sep 17, 2026 <b>...</b> Discarded <b>clothing</b> often ends up in the Global South, where inadequate waste management leads to dumping, burning, and severe environmental and&nbsp;...",       "formattedUrl": "https://www.gen
  • Network accessline 15
    "formattedUrl": "https://www.genevaenvironmentnetwork.org/resources/.../sustainable-fashio...",
  • Network accessline 16
    "htmlFormattedUrl": "https://www.genevaenvironmentnetwork.org/resources/.../<b>sustainable</b>-fashio...",
  • Network accessline 18
    "cse_thumbnail": [           {             "src": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcST5TQ9wU8_PrzUmHAS_5V7zYo1eAgmuF7FqU5g8cTurfZ6l_OlWXMYNU66&s",
  • Network accessline 19
    {             "src": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcST5TQ9wU8_PrzUmHAS_5V7zYo1eAgmuF7FqU5g8cTurfZ6l_OlWXMYNU66&s",             "width": "290",
  • Network accessline 20
    "src": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcST5TQ9wU8_PrzUmHAS_5V7zYo1eAgmuF7FqU5g8cTurfZ6l_OlWXMYNU66&s",
  • Network accessline 25
    "metatags": [           {             "og:image": "https://www.genevaenvironmentnetwork.org/wp-content/uploads/2021/03/becca-mchaffie-Fzde_6ITjkw-unsplash-aspect-ratio-2000-1200-1024x614.jpg",
  • Network accessline 26
    {             "og:image": "https://www.genevaenvironmentnetwork.org/wp-content/uploads/2021/03/becca-mchaffie-Fzde_6ITjkw-unsplash-aspect-ratio-2000-1200-1024x614.jpg",             "og:type": "article",
  • Network accessline 27
    "og:image": "https://www.genevaenvironmentnetwork.org/wp-content/uploads/2021/03/becca-mchaffie-Fzde_6ITjkw-unsplash-aspect-ratio-2000-1200-1024x614.jpg",
  • Network accessline 30
    "twitter:title": "Environmental Sustainability in the Fashion Industry",             "viewport": "width=device-width, initial-scale=1",             "twitter:url": "https://www.genevaenvironmentnetwork.org/resources/updates/sustainable-fashi
  • Network accessline 31
    "viewport": "width=device-width, initial-scale=1",             "twitter:url": "https://www.genevaenvironmentnetwork.org/resources/updates/sustainable-fashion/",             "twitter:description": "Fast fashion comes at an astonishing enviro
  • Network accessline 32
    "twitter:url": "https://www.genevaenvironmentnetwork.org/resources/updates/sustainable-fashion/",
  • Network accessline 33
    "twitter:description": "Fast fashion comes at an astonishing environmental and social cost. While the impacts of the fashion industry in terms of pollution, water use, carbon emissions, human rights, and gender inequality are increasing, th
  • Network accessline 34
    "og:title": "Environmental Sustainability in the Fashion Industry",             "og:url": "https://www.genevaenvironmentnetwork.org/resources/updates/sustainable-fashion/",             "og:description": "Fast fashion comes at an astonishing
  • Network accessline 35
    "og:url": "https://www.genevaenvironmentnetwork.org/resources/updates/sustainable-fashion/",
  • Network accessline 36
    "og:description": "Fast fashion comes at an astonishing environmental and social cost. While the impacts of the fashion industry in terms of pollution, water use, carbon emissions, human rights, and gender inequality are increasing, the nee
  • Network accessline 37
    "twitter:image": "https://www.genevaenvironmentnetwork.org/wp-content/uploads/2021/03/becca-mchaffie-Fzde_6ITjkw-unsplash-aspect-ratio-2000-1200-1024x614.jpg"
  • Network accessline 40
    "cse_image": [           {             "src": "https://www.genevaenvironmentnetwork.org/wp-content/uploads/2021/03/becca-mchaffie-Fzde_6ITjkw-unsplash-aspect-ratio-2000-1200-1024x614.jpg"
  • Network accessline 41
    {             "src": "https://www.genevaenvironmentnetwork.org/wp-content/uploads/2021/03/becca-mchaffie-Fzde_6ITjkw-unsplash-aspect-ratio-2000-1200-1024x614.jpg"           }
  • Network accessline 42
    "src": "https://www.genevaenvironmentnetwork.org/wp-content/uploads/2021/03/becca-mchaffie-Fzde_6ITjkw-unsplash-aspect-ratio-2000-1200-1024x614.jpg"
  • Network accessline 49
    "title": "Sustainable Apparel and Textiles Conference: Europe",       "htmlTitle": "<b>Sustainable Apparel</b> and <b>Textiles</b> Conference: Europe",       "link": "https://innovationforum.co.uk/conferences/sustainable-apparel-and-textile
  • Network accessline 50
    "htmlTitle": "<b>Sustainable Apparel</b> and <b>Textiles</b> Conference: Europe",       "link": "https://innovationforum.co.uk/conferences/sustainable-apparel-and-textiles-conference/",       "displayLink": "innovationforum.co.uk",
  • Network accessline 51
    "link": "https://innovationforum.co.uk/conferences/sustainable-apparel-and-textiles-conference/",
  • Network accessline 53
    "snippet": "\"The IF conference has really become a meeting point for the textiles and apparel industry that attracts all kinds of important stakeholders. Not only are ...",       "htmlSnippet": "&quot;The IF conference has really become a 
  • Network accessline 54
    "htmlSnippet": "&quot;The IF conference has really become a meeting point for the <b>textiles</b> and <b>apparel industry</b> that attracts all kinds of important stakeholders. Not only are&nbsp;...",       "formattedUrl": "https://innovati
  • Network accessline 55
    "formattedUrl": "https://innovationforum.co.uk/.../sustainable-apparel-and-textiles-conferenc...",
  • Network accessline 56
    "htmlFormattedUrl": "https://innovationforum.co.uk/.../<b>sustainable</b>-<b>apparel</b>-and-<b>textile</b>s-conferenc...",
  • Network accessline 58
    "Event": [           {             "image": "https://innovationforum.co.uk/wp-content/uploads/2025/09/ApparelEU26-BG-under-5MB_.png",
  • Network accessline 59
    {             "image": "https://innovationforum.co.uk/wp-content/uploads/2025/09/ApparelEU26-BG-under-5MB_.png",             "endDate": "2026-04-30",
  • Network accessline 60
    "image": "https://innovationforum.co.uk/wp-content/uploads/2025/09/ApparelEU26-BG-under-5MB_.png",
  • Network accessline 75
    "og:title": "Sustainable Apparel and Textiles Conference: Europe - Innovation Forum",             "og:locale": "en_GB",             "msapplication-tileimage": "https://beta.innovationforum.co.uk/wp-content/uploads/2025/12/if-favicon.svg",
  • Network accessline 76
    "og:locale": "en_GB",             "msapplication-tileimage": "https://beta.innovationforum.co.uk/wp-content/uploads/2025/12/if-favicon.svg",             "og:url": "https://innovationforum.co.uk/conferences/sustainable-apparel-and-textiles-c
  • Network accessline 77
    "msapplication-tileimage": "https://beta.innovationforum.co.uk/wp-content/uploads/2025/12/if-favicon.svg",
  • Network accessline 78
    "og:url": "https://innovationforum.co.uk/conferences/sustainable-apparel-and-textiles-conference/",
  • Network accessline 86
    "title": "Sustainable fashion is at a turning point - what's needed now",       "htmlTitle": "<b>Sustainable fashion</b> is at a turning point - what&#39;s needed now",       "link": "https://www.weforum.org/stories/climate-action-and-waste
  • Network accessline 87
    "htmlTitle": "<b>Sustainable fashion</b> is at a turning point - what&#39;s needed now",       "link": "https://www.weforum.org/stories/climate-action-and-waste-reduction/sustainable-fashion-innovation-solutions-textile-waste",       "displ
  • Network accessline 88
    "link": "https://www.weforum.org/stories/climate-action-and-waste-reduction/sustainable-fashion-innovation-solutions-textile-waste",
  • Network accessline 90
    "snippet": "Aug 4, 2026 ... The textile sector is reaching a turning point when it comes to innovative sustainable fashion.Image: Unsplash/VitalyGariev. Avatar Image.",       "htmlSnippet": "Aug 4, 2026 <b>...</b> The <b>textile sector</b> 
  • Network accessline 91
    "htmlSnippet": "Aug 4, 2026 <b>...</b> The <b>textile sector</b> is reaching a turning point when it comes to innovative <b>sustainable fashion</b>.Image: Unsplash/VitalyGariev. Avatar Image.",       "formattedUrl": "https://www.weforum.org
  • Network accessline 92
    "formattedUrl": "https://www.weforum.org/.../sustainable-fashion-innovation-solutions-textil...",
  • Network accessline 93
    "htmlFormattedUrl": "https://www.weforum.org/.../<b>sustainable</b>-fashion-innovation-solutions-<b>textil</b>...",
  • Network accessline 95
    "cse_thumbnail": [           {             "src": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRBH4i_gPQDuyGzcVUIvkfzSzowMYHznTyfSPdF0y4IUgydXrZlWhH8CVvT&s",
  • Network accessline 96
    {             "src": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRBH4i_gPQDuyGzcVUIvkfzSzowMYHznTyfSPdF0y4IUgydXrZlWhH8CVvT&s",             "width": "300",
  • Network accessline 97
    "src": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRBH4i_gPQDuyGzcVUIvkfzSzowMYHznTyfSPdF0y4IUgydXrZlWhH8CVvT&s",
  • Network accessline 102
    "metatags": [           {             "og:image": "https://assets.weforum.org/article/image/tGhFA-sRQ5pFWBktaJWnxmu08KxudNZSdNA6A6DQqy4.jpg",
  • Network accessline 103
    {             "og:image": "https://assets.weforum.org/article/image/tGhFA-sRQ5pFWBktaJWnxmu08KxudNZSdNA6A6DQqy4.jpg",             "og:type": "article",
  • Network accessline 104
    "og:image": "https://assets.weforum.org/article/image/tGhFA-sRQ5pFWBktaJWnxmu08KxudNZSdNA6A6DQqy4.jpg",
  • Network accessline 108
    "og:site_name": "World Economic Forum",             "viewport": "width=device-width, initial-scale=1",             "twitter:url": "https://www.weforum.org/stories/climate-action-and-waste-reduction/sustainable-fashion-innovation-solutions-t
  • Network accessline 109
    "viewport": "width=device-width, initial-scale=1",             "twitter:url": "https://www.weforum.org/stories/climate-action-and-waste-reduction/sustainable-fashion-innovation-solutions-textile-waste/",             "twitter:description": "
  • Network accessline 110
    "twitter:url": "https://www.weforum.org/stories/climate-action-and-waste-reduction/sustainable-fashion-innovation-solutions-textile-waste/",
  • Network accessline 111
    "twitter:description": "Circularity in fashion requires new commitments from industry. Here's what the right combination of policy, inclusion and innovation could make possible.",             "og:title": "Sustainable fashion is at a turning
  • Network accessline 112
    "og:title": "Sustainable fashion is at a turning point - what's needed now | World Economic Forum",             "og:url": "https://www.weforum.org/stories/climate-action-and-waste-reduction/sustainable-fashion-innovation-solutions-textile-w
  • Network accessline 113
    "og:url": "https://www.weforum.org/stories/climate-action-and-waste-reduction/sustainable-fashion-innovation-solutions-textile-waste/",
  • Network accessline 114
    "og:description": "Circularity in fashion requires new commitments from industry. Here's what the right combination of policy, inclusion and innovation could make possible.",             "twitter:image": "https://assets.weforum.org/article/
  • Network accessline 115
    "twitter:image": "https://assets.weforum.org/article/image/tGhFA-sRQ5pFWBktaJWnxmu08KxudNZSdNA6A6DQqy4.jpg"
  • Network accessline 118
    "cse_image": [           {             "src": "https://assets.weforum.org/article/image/tGhFA-sRQ5pFWBktaJWnxmu08KxudNZSdNA6A6DQqy4.jpg"
  • Network accessline 119
    {             "src": "https://assets.weforum.org/article/image/tGhFA-sRQ5pFWBktaJWnxmu08KxudNZSdNA6A6DQqy4.jpg"           }
  • Network accessline 120
    "src": "https://assets.weforum.org/article/image/tGhFA-sRQ5pFWBktaJWnxmu08KxudNZSdNA6A6DQqy4.jpg"

scripts/channels/google_search/google_hk_no_api.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 20
    ENGINE_NAME = "google_hk"     ENGINE_DISPLAY_NAME = "Google 香港"     SEARCH_URL = "https://www.google.com.hk/search?q={keyword}"
  • Network accessline 21
    ENGINE_DISPLAY_NAME = "Google 香港"     SEARCH_URL = "https://www.google.com.hk/search?q={keyword}"     REQUIRES_PROXY = True
  • Network accessline 22
    SEARCH_URL = "https://www.google.com.hk/search?q={keyword}"

scripts/channels/google_search/google_no_api.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 21
    ENGINE_NAME = "google"     ENGINE_DISPLAY_NAME = "Google 搜索"     SEARCH_URL = "https://www.google.com/search?q={keyword}"
  • Network accessline 22
    ENGINE_DISPLAY_NAME = "Google 搜索"     SEARCH_URL = "https://www.google.com/search?q={keyword}"     REQUIRES_PROXY = True
  • Network accessline 23
    SEARCH_URL = "https://www.google.com/search?q={keyword}"

scripts/channels/google_search/google_search.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 19
    [Credential-related source omitted]
  • Network accessline 25
    BASE_URL = "https://www.googleapis.com/customsearch/v1"
  • Access to secretsline 27
    [Credential-related source omitted]
  • Access to secretsline 32
    [Credential-related source omitted]
  • Access to secretsline 35
    [Credential-related source omitted]
  • Access to secretsline 38
    [Credential-related source omitted]
  • Access to secretsline 39
    [Credential-related source omitted]
  • Access to secretsline 41
    [Credential-related source omitted]
  • Access to secretsline 67
    [Credential-related source omitted]
  • Network accessline 81
    response = requests.get(self.BASE_URL, params=params, timeout=10)

scripts/channels/google_search/output-analysis.md

  • Network accessline 35
    核查日期:2026-10-25。官方来源:[Custom Search cse.list](https://developers.google.com/custom-search/v1/reference/rest/v1/cse/list)。

scripts/channels/jina/README.md

  • Access to secretsline 17
    [Credential-related source omitted]
  • Access to secretsline 30
    [Credential-related source omitted]

scripts/channels/jina/examples/search-result.json

  • Network accessline 7
    {       "title": "Environmental Sustainability in the Fashion Industry",       "href": "https://www.genevaenvironmentnetwork.org/resources/updates/sustainable-fashion/",
  • Network accessline 8
    "title": "Environmental Sustainability in the Fashion Industry",       "href": "https://www.genevaenvironmentnetwork.org/resources/updates/sustainable-fashion/",       "body": "The fashion and textiles sector relies heavily on synthetic fib
  • Network accessline 9
    "href": "https://www.genevaenvironmentnetwork.org/resources/updates/sustainable-fashion/",
  • Network accessline 12
    {       "title": "Sustainability in the Textile and Apparel Industries",       "href": "https://link.springer.com/book/10.1007/978-3-030-37929-2",
  • Network accessline 13
    "title": "Sustainability in the Textile and Apparel Industries",       "href": "https://link.springer.com/book/10.1007/978-3-030-37929-2",       "body": "by SS Muthu · Cited by 79 — This volume explores novel trends and concepts in sustaina
  • Network accessline 14
    "href": "https://link.springer.com/book/10.1007/978-3-030-37929-2",
  • Network accessline 17
    {       "title": "Green production and consumption of textiles and apparel",       "href": "https://www.sciencedirect.com/science/article/pii/S219985312400074X",
  • Network accessline 18
    "title": "Green production and consumption of textiles and apparel",       "href": "https://www.sciencedirect.com/science/article/pii/S219985312400074X",       "body": "by MT Rahaman · 2024 · Cited by 248 — To satisfy customer demand for et
  • Network accessline 19
    "href": "https://www.sciencedirect.com/science/article/pii/S219985312400074X",

scripts/channels/jina/jina_search.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 22
    [Credential-related source omitted]
  • Network accessline 28
    [Credential-related source omitted]
  • Access to secretsline 28
    [Credential-related source omitted]
  • Network accessline 29
    [Credential-related source omitted]
  • Access to secretsline 29
    [Credential-related source omitted]
  • Network accessline 30
    self.base_url = "https://s.jina.ai/"
  • Access to secretsline 31
    [Credential-related source omitted]
  • Access to secretsline 32
    [Credential-related source omitted]
  • Access to secretsline 36
    [Credential-related source omitted]
  • Network accessline 42
    response = requests.get(self.base_url, headers=headers, params=params, timeout=30)
  • Access to secretsline 101
    [Credential-related source omitted]

scripts/channels/jina/output-analysis.md

  • Network accessline 36
    核查日期:2026-10-25。官方来源:[Jina API Reference](https://docs.jina.ai/)。

scripts/channels/jisilu/jisilu_no_api.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 20
    ENGINE_NAME = "jisilu"     ENGINE_DISPLAY_NAME = "基Silver"     SEARCH_URL = "https://app.jisilu.cn/search/?q={keyword}"
  • Network accessline 21
    ENGINE_DISPLAY_NAME = "基Silver"     SEARCH_URL = "https://app.jisilu.cn/search/?q={keyword}"     REQUIRES_PROXY = False
  • Network accessline 22
    SEARCH_URL = "https://app.jisilu.cn/search/?q={keyword}"

scripts/channels/jisilu/output-analysis.md

  • Network accessline 15
    | 参数 | 默认值 | 含义与实现范围 | | --- | --- | --- | | `query` | 必填 | 编码为 `https://app.jisilu.cn/search/` 的 `q` |
  • Network accessline 16
    | --- | --- | --- | | `query` | 必填 | 编码为 `https://app.jisilu.cn/search/` 的 `q` | | `max_results` / `--max-results` | `None` | 解析后本地切片;独立脚本传 `0` 返回空数组 |
  • Network accessline 17
    | `query` | 必填 | 编码为 `https://app.jisilu.cn/search/` 的 `q` |
  • Network accessline 28
    官方来源与核实范围(2026-10-25):[集思录用户指引与常见问题](https://app.jisilu.cn/question/420922)、源码使用的官方搜索入口 `https://app.jisilu.cn/search/`。联网检索未找到官方搜索条数承诺,本次未调用搜索入口重新测试。
  • Network accessline 30
    `jisilu_no_api.py` 通过 `https://app.jisilu.cn/search/?q=...` 读取网页 HTML,继承 `no_api/base_engine.py`。当前解析对象为 `div.search-result` 与 class 包含 row 的表格 `tr`,偏向名称和表格说明的结构;脚本没有调用金融数据 JSON 接口。

scripts/channels/kimi/README.md

  • Network accessline 18
    [Credential-related source omitted]
  • Access to secretsline 18
    [Credential-related source omitted]
  • Network accessline 19
    # 默认 https://api.moonshot.cn/v1
  • Network accessline 25
    API Key 在 [Kimi 开放平台](https://platform.kimi.com) 创建。
  • Network accessline 53
    | `--end` | 时间窗口终点 | - | | `--api-key` | API Key(优先于环境变量) | - | | `--base-url` | 接口根地址 | https://api.moonshot.cn/v1 |
  • Network accessline 54
    | `--api-key` | API Key(优先于环境变量) | - | | `--base-url` | 接口根地址 | https://api.moonshot.cn/v1 | | `--timeout` | 服务端超时秒数,1-60 | 30 |
  • Network accessline 55
    | `--base-url` | 接口根地址 | https://api.moonshot.cn/v1 |
  • Network accessline 77
    - [联网搜索指南](https://platform.kimi.com/docs/guide/use-web-search)
  • Network accessline 78
    - [独立搜索实践](https://platform.kimi.com/docs/guide/best-practices-for-web-search)
  • Network accessline 79
    - [搜索计费](https://platform.kimi.com/docs/pricing/websearch)

scripts/channels/kimi/examples/search-result.json

  • Network accessline 7
    {       "title": "Environmental Sustainability in the Fashion Industry",       "href": "https://www.genevaenvironmentnetwork.org/resources/updates/sustainable-fashion/",
  • Network accessline 8
    "title": "Environmental Sustainability in the Fashion Industry",       "href": "https://www.genevaenvironmentnetwork.org/resources/updates/sustainable-fashion/",       "body": "The fashion and textiles sector relies heavily on synthetic fib
  • Network accessline 9
    "href": "https://www.genevaenvironmentnetwork.org/resources/updates/sustainable-fashion/",
  • Network accessline 16
    {       "title": "Sustainable Clothing Manufacturing: Best Practices for Eco ...",       "href": "https://www.white2labelmanufacturing.com/blog/sustainable-clothing-manufacturing",
  • Network accessline 17
    "title": "Sustainable Clothing Manufacturing: Best Practices for Eco ...",       "href": "https://www.white2labelmanufacturing.com/blog/sustainable-clothing-manufacturing",       "body": "To achieve sustainable garment manufacturing, minimi
  • Network accessline 18
    "href": "https://www.white2labelmanufacturing.com/blog/sustainable-clothing-manufacturing",
  • Network accessline 25
    {       "title": "Standards | Certificates | Seals | Initiatives | Responsibility",       "href": "https://guides.library.cornell.edu/c.php?g=662121&p=5277662",
  • Network accessline 26
    "title": "Standards | Certificates | Seals | Initiatives | Responsibility",       "href": "https://guides.library.cornell.edu/c.php?g=662121&p=5277662",       "body": "The Sustainable Apparel Coalition is the apparel, footwear and home text
  • Network accessline 27
    "href": "https://guides.library.cornell.edu/c.php?g=662121&p=5277662",

scripts/channels/kimi/kimi_search.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 9
    [Credential-related source omitted]
  • Network accessline 11
    DEFAULT_BASE_URL = "https://api.moonshot.cn/v1"
  • Network accessline 19
    """Kimi 独立搜索客户端,接口文档 https://platform.kimi.com/docs/guide/best-practices-for-web-search"""
  • Access to secretsline 23
    [Credential-related source omitted]
  • Access to secretsline 25
    [Credential-related source omitted]
  • Access to secretsline 26
    [Credential-related source omitted]
  • Access to secretsline 27
    [Credential-related source omitted]
  • Access to secretsline 28
    [Credential-related source omitted]
  • Access to secretsline 29
    [Credential-related source omitted]
  • Access to secretsline 30
    [Credential-related source omitted]
  • Network accessline 32
    [Credential-related source omitted]
  • Access to secretsline 32
    [Credential-related source omitted]
  • Network accessline 33
    self.session = requests.Session()
  • Access to secretsline 35
    [Credential-related source omitted]
  • Access to secretsline 54
    [Credential-related source omitted]
  • Access to secretsline 130
    [Credential-related source omitted]
  • Access to secretsline 133
    [Credential-related source omitted]
  • Network accessline 145
    parser.add_argument("--end", help="时间窗口终点,年、年月或日期")     parser.add_argument("--api-key", help="Kimi API Key")     parser.add_argument("--base-url", help="接口根地址,默认 https://api.moonshot.cn/v1")
  • Network accessline 146
    parser.add_argument("--api-key", help="Kimi API Key")     parser.add_argument("--base-url", help="接口根地址,默认 https://api.moonshot.cn/v1")     parser.add_argument("--timeout", type=int, default=30, help="服务端超时秒数,1-60")
  • Network accessline 147
    parser.add_argument("--base-url", help="接口根地址,默认 https://api.moonshot.cn/v1")
  • Access to secretsline 153
    [Credential-related source omitted]

scripts/channels/kimi/output-analysis.md

  • Network accessline 37
    核查日期:2026-10-25。官方来源:[Web Search 最佳实践](https://platform.kimi.com/docs/guide/best-practices-for-web-search)。以下针对独立搜索 API。

scripts/channels/metaso/README.md

  • Access to secretsline 21
    [Credential-related source omitted]
  • Access to secretsline 24
    [Credential-related source omitted]
  • Access to secretsline 32
    [Credential-related source omitted]
  • Network accessline 114
    ## 1. 标题 **链接**: https://example.com
  • Network accessline 115
    **链接**: https://example.com
  • Network accessline 132
    "position": 1,       "title": "标题",       "link": "https://example.com",
  • Network accessline 133
    "title": "标题",       "link": "https://example.com",       "score": "high",
  • Network accessline 134
    "link": "https://example.com",
  • Access to secretsline 156
    [Credential-related source omitted]
  • Access to secretsline 157
    [Credential-related source omitted]
  • Access to secretsline 158
    [Credential-related source omitted]
  • Network accessline 171
    访问秘塔搜索官网获取 API Key:https://metaso.cn

scripts/channels/metaso/examples/search-result.json

  • Network accessline 8
    "position": 1,       "title": "Threading the needle: Weaving the Sustainable Development Goals into the textile, retail and apparel industry",       "link": "https://kpmg.com/cn/en/home/insights/2018/12/threading-the-needle-key-highlights.h
  • Network accessline 9
    "title": "Threading the needle: Weaving the Sustainable Development Goals into the textile, retail and apparel industry",       "link": "https://kpmg.com/cn/en/home/insights/2018/12/threading-the-needle-key-highlights.html",       "score": 
  • Network accessline 10
    "link": "https://kpmg.com/cn/en/home/insights/2018/12/threading-the-needle-key-highlights.html",
  • Network accessline 20
    "position": 2,       "title": "Navigating the Future – Sustainable Fashion Sourcing Trends in the Textile and Apparel Industry",       "link": "http://www.lerockepamort.org/2023/11/12/",
  • Network accessline 21
    "title": "Navigating the Future – Sustainable Fashion Sourcing Trends in the Textile and Apparel Industry",       "link": "http://www.lerockepamort.org/2023/11/12/",       "score": "high",
  • Network accessline 22
    "link": "http://www.lerockepamort.org/2023/11/12/",
  • Network accessline 30
    "position": 3,       "title": "Threading the Needle: Weaving the Sustainable Development Goals into the Textile, Retail and Apparel Industry",       "link": "https://apparelinsider.com/new-apparel-sector-guide-launched-on-sdgs/",
  • Network accessline 31
    "title": "Threading the Needle: Weaving the Sustainable Development Goals into the Textile, Retail and Apparel Industry",       "link": "https://apparelinsider.com/new-apparel-sector-guide-launched-on-sdgs/",       "score": "high",
  • Network accessline 32
    "link": "https://apparelinsider.com/new-apparel-sector-guide-launched-on-sdgs/",

scripts/channels/metaso/metaso_search.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 10
    [Credential-related source omitted]
  • Network accessline 13
    import http.client
  • Access to secretsline 52
    [Credential-related source omitted]
  • Access to secretsline 57
    [Credential-related source omitted]
  • Access to secretsline 59
    [Credential-related source omitted]
  • Access to secretsline 60
    [Credential-related source omitted]
  • Access to secretsline 63
    [Credential-related source omitted]
  • Access to secretsline 64
    [Credential-related source omitted]
  • Access to secretsline 65
    [Credential-related source omitted]
  • Access to secretsline 103
    [Credential-related source omitted]
  • Network accessline 111
    for attempt in range(max_retries):             conn = http.client.HTTPSConnection(self.API_HOST)
  • Network accessline 112
    conn = http.client.HTTPSConnection(self.API_HOST)
  • Network accessline 128
    data = json.loads(raw_data)                 raise Exception(f"API 请求失败: {response.status} - {data}")             except (http.client.HTTPException, ConnectionError) as e:
  • Network accessline 129
    raise Exception(f"API 请求失败: {response.status} - {data}")             except (http.client.HTTPException, ConnectionError) as e:                 last_exception = e
  • Network accessline 130
    except (http.client.HTTPException, ConnectionError) as e:

scripts/channels/metaso/output-analysis.md

  • Network accessline 37
    核查日期:2026-10-25。官方核查入口:[搜索 API Playground](https://metaso.cn/search-api/playground);本次无法读取官方参数说明,以下默认值来自当前源码,官方单次数量上限未核实。

scripts/channels/mojeek/mojeek_no_api.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 23
    ENGINE_NAME = "mojeek"     ENGINE_DISPLAY_NAME = "Mojeek 搜索"     SEARCH_URL = "https://www.mojeek.com/search?q={keyword}"
  • Network accessline 24
    ENGINE_DISPLAY_NAME = "Mojeek 搜索"     SEARCH_URL = "https://www.mojeek.com/search?q={keyword}"     REQUIRES_PROXY = False
  • Network accessline 25
    SEARCH_URL = "https://www.mojeek.com/search?q={keyword}"
  • Network accessline 28
    def __init__(self, proxy=None):         self.proxy = proxy         self.session = requests.Session()
  • Network accessline 29
    self.proxy = proxy         self.session = requests.Session()         self.session.headers.update({
  • Network accessline 30
    self.session = requests.Session()

scripts/channels/mojeek/output-analysis.md

  • Network accessline 28
    官方来源(2026-10-25):[Mojeek 网页搜索技巧](https://www.mojeek.com/support/search/tips.html),已读取正文;[网页偏好设置](https://www2.mojeek.com/preferences),官方页面检索说明偏好通过 Cookie 或生成的 URL 保存。容量结论采用网页帮助中的设置范围。
  • Network accessline 30
    `mojeek_no_api.py` 使用 requests 请求 `https://www.mojeek.com/search?q=...`,通过 lxml 解析网页 HTML。该类独立实现请求和解析,没有继承 `base_engine.py`,也没有使用 `web_search.result()`。解析范围为 `ul.results-standard` 下的 `li`。

scripts/channels/no_api/__init__.py

  • Executable scriptline 1
    Executable file

scripts/channels/no_api/base_engine.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 16
    [Credential-related source omitted]
  • Access to secretsline 17
    [Credential-related source omitted]
  • Network accessline 36
    self.proxy = proxy or os.getenv("NO_API_KEY_PROXY")         self.session = requests.Session()
  • Network accessline 37
    self.session = requests.Session()

scripts/channels/no_api/request_state.py

  • Executable scriptline 1
    Executable file

scripts/channels/no_api/web_search.py

  • Executable scriptline 1
    Executable file
  • Network accessline 40
    def create_session(proxy=None):     return requests.Session(impersonate='chrome', proxy=proxy or os.getenv('NO_API_KEY_PROXY'))
  • Network accessline 41
    return requests.Session(impersonate='chrome', proxy=proxy or os.getenv('NO_API_KEY_PROXY'))

scripts/channels/ollama_search/README.md

  • Network accessline 16
    [Credential-related source omitted]
  • Access to secretsline 16
    [Credential-related source omitted]
  • Network accessline 17
    # 默认 https://ollama.com/api/web_search
  • Network accessline 21
    API Key 在 [Ollama Keys](https://ollama.com/settings/keys) 创建。
  • Network accessline 38
    | `-m, --max-results` | 返回数量,1-10 | 5 | | `--api-key` | API Key(优先于环境变量) | - | | `--endpoint` | 接口地址 | https://ollama.com/api/web_search |
  • Network accessline 39
    | `--api-key` | API Key(优先于环境变量) | - | | `--endpoint` | 接口地址 | https://ollama.com/api/web_search | | `--timeout` | 请求超时秒数 | 30 |
  • Network accessline 40
    | `--endpoint` | 接口地址 | https://ollama.com/api/web_search |
  • Network accessline 56
    - [Web Search](https://docs.ollama.com/capabilities/web-search)
  • Network accessline 57
    - [官方 Python 示例](https://github.com/ollama/ollama-python/blob/main/examples/web-search.py)
  • Network accessline 58
    - [MCP 示例](https://github.com/ollama/ollama-python/blob/main/examples/web-search-mcp.py)

scripts/channels/ollama_search/examples/search-result.json

  • Network accessline 7
    {       "title": "Textiles Strategy - Environment - European Commission",       "href": "https://environment.ec.europa.eu/strategy/textiles-strategy_en",
  • Network accessline 8
    "title": "Textiles Strategy - Environment - European Commission",       "href": "https://environment.ec.europa.eu/strategy/textiles-strategy_en",       "body": "Textiles Strategy - Environment - European Commission\n\n# Sustainable and Circ
  • Network accessline 9
    "href": "https://environment.ec.europa.eu/strategy/textiles-strategy_en",
  • Network accessline 13
    {       "title": "A comprehensive review of circular economy research in the textile and clothing industry - ScienceDirect",       "href": "https://www.sciencedirect.com/science/article/pii/S0959652624006991",
  • Network accessline 14
    "title": "A comprehensive review of circular economy research in the textile and clothing industry - ScienceDirect",       "href": "https://www.sciencedirect.com/science/article/pii/S0959652624006991",       "body": "A comprehensive review 
  • Network accessline 15
    "href": "https://www.sciencedirect.com/science/article/pii/S0959652624006991",
  • Network accessline 19
    {       "title": "Sustainability and Circularity in the Textile Value Chain",       "href": "https://wedocs.unep.org/rest/api/core/bitstreams/c2f77b11-e92c-4428-a8bf-1a63c9e5ad45/content",
  • Network accessline 20
    "title": "Sustainability and Circularity in the Textile Value Chain",       "href": "https://wedocs.unep.org/rest/api/core/bitstreams/c2f77b11-e92c-4428-a8bf-1a63c9e5ad45/content",       "body": "Sustainability and Circularity in the Textil
  • Network accessline 21
    "href": "https://wedocs.unep.org/rest/api/core/bitstreams/c2f77b11-e92c-4428-a8bf-1a63c9e5ad45/content",

scripts/channels/ollama_search/ollama_search.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 9
    [Credential-related source omitted]
  • Network accessline 11
    DEFAULT_ENDPOINT = "https://ollama.com/api/web_search"
  • Network accessline 16
    """Ollama Web Search 客户端,接口文档 https://docs.ollama.com/capabilities/web-search"""
  • Access to secretsline 20
    [Credential-related source omitted]
  • Access to secretsline 22
    [Credential-related source omitted]
  • Access to secretsline 23
    [Credential-related source omitted]
  • Access to secretsline 24
    [Credential-related source omitted]
  • Access to secretsline 25
    [Credential-related source omitted]
  • Access to secretsline 26
    [Credential-related source omitted]
  • Access to secretsline 27
    [Credential-related source omitted]
  • Network accessline 29
    [Credential-related source omitted]
  • Access to secretsline 29
    [Credential-related source omitted]
  • Network accessline 30
    self.session = requests.Session()
  • Access to secretsline 32
    [Credential-related source omitted]
  • Access to secretsline 92
    [Credential-related source omitted]
  • Access to secretsline 95
    [Credential-related source omitted]
  • Network accessline 102
    parser.add_argument("-m", "--max-results", type=int, default=None, help="结果数量,1-10,默认不限")     parser.add_argument("--api-key", help="Ollama API Key")     parser.add_argument("--endpoint", help="接口地址,默认 https://ollama.com/api/web_search")
  • Network accessline 103
    parser.add_argument("--api-key", help="Ollama API Key")     parser.add_argument("--endpoint", help="接口地址,默认 https://ollama.com/api/web_search")     parser.add_argument("--timeout", type=int, default=30, help="请求超时秒数")
  • Network accessline 104
    parser.add_argument("--endpoint", help="接口地址,默认 https://ollama.com/api/web_search")
  • Access to secretsline 110
    [Credential-related source omitted]

scripts/channels/ollama_search/output-analysis.md

  • Network accessline 34
    核查日期:2026-10-25。官方来源:[Web Search](https://docs.ollama.com/capabilities/web-search)。
  • Network accessline 39
    | `max_results` | 官方默认 5、最高 10;模块默认 `None` 时实际请求 10,显式值限制到 1—10 | | `timeout` | 模块 HTTP 超时,默认 30 秒 | | `endpoint` | 模块默认 `https://ollama.com/api/web_search`,环境或构造参数可覆盖 |
  • Network accessline 41
    | `endpoint` | 模块默认 `https://ollama.com/api/web_search`,环境或构造参数可覆盖 |

scripts/channels/parallel_search/README.md

  • Network accessline 17
    [Credential-related source omitted]
  • Access to secretsline 17
    [Credential-related source omitted]
  • Network accessline 18
    # 默认 https://api.parallel.ai/v1/search
  • Network accessline 24
    API Key 在 [Parallel Platform](https://platform.parallel.ai) 创建。欧盟节点 `https://eu.parallel.ai` 只接受 `basic` 模式。
  • Network accessline 57
    | `--after-date` | 发布日期下限,`YYYY-MM-DD` | - | | `--api-key` | API Key(优先于环境变量) | - | | `--endpoint` | 接口地址 | https://api.parallel.ai/v1/search |
  • Network accessline 58
    | `--api-key` | API Key(优先于环境变量) | - | | `--endpoint` | 接口地址 | https://api.parallel.ai/v1/search | | `--timeout` | 请求超时秒数 | 30 |
  • Network accessline 59
    | `--endpoint` | 接口地址 | https://api.parallel.ai/v1/search |
  • Network accessline 84
    - [Search API Quickstart](https://docs.parallel.ai/search/search-quickstart)
  • Network accessline 85
    - [API Reference](https://docs.parallel.ai/api-reference/search/search)
  • Network accessline 86
    - [Rate Limits](https://docs.parallel.ai/getting-started/rate-limits)

scripts/channels/parallel_search/examples/search-result.json

  • Network accessline 7
    {       "title": "Fashion’s Supply Chain Challenge",       "href": "https://unfccc.int/sites/default/files/resource/Fashion%2520supply%2520chain%2520challenge_white%2520paper%25202025.pdf",
  • Network accessline 8
    "title": "Fashion’s Supply Chain Challenge",       "href": "https://unfccc.int/sites/default/files/resource/Fashion%2520supply%2520chain%2520challenge_white%2520paper%25202025.pdf",       "body": "# **Fashion’s Supply Chain Challenge**\n\n#
  • Network accessline 9
    "href": "https://unfccc.int/sites/default/files/resource/Fashion%2520supply%2520chain%2520challenge_white%2520paper%25202025.pdf",
  • Network accessline 17
    {       "title": "Textile Recycling: Closing the Loop on a Greener Apparel Industry",       "href": "https://www.usitc.gov/sites/default/files/publications/332/executive_briefings/ebot_howlett_textile_recycling_closing_the_loop.pdf",
  • Network accessline 18
    "title": "Textile Recycling: Closing the Loop on a Greener Apparel Industry",       "href": "https://www.usitc.gov/sites/default/files/publications/332/executive_briefings/ebot_howlett_textile_recycling_closing_the_loop.pdf",       "body": 
  • Network accessline 19
    "href": "https://www.usitc.gov/sites/default/files/publications/332/executive_briefings/ebot_howlett_textile_recycling_closing_the_loop.pdf",
  • Network accessline 27
    {       "title": "Gap Inc. - Apparel Industry Leaders Launch Sustainable Apparel Coalition",       "href": "https://investors.gapinc.com/press-releases/news-details/2011/Apparel-Industry-Leaders-Launch-Sustainable-Apparel-Coalition/default.
  • Network accessline 28
    "title": "Gap Inc. - Apparel Industry Leaders Launch Sustainable Apparel Coalition",       "href": "https://investors.gapinc.com/press-releases/news-details/2011/Apparel-Industry-Leaders-Launch-Sustainable-Apparel-Coalition/default.aspx",  
  • Network accessline 29
    "href": "https://investors.gapinc.com/press-releases/news-details/2011/Apparel-Industry-Leaders-Launch-Sustainable-Apparel-Coalition/default.aspx",
  • Network accessline 30
    "body": "**_Coalition to set Common Metrics and Standards to_** **_Improve Apparel Sustainability_**\n\nVENTURA, CA – March 1, 2011 – A group of leading apparel and footwear brands, retailers, manufacturers, \nEvents](https://investors.gapi

scripts/channels/parallel_search/output-analysis.md

  • Network accessline 37
    核查日期:2026-10-25。官方来源:[Search API](https://docs.parallel.ai/api-reference/search/search)。

scripts/channels/parallel_search/parallel_search.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 9
    [Credential-related source omitted]
  • Network accessline 11
    DEFAULT_ENDPOINT = "https://api.parallel.ai/v1/search"
  • Network accessline 17
    """Parallel Search 客户端,接口文档 https://docs.parallel.ai/api-reference/search/search"""
  • Access to secretsline 21
    [Credential-related source omitted]
  • Access to secretsline 23
    [Credential-related source omitted]
  • Access to secretsline 24
    [Credential-related source omitted]
  • Access to secretsline 25
    [Credential-related source omitted]
  • Access to secretsline 26
    [Credential-related source omitted]
  • Network accessline 28
    [Credential-related source omitted]
  • Access to secretsline 28
    [Credential-related source omitted]
  • Network accessline 29
    self.session = requests.Session()
  • Access to secretsline 31
    [Credential-related source omitted]
  • Access to secretsline 51
    [Credential-related source omitted]
  • Access to secretsline 135
    [Credential-related source omitted]
  • Access to secretsline 138
    [Credential-related source omitted]
  • Network accessline 152
    parser.add_argument("--after-date", help="只保留该日期之后发布的结果,格式 YYYY-MM-DD")     parser.add_argument("--api-key", help="Parallel API Key")     parser.add_argument("--endpoint", help="接口地址,默认 https://api.parallel.ai/v1/search")
  • Network accessline 153
    parser.add_argument("--api-key", help="Parallel API Key")     parser.add_argument("--endpoint", help="接口地址,默认 https://api.parallel.ai/v1/search")     parser.add_argument("--timeout", type=int, default=30, help="请求超时秒数")
  • Network accessline 154
    parser.add_argument("--endpoint", help="接口地址,默认 https://api.parallel.ai/v1/search")
  • Access to secretsline 160
    [Credential-related source omitted]

scripts/channels/quark/README.md

  • Network accessline 6
    python scripts/channels/quark/quark_no_api.py "Python documentation" -m 5 --json python scripts/channels/quark/quark_no_api.py "北京大学" --page 2 --timeout 20 --json python scripts/channels/quark/quark_no_api.py "Python documentation" --proxy 
  • Network accessline 8
    python scripts/channels/quark/quark_no_api.py "Python documentation" --proxy http://127.0.0.1:7890 --json
  • Network accessline 27
    端点为 `https://quark.sm.cn/s`,参数为 `q`、`layout=html` 和 `page`。结果来自 `type="application/json"`、`id="s-data-*"`、`data-used-by="hydrate"` 的脚本元素;卡片类别为 `extraData.sc`,卡片内容为 `data.initialData`。

scripts/channels/quark/examples/search-result.json

  • Network accessline 7
    {       "title": "Sustainability in the Textile and Apparel Industries-中国科学院知识服务平台",       "url": "https://www.las.ac.cn/front/ebook/detail?id=356e119c9ca65d7f36886be613126c15",
  • Network accessline 8
    "title": "Sustainability in the Textile and Apparel Industries-中国科学院知识服务平台",       "url": "https://www.las.ac.cn/front/ebook/detail?id=356e119c9ca65d7f36886be613126c15",       "content": "主题词: Geography,Economic Geography,Sustainable Develo
  • Network accessline 9
    "url": "https://www.las.ac.cn/front/ebook/detail?id=356e119c9ca65d7f36886be613126c15",
  • Network accessline 21
    {       "title": "Towards Sustainable Textile and Apparel Industry: Exploring the Role of Business Intelligence Systems in the Era of Industry 4.0-AMiner",       "url": "https://www.aminer.cn/pub/5ea014699fced0a24ba02a5d/towards-sustainable
  • Network accessline 22
    "title": "Towards Sustainable Textile and Apparel Industry: Exploring the Role of Business Intelligence Systems in the Era of Industry 4.0-AMiner",       "url": "https://www.aminer.cn/pub/5ea014699fced0a24ba02a5d/towards-sustainable-textile
  • Network accessline 23
    [Credential-related source omitted]
  • Network accessline 35
    {       "title": "Contributions of social manufacturing to sustainable apparel industry-百度学术",       "url": "https://xueshu.baidu.com/usercenter/paper/show?paperid=854f20c1c992b7e1f018b782c0bf08ee",
  • Network accessline 36
    "title": "Contributions of social manufacturing to sustainable apparel industry-百度学术",       "url": "https://xueshu.baidu.com/usercenter/paper/show?paperid=854f20c1c992b7e1f018b782c0bf08ee",       "content": "the current fast-changing fashi
  • Network accessline 37
    "url": "https://xueshu.baidu.com/usercenter/paper/show?paperid=854f20c1c992b7e1f018b782c0bf08ee",

scripts/channels/quark/output-analysis.md

  • Network accessline 29
    官方来源(2026-10-25):[夸克帮助:快速开始](https://www.quark.cn/documents/help/get-started),已读取正文,确认通过搜索框或地址栏输入查询打开搜索结果,未发现条数限制说明。
  • Network accessline 31
    `quark_no_api.py` 访问 `https://quark.sm.cn/s` 的 HTML,读取 `script[type="application/json"]` 且 id 以 `s-data-` 开头、`data-used-by="hydrate"` 的内嵌 JSON。卡片类别来自 `extraData.sc`,数据来自 `data.initialData`。来源属于网页内嵌匿名 JSON,没有单独调用搜索 JSON API。函数返回对象数组,脚本 JSON 

scripts/channels/quark/quark_no_api.py

  • Executable scriptline 1
    Executable file
  • Network accessline 101
    raise ValueError('query 不能为空')     with create_session(proxy) as session:         response = request(session, 'GET', 'https://quark.sm.cn/s',
  • Network accessline 102
    with create_session(proxy) as session:         response = request(session, 'GET', 'https://quark.sm.cn/s',                            timeout=deadline.remaining(),
  • Network accessline 103
    response = request(session, 'GET', 'https://quark.sm.cn/s',

scripts/channels/qwant/output-analysis.md

  • Network accessline 28
    官方来源与核实范围(2026-10-25):[Qwant 搜索帮助](https://help.qwant.com/en/docs/qwant-search/searching/how-to-search-with-qwant/)、[地区设置帮助](https://help.qwant.com/hc/en-us/articles/49002753227153-Set-My-Region-for-Local-Results)。已检索官方内容,搜索帮助正文抓取返回 HTTP 40
  • Network accessline 30
    `qwant_no_api.py` 请求 `https://www.qwant.com/?q=...` 的网页 HTML,通过共享 `base_engine.py` 交给 lxml 解析。它没有请求 Qwant 的匿名 JSON 搜索接口,也不运行页面 JavaScript。容器为 class 包含 result 的 `div` 或 class 包含 result-web 的 `article`。

scripts/channels/qwant/qwant_no_api.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 21
    ENGINE_NAME = "qwant"     ENGINE_DISPLAY_NAME = "Qwant"     SEARCH_URL = "https://www.qwant.com/?q={keyword}"
  • Network accessline 22
    ENGINE_DISPLAY_NAME = "Qwant"     SEARCH_URL = "https://www.qwant.com/?q={keyword}"     REQUIRES_PROXY = True
  • Network accessline 23
    SEARCH_URL = "https://www.qwant.com/?q={keyword}"

scripts/channels/rss_search/README.md

  • Network accessline 26
    # 搜索单个 RSS 订阅源 python scripts/channels/rss_search/rss_search.py "AI" --feed http://example.com/feed.xml --limit 10
  • Network accessline 27
    python scripts/channels/rss_search/rss_search.py "AI" --feed http://example.com/feed.xml --limit 10
  • Network accessline 29
    # 获取最新条目(不使用关键词) python scripts/channels/rss_search/rss_search.py --feed http://example.com/feed.xml --limit 5
  • Network accessline 30
    python scripts/channels/rss_search/rss_search.py --feed http://example.com/feed.xml --limit 5
  • Network accessline 39
    # 保存结果到文件 python scripts/channels/rss_search/rss_search.py "机器学习" --feed http://example.com/feed.xml --json --pretty -o results.json
  • Network accessline 40
    python scripts/channels/rss_search/rss_search.py "机器学习" --feed http://example.com/feed.xml --json --pretty -o results.json
  • Network accessline 46
    # 1. 解析并保存RSS结果到文件夹(首次或更新缓存) python scripts/channels/rss_search/rss_search.py "AI" --feed http://example.com/feed.xml --parse-folder ./parsed_results
  • Network accessline 47
    python scripts/channels/rss_search/rss_search.py "AI" --feed http://example.com/feed.xml --parse-folder ./parsed_results
  • Network accessline 52
    # 3. 仅解析保存,不搜索 python scripts/channels/rss_search/rss_search.py --feed http://example.com/feed.xml --parse-folder ./parsed_results --parse-only
  • Network accessline 53
    python scripts/channels/rss_search/rss_search.py --feed http://example.com/feed.xml --parse-folder ./parsed_results --parse-only
  • Network accessline 129
    # AI News http://feedmaker.kindle4rss.com/feeds/AI_era.weixin.xml
  • Network accessline 130
    http://feedmaker.kindle4rss.com/feeds/AI_era.weixin.xml
  • Network accessline 132
    # Tech News https://example.com/tech/rss.xml
  • Network accessline 133
    https://example.com/tech/rss.xml
  • Network accessline 162
    - 微信公众号(通过 Kindle4RSS):`http://feedmaker.kindle4rss.com/feeds/`

scripts/channels/rss_search/examples/search-result.json

  • Network accessline 2
    {     "title": "Lime bike jousts? Why youth culture is embracing the medieval era",     "link": "https://www.theguardian.com/global/2026/oct/24/lime-bike-jousts-why-youth-culture-is-embracing-the-medieval-era",
  • Network accessline 3
    "title": "Lime bike jousts? Why youth culture is embracing the medieval era",     "link": "https://www.theguardian.com/global/2026/oct/24/lime-bike-jousts-why-youth-culture-is-embracing-the-medieval-era",     "weixin_link": "https://www.the
  • Network accessline 4
    "link": "https://www.theguardian.com/global/2026/oct/24/lime-bike-jousts-why-youth-culture-is-embracing-the-medieval-era",
  • Network accessline 5
    "weixin_link": "https://www.theguardian.com/global/2026/oct/24/lime-bike-jousts-why-youth-culture-is-embracing-the-medieval-era",
  • Network accessline 6
    "published": "Sat, 24 Oct 2026 11:00:31 GMT",     "author": "Ellie Violet Bramley",     "summary": "<p>From chainmail-wearing pop stars to high-fashion catwalks, the spirit of the middle ages is erupting into the zeitgeist</p><p>Medieval kn
  • Network accessline 7
    "author": "Ellie Violet Bramley",     "summary": "<p>From chainmail-wearing pop stars to high-fashion catwalks, the spirit of the middle ages is erupting into the zeitgeist</p><p>Medieval knights used to joust on warhorses with wooden lance
  • Network accessline 8
    "summary": "<p>From chainmail-wearing pop stars to high-fashion catwalks, the spirit of the middle ages is erupting into the zeitgeist</p><p>Medieval knights used to joust on warhorses with wooden lances, but this week in east London, two m
  • Network accessline 10
    {         "term": "Culture",         "scheme": "https://www.theguardian.com/culture/culture",
  • Network accessline 11
    "term": "Culture",         "scheme": "https://www.theguardian.com/culture/culture",         "label": null
  • Network accessline 12
    "scheme": "https://www.theguardian.com/culture/culture",
  • Network accessline 15
    {         "term": "Fashion",         "scheme": "https://www.theguardian.com/fashion/fashion",
  • Network accessline 16
    "term": "Fashion",         "scheme": "https://www.theguardian.com/fashion/fashion",         "label": null
  • Network accessline 17
    "scheme": "https://www.theguardian.com/fashion/fashion",
  • Network accessline 20
    {         "term": "Frieze art fair",         "scheme": "https://www.theguardian.com/artanddesign/friezeartfair",
  • Network accessline 21
    "term": "Frieze art fair",         "scheme": "https://www.theguardian.com/artanddesign/friezeartfair",         "label": null
  • Network accessline 22
    "scheme": "https://www.theguardian.com/artanddesign/friezeartfair",
  • Network accessline 25
    {         "term": "UK news",         "scheme": "https://www.theguardian.com/uk/uk",
  • Network accessline 26
    "term": "UK news",         "scheme": "https://www.theguardian.com/uk/uk",         "label": null
  • Network accessline 27
    "scheme": "https://www.theguardian.com/uk/uk",
  • Network accessline 30
    {         "term": "England",         "scheme": "https://www.theguardian.com/uk-news/england",
  • Network accessline 31
    "term": "England",         "scheme": "https://www.theguardian.com/uk-news/england",         "label": null
  • Network accessline 32
    "scheme": "https://www.theguardian.com/uk-news/england",
  • Network accessline 35
    {         "term": "London",         "scheme": "https://www.theguardian.com/uk/london",
  • Network accessline 36
    "term": "London",         "scheme": "https://www.theguardian.com/uk/london",         "label": null
  • Network accessline 37
    "scheme": "https://www.theguardian.com/uk/london",
  • Network accessline 40
    {         "term": "Troye Sivan",         "scheme": "https://www.theguardian.com/music/troye-sivan",
  • Network accessline 41
    "term": "Troye Sivan",         "scheme": "https://www.theguardian.com/music/troye-sivan",         "label": null
  • Network accessline 42
    "scheme": "https://www.theguardian.com/music/troye-sivan",
  • Network accessline 45
    {         "term": "Andrew Garfield",         "scheme": "https://www.theguardian.com/film/andrew-garfield",
  • Network accessline 46
    "term": "Andrew Garfield",         "scheme": "https://www.theguardian.com/film/andrew-garfield",         "label": null
  • Network accessline 47
    "scheme": "https://www.theguardian.com/film/andrew-garfield",
  • Network accessline 50
    {         "term": "Heritage",         "scheme": "https://www.theguardian.com/culture/heritage",
  • Network accessline 51
    "term": "Heritage",         "scheme": "https://www.theguardian.com/culture/heritage",         "label": null
  • Network accessline 52
    "scheme": "https://www.theguardian.com/culture/heritage",
  • Network accessline 55
    {         "term": "Art and design",         "scheme": "https://www.theguardian.com/artanddesign/artanddesign",
  • Network accessline 56
    "term": "Art and design",         "scheme": "https://www.theguardian.com/artanddesign/artanddesign",         "label": null
  • Network accessline 57
    "scheme": "https://www.theguardian.com/artanddesign/artanddesign",
  • Network accessline 60
    {         "term": "Film",         "scheme": "https://www.theguardian.com/film/film",
  • Network accessline 61
    "term": "Film",         "scheme": "https://www.theguardian.com/film/film",         "label": null
  • Network accessline 62
    "scheme": "https://www.theguardian.com/film/film",
  • Network accessline 65
    {         "term": "Music",         "scheme": "https://www.theguardian.com/music/music",
  • Network accessline 66
    "term": "Music",         "scheme": "https://www.theguardian.com/music/music",         "label": null
  • Network accessline 67
    "scheme": "https://www.theguardian.com/music/music",
  • Network accessline 70
    {         "term": "Art",         "scheme": "https://www.theguardian.com/artanddesign/art",
  • Network accessline 71
    "term": "Art",         "scheme": "https://www.theguardian.com/artanddesign/art",         "label": null
  • Network accessline 72
    "scheme": "https://www.theguardian.com/artanddesign/art",
  • Network accessline 75
    ],     "feed_title": "Fashion | The Guardian",     "feed_url": "https://www.theguardian.com/fashion/rss"
  • Network accessline 76
    "feed_title": "Fashion | The Guardian",     "feed_url": "https://www.theguardian.com/fashion/rss"   },
  • Network accessline 77
    "feed_url": "https://www.theguardian.com/fashion/rss"
  • Network accessline 79
    {     "title": "‘A form of anti-status status’ – how much would you pay for a plain tote bag?",     "link": "https://www.theguardian.com/fashion/2026/oct/22/how-the-canvas-tote-bag-went-from-supermarket-staple-to-status-symbol",
  • Network accessline 80
    "title": "‘A form of anti-status status’ – how much would you pay for a plain tote bag?",     "link": "https://www.theguardian.com/fashion/2026/oct/22/how-the-canvas-tote-bag-went-from-supermarket-staple-to-status-symbol",     "weixin_link"
  • Network accessline 81
    "link": "https://www.theguardian.com/fashion/2026/oct/22/how-the-canvas-tote-bag-went-from-supermarket-staple-to-status-symbol",
  • Network accessline 82
    "weixin_link": "https://www.theguardian.com/fashion/2026/oct/22/how-the-canvas-tote-bag-went-from-supermarket-staple-to-status-symbol",
  • Network accessline 83
    "published": "Fri, 23 Oct 2026 06:00:01 GMT",     "author": "Ellie Violet Bramley",     "summary": "<p>The ubiquitous carrier has been given a four-figure makeover. But why has an everyday bag associated with running errands and US supermar
  • Network accessline 84
    "author": "Ellie Violet Bramley",     "summary": "<p>The ubiquitous carrier has been given a four-figure makeover. But why has an everyday bag associated with running errands and US supermarkets become so aspirational?</p><p><strong>• </str
  • Network accessline 85
    "summary": "<p>The ubiquitous carrier has been given a four-figure makeover. But why has an everyday bag associated with running errands and US supermarkets become so aspirational?</p><p><strong>• </strong><a href=\"https://www.theguardian.
  • Network accessline 87
    {         "term": "Fashion",         "scheme": "https://www.theguardian.com/fashion/fashion",
  • Network accessline 88
    "term": "Fashion",         "scheme": "https://www.theguardian.com/fashion/fashion",         "label": null
  • Network accessline 89
    "scheme": "https://www.theguardian.com/fashion/fashion",
  • Network accessline 92
    {         "term": "Life and style",         "scheme": "https://www.theguardian.com/lifeandstyle/lifeandstyle",
  • Network accessline 93
    "term": "Life and style",         "scheme": "https://www.theguardian.com/lifeandstyle/lifeandstyle",         "label": null
  • Network accessline 94
    "scheme": "https://www.theguardian.com/lifeandstyle/lifeandstyle",
  • Network accessline 97
    {         "term": "Accessories",         "scheme": "https://www.theguardian.com/fashion/accessories",
  • Network accessline 98
    "term": "Accessories",         "scheme": "https://www.theguardian.com/fashion/accessories",         "label": null
  • Network accessline 99
    "scheme": "https://www.theguardian.com/fashion/accessories",
  • Network accessline 102
    ],     "feed_title": "Fashion | The Guardian",     "feed_url": "https://www.theguardian.com/fashion/rss"
  • Network accessline 103
    "feed_title": "Fashion | The Guardian",     "feed_url": "https://www.theguardian.com/fashion/rss"   },
  • Network accessline 104
    "feed_url": "https://www.theguardian.com/fashion/rss"
  • Network accessline 106
    {     "title": "‘I wanted to create the female version of a man’s suit’: how Roland Mouret’s Galaxy dress took over the world",     "link": "https://www.theguardian.com/fashion/2026/oct/22/i-wanted-to-create-the-female-version-of-a-mans-sui
  • Network accessline 107
    "title": "‘I wanted to create the female version of a man’s suit’: how Roland Mouret’s Galaxy dress took over the world",     "link": "https://www.theguardian.com/fashion/2026/oct/22/i-wanted-to-create-the-female-version-of-a-mans-suit-how-
  • Network accessline 108
    "link": "https://www.theguardian.com/fashion/2026/oct/22/i-wanted-to-create-the-female-version-of-a-mans-suit-how-roland-mourets-galaxy-dress-took-over-the-world",
  • Network accessline 109
    "weixin_link": "https://www.theguardian.com/fashion/2026/oct/22/i-wanted-to-create-the-female-version-of-a-mans-suit-how-roland-mourets-galaxy-dress-took-over-the-world",
  • Network accessline 110
    "published": "Thu, 22 Oct 2026 06:00:08 GMT",     "author": "Mark C. O'Flaherty",     "summary": "<p>One the most famous dresses of this century, it was worn by royalty and A-list celebrities in the noughties. Its latest fans are Maga women
  • Network accessline 111
    "author": "Mark C. O'Flaherty",     "summary": "<p>One the most famous dresses of this century, it was worn by royalty and A-list celebrities in the noughties. Its latest fans are Maga women. Here, the designer, and former mentor to Victori
  • Network accessline 112
    "summary": "<p>One the most famous dresses of this century, it was worn by royalty and A-list celebrities in the noughties. Its latest fans are Maga women. Here, the designer, and former mentor to Victoria Beckham, reveals the story behind 
  • Network accessline 114
    {         "term": "Fashion",         "scheme": "https://www.theguardian.com/fashion/fashion",
  • Network accessline 115
    "term": "Fashion",         "scheme": "https://www.theguardian.com/fashion/fashion",         "label": null
  • Network accessline 116
    "scheme": "https://www.theguardian.com/fashion/fashion",
  • Network accessline 119
    {         "term": "Celebrity",         "scheme": "https://www.theguardian.com/lifeandstyle/celebrity",
  • Network accessline 120
    "term": "Celebrity",         "scheme": "https://www.theguardian.com/lifeandstyle/celebrity",         "label": null
  • Network accessline 121
    "scheme": "https://www.theguardian.com/lifeandstyle/celebrity",
  • Network accessline 124
    {         "term": "Life and style",         "scheme": "https://www.theguardian.com/lifeandstyle/lifeandstyle",
  • Network accessline 125
    "term": "Life and style",         "scheme": "https://www.theguardian.com/lifeandstyle/lifeandstyle",         "label": null
  • Network accessline 126
    "scheme": "https://www.theguardian.com/lifeandstyle/lifeandstyle",
  • Network accessline 129
    {         "term": "Victoria Beckham",         "scheme": "https://www.theguardian.com/fashion/victoria-beckham",
  • Network accessline 130
    "term": "Victoria Beckham",         "scheme": "https://www.theguardian.com/fashion/victoria-beckham",         "label": null
  • Network accessline 131
    "scheme": "https://www.theguardian.com/fashion/victoria-beckham",
  • Network accessline 134
    ],     "feed_title": "Fashion | The Guardian",     "feed_url": "https://www.theguardian.com/fashion/rss"
  • Network accessline 135
    "feed_title": "Fashion | The Guardian",     "feed_url": "https://www.theguardian.com/fashion/rss"   }
  • Network accessline 136
    "feed_url": "https://www.theguardian.com/fashion/rss"

scripts/channels/rss_search/output-analysis.md

  • Network accessline 33
    官方及库来源(资料整理日期:2026-10-25):[RSS 2.0 规范:item 数量](https://www.rssboard.org/rss-specification)、[feedparser 官方文档](https://feedparser.readthedocs.io/en/latest/)。这些来源没有为各发布者的订阅源承诺统一搜索返回数量。
  • Network accessline 63
    以真实 Guardian Fashion feed `https://www.theguardian.com/fashion/rss` 查询 `fashion`,成功保存 3 条至 `.work/output-analysis/rss.json`,确认 summary 含 HTML、tags 为对象数组,published 为带 GMT 的日期字符串,weixin_link 实际仍为 Guardian 地址。未穷举各 feed 的扩展字段。实现依据 `search_entri

scripts/channels/rss_search/rss_feeds.txt

  • Network accessline 5
    # 微信公众号(通过 Kindle4RSS) 新智元 http://feedmaker.kindle4rss.com/feeds/AI_era.weixin.xml
  • Network accessline 6
    新智元 http://feedmaker.kindle4rss.com/feeds/AI_era.weixin.xml
  • Network accessline 7
    腾讯科技 http://feedmaker.kindle4rss.com/feeds/qqtech.weixin.xml
  • Network accessline 8
    罗辑思维 http://feedmaker.kindle4rss.com/feeds/luojisw.weixin.xml
  • Network accessline 9
    笔记侠 http://feedmaker.kindle4rss.com/feeds/Notesman.weixin.xml
  • Network accessline 10
    刘润 http://feedmaker.kindle4rss.com/feeds/runliu-pub.weixin.xml
  • Network accessline 12
    # 微信公众号(通过 wechat2rss / bestblogs.dev) 网罗灯下黑 http://www.jintiankansha.me/rss/GEYTMOJYHF6DSYRRGVTGGMTCMYYGEMRSGBTGEOLBHBRDKYZVGRTDKMDCMIYGCZTCMQYWCYZWHEYQ====
  • Network accessline 13
    网罗灯下黑 http://www.jintiankansha.me/rss/GEYTMOJYHF6DSYRRGVTGGMTCMYYGEMRSGBTGEOLBHBRDKYZVGRTDKMDCMIYGCZTCMQYWCYZWHEYQ====
  • Network accessline 14
    数字生命卡兹克 https://wechat2rss.bestblogs.dev/feed/ff621c3e98d6ae6fceb3397e57441ffc6ea3c17f.xml
  • Network accessline 15
    机器之心 https://wechat2rss.bestblogs.dev/feed/8d97af31b0de9e48da74558af128a4673d78c9a3.xml
  • Network accessline 16
    夕小瑶科技说 https://wechat2rss.xlab.app/feed/a1cd365aa14ed7d64cabfc8aa086da40ecaba34d.xml
  • Network accessline 17
    AI寒武纪 https://wechat2rss.bestblogs.dev/feed/5903009f48a5e4aa44d8ac941a54fe3aafc3e03c.xml
  • Network accessline 18
    硅星人Pro https://wechat2rss.bestblogs.dev/feed/c62ceda9eed269d851802bdbc5f33c4fabbf7462.xml
  • Network accessline 19
    极客公园 https://wechat2rss.xlab.app/feed/1a5aec98e71c707c8ca092bc2c255b9d4bac477d.xml
  • Network accessline 20
    刘小排r https://wechat2rss.bestblogs.dev/feed/484d4199ae6c0b72ea01e7e0597a1f74933dfb62.xml
  • Network accessline 21
    腾讯研究院 https://wechat2rss.xlab.app/feed/cab007f687d50714b1bd6387d8b2a0824b46b0a6.xml
  • Network accessline 22
    腾讯技术工程 https://wechat2rss.xlab.app/feed/9685937b45fe9c7a526dbc32e4f24ba879a65b9a.xml
  • Network accessline 23
    阿里云开发者 https://wechat2rss.xlab.app/feed/c74ed6db00cfbf16f2a048a165b4453f982681f0.xml
  • Network accessline 24
    阿里技术 https://wechat2rss.xlab.app/feed/6e1f9b775f7a5841ac1a94310f0478b45a02ec01.xml
  • Network accessline 25
    阿里巴巴中间件 https://wechat2rss.xlab.app/feed/ede34e7a9aff5e93ad159ebfd27075710a963f54.xml
  • Network accessline 26
    哔哩哔哩技术 https://wechat2rss.xlab.app/feed/434235d4815fdb8447ff3127fc053ceb8b3aada6.xml
  • Network accessline 27
    爱奇艺技术产品团队 https://wechat2rss.xlab.app/feed/16a4ec12a83a52e1f6e941bce030a4d64ee26c47.xml
  • Network accessline 28
    差评X.PIN https://wechat2rss.xlab.app/feed/8d839de8dd3290a1f1be7a94423cccb30c1b087d.xml
  • Network accessline 30
    # GitHub 逛逛GitHub https://wechat2rss.bestblogs.dev/feed/38be32e5376d852c13d3383e4d7a757fd9a55ff6.xml
  • Network accessline 31
    逛逛GitHub https://wechat2rss.bestblogs.dev/feed/38be32e5376d852c13d3383e4d7a757fd9a55ff6.xml
  • Network accessline 33
    # 独立博客/网站 Latent.Space https://www.latent.space/feed
  • Network accessline 34
    Latent.Space https://www.latent.space/feed
  • Network accessline 35
    One Useful Thing https://www.oneusefulthing.org/feed
  • Network accessline 36
    Owen的博客 https://www.owenyoung.com/atom.xml
  • Network accessline 37
    阮一峰的网络日志 http://www.ruanyifeng.com/blog/atom.xml
  • Network accessline 38
    小米信息部技术团队 https://xiaomi-info.github.io/atom
  • Network accessline 39
    小众软件 https://feeds.appinn.com/appinns/
  • Network accessline 40
    少数派 https://rsshub.app/sspai/index
  • Network accessline 42
    # AI 相关 AIGC开放社区 https://raw.githubusercontent.com/osnsyc/Wechat-Scholar/main/channels/gh_92a47dd34b3c.xml
  • Network accessline 43
    AIGC开放社区 https://raw.githubusercontent.com/osnsyc/Wechat-Scholar/main/channels/gh_92a47dd34b3c.xml
  • Network accessline 44
    量子位 https://raw.githubusercontent.com/osnsyc/Wechat-Scholar/main/channels/gh_114e76fd6e5d.xml
  • Network accessline 45
    APPSO https://werss.anan.eu.org/2392024520.xml
  • Network accessline 46
    BestBlogs.dev https://www.bestblogs.dev/feeds/rss
  • Network accessline 47
    AI洞察日报 RSS Feed https://justlovemaki.github.io/CloudFlare-AI-Insight-Daily/rss.xml
  • Network accessline 48
    AI排行榜官网 AIGCRank.cn https://aigcrank.cn/feed
  • Network accessline 50
    # 技术团队 美团技术团队 https://tech.meituan.com/feed/
  • Network accessline 51
    美团技术团队 https://tech.meituan.com/feed/
  • Network accessline 52
    有赞技术团队 https://tech.youzan.com/rss/
  • Network accessline 53
    伴鱼技术团队 https://tech.ipalfish.com/blog/atom.xml
  • Network accessline 54
    京东云技术团队 https://feed.cnblogs.com/blog/u/777127/rss/
  • Network accessline 55
    vivo互联网技术 https://feed.cnblogs.com/blog/u/498089/rss/
  • Network accessline 56
    蚂蚁金服技术团队 https://rss.csdn.net/weixin_44326589/rss/map?spm=1001.2014.3001.5494
  • Network accessline 57
    BLACK STACK 黑栈 https://kidsseeghosts.substack.com/feed
  • Network accessline 58
    AIGC Weekly https://quaily.com/op7418/feed/atom
  • Network accessline 59
    人都是产品经理 https://www.woshipm.com/feed

scripts/channels/rss_search/rss_search.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 16
    DEFAULT_RSS_FEEDS = [     "http://feedmaker.kindle4rss.com/feeds/AI_era.weixin.xml",
  • Network accessline 17
    "http://feedmaker.kindle4rss.com/feeds/AI_era.weixin.xml",
  • Access to secretsline 36
    [Credential-related source omitted]
  • Access to secretsline 37
    [Credential-related source omitted]
  • Access to secretsline 47
    [Credential-related source omitted]
  • Network accessline 52
    examples = (         "使用示例:\n"         "  python rss_search.py \"AI\" --feed http://example.com/feed.xml\n"
  • Network accessline 53
    "使用示例:\n"         "  python rss_search.py \"AI\" --feed http://example.com/feed.xml\n"         "  python rss_search.py \"机器学习\" --limit 5 --json\n"
  • Network accessline 54
    "  python rss_search.py \"AI\" --feed http://example.com/feed.xml\n"

scripts/channels/serper/examples/search-result.json

  • Network accessline 7
    {       "title": "Environmental Sustainability in the Fashion Industry",       "href": "https://www.genevaenvironmentnetwork.org/resources/updates/sustainable-fashion/",
  • Network accessline 8
    "title": "Environmental Sustainability in the Fashion Industry",       "href": "https://www.genevaenvironmentnetwork.org/resources/updates/sustainable-fashion/",       "body": "The fashion and textiles sector relies heavily on synthetic fib
  • Network accessline 9
    "href": "https://www.genevaenvironmentnetwork.org/resources/updates/sustainable-fashion/",
  • Network accessline 15
    {       "title": "Sustainable Practices in the Apparel Industry",       "href": "https://www.netsuite.com/portal/resource/articles/erp/sustainability-in-apparel.shtml",
  • Network accessline 16
    "title": "Sustainable Practices in the Apparel Industry",       "href": "https://www.netsuite.com/portal/resource/articles/erp/sustainability-in-apparel.shtml",       "body": "Apparel companies can improve sustainability by working with low
  • Network accessline 17
    "href": "https://www.netsuite.com/portal/resource/articles/erp/sustainability-in-apparel.shtml",
  • Network accessline 23
    {       "title": "Standards | Certificates | Seals | Initiatives | Responsibility",       "href": "https://guides.library.cornell.edu/c.php?g=662121&p=5277662",
  • Network accessline 24
    "title": "Standards | Certificates | Seals | Initiatives | Responsibility",       "href": "https://guides.library.cornell.edu/c.php?g=662121&p=5277662",       "body": "The Sustainable Apparel Coalition is the apparel, footwear and home text
  • Network accessline 25
    "href": "https://guides.library.cornell.edu/c.php?g=662121&p=5277662",

scripts/channels/serper/output-analysis.md

  • Network accessline 36
    核查日期:2026-10-25。官方核查入口:[Serper](https://serper.dev/);公开页面未给出本次可核实的 `num` 参数范围,官方单次上限未核实。

scripts/channels/serper/serper_search.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 6
    申请 API Key: https://serper.dev/
  • Access to secretsline 7
    [Credential-related source omitted]
  • Access to secretsline 21
    [Credential-related source omitted]
  • Network accessline 27
    ENGINE_NAME = "serper"     ENGINE_DISPLAY_NAME = "Serper Google 搜索"     API_ENDPOINT = "https://google.serper.dev/search"
  • Network accessline 28
    [Credential-related source omitted]
  • Network accessline 29
    API_ENDPOINT = "https://google.serper.dev/search"
  • Access to secretsline 30
    [Credential-related source omitted]
  • Access to secretsline 32
    [Credential-related source omitted]
  • Access to secretsline 37
    [Credential-related source omitted]
  • Access to secretsline 39
    [Credential-related source omitted]
  • Access to secretsline 40
    [Credential-related source omitted]
  • Access to secretsline 41
    [Credential-related source omitted]
  • Network accessline 43
    self.session = requests.Session()
  • Access to secretsline 45
    [Credential-related source omitted]
  • Access to secretsline 169
    [Credential-related source omitted]
  • Access to secretsline 173
    [Credential-related source omitted]
  • Access to secretsline 198
    [Credential-related source omitted]
  • Access to secretsline 208
    [Credential-related source omitted]

scripts/channels/so360/examples/search-result.json

  • Network accessline 7
    {       "title": "Mergü Textile – Sustainable Apparel Production",       "url": "https://mergu.com/",
  • Network accessline 8
    "title": "Mergü Textile – Sustainable Apparel Production",       "url": "https://mergu.com/",       "content": "Product RangeContactMergü Textile provides high-quality woven apparel production for international brands seeking a reliable and
  • Network accessline 9
    "url": "https://mergu.com/",
  • Network accessline 21
    {       "title": "sustainable apparel textile industry - 360翻译",       "url": "https://fanyi.so.com/?src=onebox",
  • Network accessline 22
    "title": "sustainable apparel textile industry - 360翻译",       "url": "https://fanyi.so.com/?src=onebox",       "content": "",
  • Network accessline 23
    "url": "https://fanyi.so.com/?src=onebox",
  • Network accessline 35
    {       "title": "Siyatex – Sourcing Sustainable Textile, Apparel, Home Furnishing & Accessories Solutions",       "url": "https://siyatex.com/",
  • Network accessline 36
    "title": "Siyatex – Sourcing Sustainable Textile, Apparel, Home Furnishing & Accessories Solutions",       "url": "https://siyatex.com/",       "content": "Sourcing Sustainable Textile, Apparel, Home Furnishing & Accessories Solutions We ar
  • Network accessline 37
    "url": "https://siyatex.com/",

scripts/channels/so360/output-analysis.md

  • Network accessline 29
    官方来源(2026-10-25):[360 搜索网页搜索帮助](https://www.so.com/help/help_2_6.html),已读取正文,未发现固定容量说明。
  • Network accessline 31
    `so360_no_api.py` 请求 `https://www.so.com/s` 的网页 HTML,使用相同 Session 两次访问后解析 `li.res-list`。本渠道使用 `no_api/web_search.py` 的请求、文档与结果工具,未继承旧 `base_engine.py`。函数返回对象数组;独立 `--json` 命令顶层为 `{results:array<object>}`,没有原生总命中数或分页数据。
  • Network accessline 34
    | --- | --- | --- | | `title` | 非空 string | 第一条 `h3/a` 的文本,归整空白 | | `url`、`href` | 相同的非空 string | 优先标题链接 `data-mdurl`,其次 `href`,相对地址基于 `https://www.so.com/` 补全 |
  • Network accessline 35
    | `title` | 非空 string | 第一条 `h3/a` 的文本,归整空白 | | `url`、`href` | 相同的非空 string | 优先标题链接 `data-mdurl`,其次 `href`,相对地址基于 `https://www.so.com/` 补全 | | `content`、`body` | 相同的 string,可为 `""` | 摘要节点合并后归整空白 |
  • Network accessline 36
    | `url`、`href` | 相同的非空 string | 优先标题链接 `data-mdurl`,其次 `href`,相对地址基于 `https://www.so.com/` 补全 |
  • Network accessline 46
    证据来自脚本、共享网页工具和联合适配代码。`.work/output-analysis/no-api.json` 的真实查询 `sustainable apparel textile industry` 成功返回 3 条,首条标题为 Mergü Textile – Sustainable Apparel Production,地址为 `https://mergu.com/`,说明包含联系方式及生产介绍。实测确认了标准化字段和摘要内容,HTML 原页没有单独保存,具体链接属性选

scripts/channels/so360/so360_no_api.py

  • Executable scriptline 1
    Executable file
  • Network accessline 14
    ENGINE_NAME = "so360"     ENGINE_DISPLAY_NAME = "360 搜索"     SEARCH_URL = "https://www.so.com/s?q={keyword}"
  • Network accessline 15
    ENGINE_DISPLAY_NAME = "360 搜索"     SEARCH_URL = "https://www.so.com/s?q={keyword}"     REQUIRES_PROXY = False
  • Network accessline 16
    SEARCH_URL = "https://www.so.com/s?q={keyword}"
  • Network accessline 28
    if timelimit:             params["adv_t"] = timelimit         return "https://www.so.com/s?" + urlencode(params)
  • Network accessline 30
    return "https://www.so.com/s?" + urlencode(params)
  • Network accessline 43
    title = text(link)             target = link.get("data-mdurl") or link.get("href")             target = urljoin("https://www.so.com/", target)
  • Network accessline 44
    target = link.get("data-mdurl") or link.get("href")             target = urljoin("https://www.so.com/", target)             parsed = urlsplit(target)
  • Network accessline 45
    target = urljoin("https://www.so.com/", target)

scripts/channels/sogou/examples/search-result.json

  • Network accessline 7
    {       "title": "Building resilience of the green product supply chain in the apparel industry论文",       "url": "https://www.researchgate.net/publication/384352279_Building_resilience_of_the_green_product_supply_chain_in_the_apparel_indust
  • Network accessline 8
    "title": "Building resilience of the green product supply chain in the apparel industry论文",       "url": "https://www.researchgate.net/publication/384352279_Building_resilience_of_the_green_product_supply_chain_in_the_apparel_industry",    
  • Network accessline 9
    "url": "https://www.researchgate.net/publication/384352279_Building_resilience_of_the_green_product_supply_chain_in_the_apparel_industry",
  • Network accessline 21
    {       "title": "(PDF) Sustainable Textile Industry: An Overview",       "url": "https://www.researchgate.net/publication/361829354_Sustainable_Textile_Industry_An_Overview",
  • Network accessline 22
    "title": "(PDF) Sustainable Textile Industry: An Overview",       "url": "https://www.researchgate.net/publication/361829354_Sustainable_Textile_Industry_An_Overview",       "content": "concerns in the textile industry. T o achieve sustaina
  • Network accessline 23
    "url": "https://www.researchgate.net/publication/361829354_Sustainable_Textile_Industry_An_Overview",
  • Network accessline 35
    {       "title": "Advanced Technology in Apparel Manufacturing | Springer Nature Link",       "url": "https://link.springer.com/chapter/10.1007/978-981-99-2142-3_7",
  • Network accessline 36
    "title": "Advanced Technology in Apparel Manufacturing | Springer Nature Link",       "url": "https://link.springer.com/chapter/10.1007/978-981-99-2142-3_7",       "content": "Ahmad S, Miskon S, Alabdan R, Tlili I (2020) Towards sustainable
  • Network accessline 37
    "url": "https://link.springer.com/chapter/10.1007/978-981-99-2142-3_7",

scripts/channels/sogou/output-analysis.md

  • Network accessline 29
    官方来源(2026-10-25):[搜狗高级搜索帮助](https://help.sogou.com/advanced.html?v=1),已读取正文并核对每页选项;[搜狗更多功能](https://www.sogou.com/docs/features.htm),官方检索内容说明可通过个性设置调整每页数量。
  • Network accessline 31
    `sogou_no_api.py` 读取 `https://www.sogou.com/web` 的 HTML,在 class 为 rb 或 vrwrap 的 `div` 中提取结果。使用 `web_search.py` 的网页工具;`base_engine.py` 的旧返回约定不决定本渠道字段。函数返回数组,`--json` 顶层为 `{results:array<object>}`,没有全站命中数。
  • Network accessline 40
    目标链接基于 `https://www.sogou.com/` 补全相对路径,检查 HTTP(S),按相同目标地址去重。标题为空、缺链接或协议不符的结果跳过。摘要类名包括 ft、attribute-centent、fz-mid、star-wiki、vr-info、str_info;嵌套匹配时保留外层,避免重复合并。摘要可以没有任何匹配节点,输出空字符串。

scripts/channels/sogou/sogou_no_api.py

  • Executable scriptline 1
    Executable file
  • Network accessline 14
    ENGINE_NAME = "sogou"     ENGINE_DISPLAY_NAME = "搜狗搜索"     SEARCH_URL = "https://www.sogou.com/web?query={keyword}"
  • Network accessline 15
    ENGINE_DISPLAY_NAME = "搜狗搜索"     SEARCH_URL = "https://www.sogou.com/web?query={keyword}"     REQUIRES_PROXY = False
  • Network accessline 16
    SEARCH_URL = "https://www.sogou.com/web?query={keyword}"
  • Network accessline 29
    if timelimit:             params.update(s_from=self.TIME_FILTERS[timelimit], tsn=1)         return "https://www.sogou.com/web?" + urlencode(params)
  • Network accessline 31
    return "https://www.sogou.com/web?" + urlencode(params)
  • Network accessline 49
    title = text(link)             target = link.get("href")             if urlsplit(urljoin("https://www.sogou.com/", target)).path == "/link":
  • Network accessline 50
    target = link.get("href")             if urlsplit(urljoin("https://www.sogou.com/", target)).path == "/link":                 targets = item.xpath(".//*[@data-url]/@data-url")
  • Network accessline 51
    if urlsplit(urljoin("https://www.sogou.com/", target)).path == "/link":
  • Network accessline 55
    if targets:                     target = targets[0]             target = urljoin("https://www.sogou.com/", target)
  • Network accessline 56
    target = targets[0]             target = urljoin("https://www.sogou.com/", target)             if not title or urlsplit(target).scheme not in ("http", "https") or target in seen:
  • Network accessline 57
    target = urljoin("https://www.sogou.com/", target)

scripts/channels/startpage/output-analysis.md

  • Network accessline 28
    官方来源与核实范围(2026-10-25):[Startpage 搜索使用说明](https://support.startpage.com/hc/en-us/articles/4521418101524-How-to-use-Startpage-more-effectively)、[官方设置帮助目录](https://support.startpage.com/hc/en-us/sections/4481942717076-Settings)。已联网检索官方内容,使用说明正
  • Network accessline 30
    `startpage_no_api.py` 请求 `https://www.startpage.com/do/search?q=...` 的网页 HTML,继承 `no_api/base_engine.py`,通过 lxml 静态解析。结果容器选择 class 包含 result 的 `li` 与 class 包含 search-result 的 `div`;代码未使用匿名 JSON 接口,也没有执行浏览器脚本。

scripts/channels/startpage/startpage_no_api.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 20
    ENGINE_NAME = "startpage"     ENGINE_DISPLAY_NAME = "Startpage"     SEARCH_URL = "https://www.startpage.com/do/search?q={keyword}"
  • Network accessline 21
    ENGINE_DISPLAY_NAME = "Startpage"     SEARCH_URL = "https://www.startpage.com/do/search?q={keyword}"     REQUIRES_PROXY = False
  • Network accessline 22
    SEARCH_URL = "https://www.startpage.com/do/search?q={keyword}"

scripts/channels/tavily_search/README.md

  • Network accessline 23
    1. 访问 [Tavily.com](https://tavily.com) 注册账号(有免费套餐)
  • Access to secretsline 27
    [Credential-related source omitted]
  • Network accessline 85
    1. **API 配额**:免费套餐有请求限制,查看 [定价页面](https://tavily.com/pricing)
  • Network accessline 91
    - [Tavily 官方文档](https://docs.tavily.com/)
  • Network accessline 92
    - [Python SDK 文档](https://github.com/tavily-ai/tavily-python)

scripts/channels/tavily_search/examples/search-result.json

  • Network accessline 6
    "items": [     {       "url": "https://finance.yahoo.com/news/4-textile-apparel-stocks-set-160700886.html",
  • Network accessline 7
    {       "url": "https://finance.yahoo.com/news/4-textile-apparel-stocks-set-160700886.html",       "title": "4 Textile-Apparel Stocks Set to Benefit From Strong Industry Momentum",
  • Network accessline 8
    "url": "https://finance.yahoo.com/news/4-textile-apparel-stocks-set-160700886.html",
  • Network accessline 14
    },     {       "url": "https://au.finance.yahoo.com/news/4-textile-apparel-stocks-set-160700886.html",
  • Network accessline 15
    {       "url": "https://au.finance.yahoo.com/news/4-textile-apparel-stocks-set-160700886.html",       "title": "4 Textile-Apparel Stocks Set to Benefit From Strong Industry Momentum",
  • Network accessline 16
    "url": "https://au.finance.yahoo.com/news/4-textile-apparel-stocks-set-160700886.html",
  • Network accessline 22
    },     {       "url": "https://ca.finance.yahoo.com/news/4-textile-apparel-stocks-set-160700886.html",
  • Network accessline 23
    {       "url": "https://ca.finance.yahoo.com/news/4-textile-apparel-stocks-set-160700886.html",       "title": "4 Textile-Apparel Stocks Set to Benefit From Strong Industry Momentum",
  • Network accessline 24
    "url": "https://ca.finance.yahoo.com/news/4-textile-apparel-stocks-set-160700886.html",

scripts/channels/tavily_search/output-analysis.md

  • Network accessline 36
    核查日期:2026-10-25。官方来源:[Search API](https://docs.tavily.com/documentation/api-reference/endpoint/search)。

scripts/channels/tavily_search/tavily_search.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 18
    [Credential-related source omitted]
  • Access to secretsline 24
    [Credential-related source omitted]
  • Access to secretsline 29
    [Credential-related source omitted]
  • Access to secretsline 31
    [Credential-related source omitted]
  • Access to secretsline 33
    [Credential-related source omitted]
  • Access to secretsline 34
    [Credential-related source omitted]
  • Access to secretsline 39
    [Credential-related source omitted]

scripts/channels/tinyfish/README.md

  • Network accessline 17
    [Credential-related source omitted]
  • Access to secretsline 17
    [Credential-related source omitted]
  • Network accessline 18
    # 默认 https://api.search.tinyfish.ai
  • Network accessline 22
    API Key 在 [TinyFish 控制台](https://www.tinyfish.ai) 创建,注册无需信用卡。
  • Network accessline 44
    | `--language` | 语言代码,如 `en`、`zh` | 由地区推断 | | `--api-key` | API Key(优先于环境变量) | - | | `--endpoint` | 接口地址 | https://api.search.tinyfish.ai |
  • Network accessline 45
    | `--api-key` | API Key(优先于环境变量) | - | | `--endpoint` | 接口地址 | https://api.search.tinyfish.ai | | `--timeout` | 请求超时秒数 | 15 |
  • Network accessline 46
    | `--endpoint` | 接口地址 | https://api.search.tinyfish.ai |
  • Network accessline 61
    - [TinyFish Search](https://www.tinyfish.ai/search) - [TinyFish 免费搜索与抓取](https://www.tinyfish.ai/free-search-fetch)
  • Network accessline 62
    - [TinyFish 免费搜索与抓取](https://www.tinyfish.ai/free-search-fetch)

scripts/channels/tinyfish/examples/search-result.json

  • Network accessline 7
    {       "title": "Environmental Sustainability in the Fashion Industry",       "href": "https://www.genevaenvironmentnetwork.org/resources/updates/sustainable-fashion/",
  • Network accessline 8
    "title": "Environmental Sustainability in the Fashion Industry",       "href": "https://www.genevaenvironmentnetwork.org/resources/updates/sustainable-fashion/",       "body": "Sep 17, 2026 — The fashion and textiles sector relies heavily o
  • Network accessline 9
    "href": "https://www.genevaenvironmentnetwork.org/resources/updates/sustainable-fashion/",
  • Network accessline 16
    {       "title": "Sustainable Clothing Manufacturing: Best Practices for Eco ...",       "href": "https://www.white2labelmanufacturing.com/blog/sustainable-clothing-manufacturing",
  • Network accessline 17
    "title": "Sustainable Clothing Manufacturing: Best Practices for Eco ...",       "href": "https://www.white2labelmanufacturing.com/blog/sustainable-clothing-manufacturing",       "body": "To achieve sustainable garment manufacturing, minimi
  • Network accessline 18
    "href": "https://www.white2labelmanufacturing.com/blog/sustainable-clothing-manufacturing",
  • Network accessline 25
    {       "title": "Standards | Certificates | Seals | Initiatives | Responsibility",       "href": "https://guides.library.cornell.edu/c.php?g=662121&p=5277662",
  • Network accessline 26
    "title": "Standards | Certificates | Seals | Initiatives | Responsibility",       "href": "https://guides.library.cornell.edu/c.php?g=662121&p=5277662",       "body": "Sep 1, 2026 — The Sustainable Apparel Coalition is the apparel, footwear
  • Network accessline 27
    "href": "https://guides.library.cornell.edu/c.php?g=662121&p=5277662",

scripts/channels/tinyfish/output-analysis.md

  • Network accessline 37
    核查日期:2026-10-25。官方来源:[Search API](https://docs.tinyfish.ai/search-api)。

scripts/channels/tinyfish/tinyfish_search.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 10
    [Credential-related source omitted]
  • Network accessline 12
    DEFAULT_ENDPOINT = "https://api.search.tinyfish.ai"
  • Network accessline 16
    """TinyFish 搜索客户端,接口文档 https://www.tinyfish.ai/search"""
  • Access to secretsline 20
    [Credential-related source omitted]
  • Access to secretsline 22
    [Credential-related source omitted]
  • Access to secretsline 23
    [Credential-related source omitted]
  • Access to secretsline 24
    [Credential-related source omitted]
  • Access to secretsline 25
    [Credential-related source omitted]
  • Network accessline 27
    [Credential-related source omitted]
  • Access to secretsline 27
    [Credential-related source omitted]
  • Network accessline 28
    self.session = requests.Session()
  • Access to secretsline 29
    [Credential-related source omitted]
  • Network accessline 60
    url = (item.get("url") or "").strip()             if url and not urlparse(url).scheme:                 url = f"https://{url}"
  • Network accessline 61
    if url and not urlparse(url).scheme:                 url = f"https://{url}"             if not url:
  • Network accessline 62
    url = f"https://{url}"
  • Access to secretsline 97
    [Credential-related source omitted]
  • Access to secretsline 100
    [Credential-related source omitted]
  • Network accessline 109
    parser.add_argument("--language", help="语言代码,如 en、zh")     parser.add_argument("--api-key", help="TinyFish API Key")     parser.add_argument("--endpoint", help="接口地址,默认 https://api.search.tinyfish.ai")
  • Network accessline 110
    parser.add_argument("--api-key", help="TinyFish API Key")     parser.add_argument("--endpoint", help="接口地址,默认 https://api.search.tinyfish.ai")     parser.add_argument("--timeout", type=int, default=15, help="请求超时秒数")
  • Network accessline 111
    parser.add_argument("--endpoint", help="接口地址,默认 https://api.search.tinyfish.ai")
  • Access to secretsline 117
    [Credential-related source omitted]

scripts/channels/toutiao/output-analysis.md

  • Network accessline 28
    官方来源与核实范围(2026-10-25):官方产品入口 [今日头条](https://www.toutiao.com/),源码使用 `https://www.toutiao.com/search/?keyword=...`。本次只检索官方容量资料,未重新调用搜索服务,未找到可引用的官方条数承诺。
  • Network accessline 30
    `toutiao_no_api.py` 请求 `https://www.toutiao.com/search/?keyword=...`,来源为网页 HTML。它继承 `base_engine.py` 并用 lxml 解析响应,未调用头条匿名 JSON 接口或浏览器执行后的内容。匹配容器为 class 包含 article 或 result 的 `div`。

scripts/channels/toutiao/toutiao_no_api.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 20
    ENGINE_NAME = "toutiao"     ENGINE_DISPLAY_NAME = "今日头条"     SEARCH_URL = "https://www.toutiao.com/search/?keyword={keyword}"
  • Network accessline 21
    ENGINE_DISPLAY_NAME = "今日头条"     SEARCH_URL = "https://www.toutiao.com/search/?keyword={keyword}"     REQUIRES_PROXY = False
  • Network accessline 22
    SEARCH_URL = "https://www.toutiao.com/search/?keyword={keyword}"

scripts/channels/volcengine/README.md

  • Access to secretsline 23
    [Credential-related source omitted]
  • Access to secretsline 26
    [Credential-related source omitted]
  • Access to secretsline 34
    [Credential-related source omitted]
  • Network accessline 39
    在环境变量或项目 `.env` 中设置 `VOLCENGINE_SEARCH_VERSION=global`。Global 与 Custom 使用同一个按量 API Key,调用地址为 `https://open.feedcoopapi.com/search_api/global_search`。未设置版本时保持 Custom 行为,也可通过 `VOLCENGINE_SEARCH_VERSION=custom` 或命令行 `--version custom` 显式选择。
  • Access to secretsline 49
    [Credential-related source omitted]
  • Access to secretsline 77
    [Credential-related source omitted]
  • Network accessline 206
    1. 访问火山引擎控制台:https://console.volcengine.com/ask-echo/api-key

scripts/channels/volcengine/examples/search-result.json

  • Network accessline 7
    {       "Rank": 0,       "Url": "https://www.hucbe.org/_files/ugd/f3769f_073e6c68933a4bb4ae8b2dcd08c08887.pdf",
  • Network accessline 8
    "Rank": 0,       "Url": "https://www.hucbe.org/_files/ugd/f3769f_073e6c68933a4bb4ae8b2dcd08c08887.pdf",       "Title": "Sustainability in the Fashion Industry",
  • Network accessline 9
    "Url": "https://www.hucbe.org/_files/ugd/f3769f_073e6c68933a4bb4ae8b2dcd08c08887.pdf",
  • Network accessline 22
    },       "title": "Sustainability in the Fashion Industry",       "url": "https://www.hucbe.org/_files/ugd/f3769f_073e6c68933a4bb4ae8b2dcd08c08887.pdf"
  • Network accessline 23
    "title": "Sustainability in the Fashion Industry",       "url": "https://www.hucbe.org/_files/ugd/f3769f_073e6c68933a4bb4ae8b2dcd08c08887.pdf"     },
  • Network accessline 24
    "url": "https://www.hucbe.org/_files/ugd/f3769f_073e6c68933a4bb4ae8b2dcd08c08887.pdf"
  • Network accessline 26
    {       "Rank": 1,       "Url": "http://www.cntac.org.cn/jinghua/202511/t20251116_4396465.html",
  • Network accessline 27
    "Rank": 1,       "Url": "http://www.cntac.org.cn/jinghua/202511/t20251116_4396465.html",       "Title": "中国纺织工业联合会",
  • Network accessline 28
    "Url": "http://www.cntac.org.cn/jinghua/202511/t20251116_4396465.html",
  • Network accessline 37
    "HostInfo": {         "Hostname": "中国纺织工业联合会",         "IconUrl": "https://p11-volcsearch-d-sign.byteimg.com/isp-i18n-media/img/8ea6419c3fa44f28c35f654c01d053f8~tplv-be4g95zd3a-224x224.jpeg?lk3s=feb11e32&x-expires=1798074046&x-signature=Buu
  • Network accessline 38
    "Hostname": "中国纺织工业联合会",         "IconUrl": "https://p11-volcsearch-d-sign.byteimg.com/isp-i18n-media/img/8ea6419c3fa44f28c35f654c01d053f8~tplv-be4g95zd3a-224x224.jpeg?lk3s=feb11e32&x-expires=1798074046&x-signature=BuuyzNMiBknyRpEIkkwOxb3Tm
  • Network accessline 39
    "IconUrl": "https://p11-volcsearch-d-sign.byteimg.com/isp-i18n-media/img/8ea6419c3fa44f28c35f654c01d053f8~tplv-be4g95zd3a-224x224.jpeg?lk3s=feb11e32&x-expires=1798074046&x-signature=BuuyzNMiBknyRpEIkkwOxb3TmEo%3D",
  • Network accessline 41
    },       "title": "中国纺织工业联合会",       "url": "http://www.cntac.org.cn/jinghua/202511/t20251116_4396465.html"
  • Network accessline 42
    "title": "中国纺织工业联合会",       "url": "http://www.cntac.org.cn/jinghua/202511/t20251116_4396465.html"     },
  • Network accessline 43
    "url": "http://www.cntac.org.cn/jinghua/202511/t20251116_4396465.html"
  • Network accessline 45
    {       "Rank": 2,       "Url": "https://www.shopify.com/ca/blog/sustainable-fashion-trends",
  • Network accessline 46
    "Rank": 2,       "Url": "https://www.shopify.com/ca/blog/sustainable-fashion-trends",       "Title": "8 Sustainable Fashion Trends: 2026 Guide - Shopify Canada",
  • Network accessline 47
    "Url": "https://www.shopify.com/ca/blog/sustainable-fashion-trends",
  • Network accessline 56
    "HostInfo": {         "Hostname": "Shopify",         "IconUrl": "https://p26-volcsearch-d-sign.byteimg.com/isp-i18n-media/img/dff0408efdf99ebbdb5ff8d063185885~tplv-be4g95zd3a-224x224.jpeg?lk3s=feb11e32&x-expires=1798074046&x-signature=qvLWC
  • Network accessline 57
    "Hostname": "Shopify",         "IconUrl": "https://p26-volcsearch-d-sign.byteimg.com/isp-i18n-media/img/dff0408efdf99ebbdb5ff8d063185885~tplv-be4g95zd3a-224x224.jpeg?lk3s=feb11e32&x-expires=1798074046&x-signature=qvLWC5mkmgjffMnP2G4Q9rIKCO4
  • Network accessline 58
    "IconUrl": "https://p26-volcsearch-d-sign.byteimg.com/isp-i18n-media/img/dff0408efdf99ebbdb5ff8d063185885~tplv-be4g95zd3a-224x224.jpeg?lk3s=feb11e32&x-expires=1798074046&x-signature=qvLWC5mkmgjffMnP2G4Q9rIKCO4%3D",
  • Network accessline 60
    },       "title": "8 Sustainable Fashion Trends: 2026 Guide - Shopify Canada",       "url": "https://www.shopify.com/ca/blog/sustainable-fashion-trends"
  • Network accessline 61
    "title": "8 Sustainable Fashion Trends: 2026 Guide - Shopify Canada",       "url": "https://www.shopify.com/ca/blog/sustainable-fashion-trends"     }
  • Network accessline 62
    "url": "https://www.shopify.com/ca/blog/sustainable-fashion-trends"

scripts/channels/volcengine/output-analysis.md

  • Network accessline 37
    核查日期:2026-10-25。官方来源:[Collab 智能体 API](https://docs.volcengine.com/docs/NetworkedQAAgent/CollabAgentAPI?lang=zh)。官方搜索可见参数说明确认 `Count` 最高 50、`DocCount` 最高 20,二者默认均为 10;页面正文直取为空,因此其他参数的官方完整约束未核实。

scripts/channels/volcengine/volcengine_search.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 11
    [Credential-related source omitted]
  • Access to secretsline 12
    [Credential-related source omitted]
  • Access to secretsline 14
    [Credential-related source omitted]
  • Access to secretsline 15
    [Credential-related source omitted]
  • Access to secretsline 16
    [Credential-related source omitted]
  • Access to secretsline 21
    [Credential-related source omitted]
  • Access to secretsline 27
    [Credential-related source omitted]
  • Access to secretsline 32
    [Credential-related source omitted]
  • Access to secretsline 34
    [Credential-related source omitted]
  • Network accessline 37
    raise ValueError("VOLCENGINE_SEARCH_VERSION 仅支持 global 或 custom")         endpoint = "global_search" if self.version == "global" else "web_search"         self.base_url = f"https://open.feedcoopapi.com/search_api/{endpoint}"
  • Network accessline 38
    endpoint = "global_search" if self.version == "global" else "web_search"         self.base_url = f"https://open.feedcoopapi.com/search_api/{endpoint}"         self.headers = {
  • Network accessline 39
    self.base_url = f"https://open.feedcoopapi.com/search_api/{endpoint}"
  • Access to secretsline 41
    [Credential-related source omitted]
  • Network accessline 293
    response = requests.post(
  • Access to secretsline 399
    [Credential-related source omitted]
  • Access to secretsline 412
    [Credential-related source omitted]
  • Access to secretsline 455
    [Credential-related source omitted]
  • Access to secretsline 457
    [Credential-related source omitted]
  • Access to secretsline 458
    [Credential-related source omitted]
  • Access to secretsline 460
    [Credential-related source omitted]
  • Access to secretsline 461
    [Credential-related source omitted]
  • Access to secretsline 464
    [Credential-related source omitted]

scripts/channels/wechat/examples/search-result.json

  • Network accessline 5
    {       "title": "透视羽绒服装行业:技术迭代背后的机遇与短板",       "url": "https://weixin.sogou.com/link?url=dn9a_-gY295K0Rci_xozVXfdMkSQTLW6cwJThYulHEtVjXrGTiVgSxyYmItiLO7oVJUk2qg3OBjzDcrSD_hwjVqXa8Fplpd9KlpWrqafLzseh_rsn4C_Bg_B3gIzGk6C4unRvgcyxR8RllKulLQoVx
  • Network accessline 6
    "title": "透视羽绒服装行业:技术迭代背后的机遇与短板",       "url": "https://weixin.sogou.com/link?url=dn9a_-gY295K0Rci_xozVXfdMkSQTLW6cwJThYulHEtVjXrGTiVgSxyYmItiLO7oVJUk2qg3OBjzDcrSD_hwjVqXa8Fplpd9KlpWrqafLzseh_rsn4C_Bg_B3gIzGk6C4unRvgcyxR8RllKulLQoVxdbEW-_QC
  • Network accessline 7
    [Credential-related source omitted]
  • Network accessline 14
    {       "title": "泰欧FTA倒计时:泰国服装业如何借自贸协定抢占欧洲市场?",       "url": "https://weixin.sogou.com/link?url=dn9a_-gY295K0Rci_xozVXfdMkSQTLW6cwJThYulHEtVjXrGTiVgSxyYmItiLO7oVJUk2qg3OBjzDcrSD_hwjVqXa8Fplpd9WGntxYssgy_For_wu5N5kbPvPTVL7d9mvOeV3A7y2ZqCOXk
  • Network accessline 15
    "title": "泰欧FTA倒计时:泰国服装业如何借自贸协定抢占欧洲市场?",       "url": "https://weixin.sogou.com/link?url=dn9a_-gY295K0Rci_xozVXfdMkSQTLW6cwJThYulHEtVjXrGTiVgSxyYmItiLO7oVJUk2qg3OBjzDcrSD_hwjVqXa8Fplpd9WGntxYssgy_For_wu5N5kbPvPTVL7d9mvOeV3A7y2ZqCOXkzMQdpntD
  • Network accessline 16
    [Credential-related source omitted]
  • Network accessline 23
    {       "title": "为什么说大部分顶级富豪都来自服装行业?",       "url": "https://weixin.sogou.com/link?url=dn9a_-gY295K0Rci_xozVXfdMkSQTLW6cwJThYulHEtVjXrGTiVgSxyYmItiLO7oVJUk2qg3OBjzDcrSD_hwjVqXa8Fplpd92WQ5x8gs6CRbLaYVi02QHV3rz7tLfg9JKE9K4Xne8hOJjtVKMHAg2_lo
  • Network accessline 24
    "title": "为什么说大部分顶级富豪都来自服装行业?",       "url": "https://weixin.sogou.com/link?url=dn9a_-gY295K0Rci_xozVXfdMkSQTLW6cwJThYulHEtVjXrGTiVgSxyYmItiLO7oVJUk2qg3OBjzDcrSD_hwjVqXa8Fplpd92WQ5x8gs6CRbLaYVi02QHV3rz7tLfg9JKE9K4Xne8hOJjtVKMHAg2_loRvkMAt4B
  • Network accessline 25
    [Credential-related source omitted]

scripts/channels/wechat/output-analysis.md

  • Network accessline 33
    官方来源(资料整理日期:2026-10-25):[搜狗微信搜索入口](https://weixin.sogou.com/)。已核对页面入口,未发现固定每页数量承诺;50 条与最多五页均为本实现限制。

scripts/channels/wechat/package.json

  • Executable scriptline 1
    Executable file

scripts/channels/wechat/search_wechat.js

  • Executable scriptline 1
    #!/usr/bin/env node
  • Network accessline 51
    'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8',   'Host': 'weixin.sogou.com',   'Referer': 'https://weixin.sogou.com/',
  • Network accessline 52
    'Host': 'weixin.sogou.com',   'Referer': 'https://weixin.sogou.com/', };
  • Network accessline 53
    'Referer': 'https://weixin.sogou.com/',
  • Network accessline 163
    try {     const resp = await request({       url: 'https://v.sogou.com/v?ie=utf8&query=&p=40030600',
  • Network accessline 164
    const resp = await request({       url: 'https://v.sogou.com/v?ie=utf8&query=&p=40030600',       headers: {
  • Network accessline 165
    url: 'https://v.sogou.com/v?ie=utf8&query=&p=40030600',
  • Network accessline 484
    if (url.startsWith('/')) {       url = `https://weixin.sogou.com${url}`;
  • Network accessline 485
    url = `https://weixin.sogou.com${url}`;
  • Network accessline 583
    const encodedQuery = encodeURIComponent(query);       const url = `https://weixin.sogou.com/weixin?query=${encodedQuery}&s_from=input&_sug_=n&type=2&page=${page}&ie=utf8`;
  • Network accessline 584
    const url = `https://weixin.sogou.com/weixin?query=${encodedQuery}&s_from=input&_sug_=n&type=2&page=${page}&ie=utf8`;

scripts/channels/wechat/wechat_no_api.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 20
    ENGINE_NAME = "wechat"     ENGINE_DISPLAY_NAME = "微信搜索"     SEARCH_URL = "https://weixin.sogou.com/weixin?type=1&query={keyword}"
  • Network accessline 21
    ENGINE_DISPLAY_NAME = "微信搜索"     SEARCH_URL = "https://weixin.sogou.com/weixin?type=1&query={keyword}"     REQUIRES_PROXY = False
  • Network accessline 22
    SEARCH_URL = "https://weixin.sogou.com/weixin?type=1&query={keyword}"

scripts/channels/wikipedia/README.md

  • Network accessline 32
    # 使用代理 python scripts/channels/wikipedia/wikipedia_search.py "search query" --proxy http://127.0.0.1:7890
  • Network accessline 33
    python scripts/channels/wikipedia/wikipedia_search.py "search query" --proxy http://127.0.0.1:7890
  • Network accessline 50
    [Credential-related source omitted]
  • Access to secretsline 50
    [Credential-related source omitted]
  • Network accessline 51
    WIKIPEDIA_PROXY=http://127.0.0.1:7890

scripts/channels/wikipedia/examples/search-result.json

  • Network accessline 7
    {       "title": "Clothing industry",       "href": "https://en.wikipedia.org/?curid=39751285",
  • Network accessline 8
    "title": "Clothing industry",       "href": "https://en.wikipedia.org/?curid=39751285",       "body": "includes the textile industry (producers of cotton, wool, fur, and synthetic fibre), embellishment using embroidery, the fashion industry
  • Network accessline 9
    "href": "https://en.wikipedia.org/?curid=39751285",
  • Network accessline 12
    {       "title": "Textile industry in Bangladesh",       "href": "https://en.wikipedia.org/?curid=13798677",
  • Network accessline 13
    "title": "Textile industry in Bangladesh",       "href": "https://en.wikipedia.org/?curid=13798677",       "body": "The textile industry in Bangladesh comprises primary textile manufacturing, including spinning, weaving and knitting, and dy
  • Network accessline 14
    "href": "https://en.wikipedia.org/?curid=13798677",
  • Network accessline 17
    {       "title": "Textile industry",       "href": "https://en.wikipedia.org/?curid=1943311",
  • Network accessline 18
    "title": "Textile industry",       "href": "https://en.wikipedia.org/?curid=1943311",       "body": "February 2018). \"Sustainable chemistry: A solution to the textile industry in a developing world\". Current Opinion in Green and Sustainab
  • Network accessline 19
    "href": "https://en.wikipedia.org/?curid=1943311",

scripts/channels/wikipedia/output-analysis.md

  • Network accessline 29
    官方来源(资料整理日期:2026-10-25):[MediaWiki API:Search:srlimit、snippet 与 continuation](https://www.mediawiki.org/wiki/API:Search)。

scripts/channels/wikipedia/wikipedia_search.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 21
    [Credential-related source omitted]
  • Network accessline 31
    Args:             lang: 语言代码 (默认: en)             proxy: 代理地址 (如 http://127.0.0.1:7890)
  • Network accessline 32
    lang: 语言代码 (默认: en)             proxy: 代理地址 (如 http://127.0.0.1:7890)         """
  • Network accessline 33
    proxy: 代理地址 (如 http://127.0.0.1:7890)
  • Network accessline 35
    self.lang = lang         self.proxy = proxy or os.getenv("WIKIPEDIA_PROXY")         self.session = requests.Session()
  • Network accessline 36
    self.proxy = proxy or os.getenv("WIKIPEDIA_PROXY")         self.session = requests.Session()         self.session.headers.update({
  • Network accessline 37
    self.session = requests.Session()
  • Network accessline 59
    search_url = f"https://{self.lang}.wikipedia.org/w/api.php"
  • Network accessline 83
    results.append({                     'title': title,                     'href': f"https://{self.lang}.wikipedia.org/?curid={pageid}" if pageid else "",
  • Network accessline 84
    'title': title,                     'href': f"https://{self.lang}.wikipedia.org/?curid={pageid}" if pageid else "",                     'body': body
  • Network accessline 85
    'href': f"https://{self.lang}.wikipedia.org/?curid={pageid}" if pageid else "",

scripts/channels/wolfram/output-analysis.md

  • Network accessline 28
    官方来源(2026-10-25):[Wolfram Alpha FAQ](https://www.wolframalpha.com/faqs/),已读取正文并核对 pod/subpod 的说明,未发现固定数量承诺。
  • Network accessline 30
    `wolfram_no_api.py` 请求 `https://www.wolframalpha.com/input?i=...` 的网页 HTML,继承共享 `base_engine.py`。它未调用 Wolfram 官方计算 API,没有读取完整的计算响应 JSON,也不执行动态页面脚本。解析容器为 class 包含 result 或 pod 的 `div`,同页可能有多个知识展示区域。

scripts/channels/wolfram/wolfram_no_api.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 21
    ENGINE_NAME = "wolfram"     ENGINE_DISPLAY_NAME = "Wolfram Alpha"     SEARCH_URL = "https://www.wolframalpha.com/input?i={keyword}"
  • Network accessline 22
    ENGINE_DISPLAY_NAME = "Wolfram Alpha"     SEARCH_URL = "https://www.wolframalpha.com/input?i={keyword}"     REQUIRES_PROXY = True
  • Network accessline 23
    SEARCH_URL = "https://www.wolframalpha.com/input?i={keyword}"

scripts/channels/xiaoyuzhoufm/README.md

  • Access to secretsline 24
    [Credential-related source omitted]
  • Network accessline 27
    获取API密钥:https://metaso.cn
  • Network accessline 114
    - **时长**: 45分30秒 - **相关度**: high - **链接**: https://www.xiaoyuzhoufm.com/episode/xxx
  • Network accessline 116
    - **链接**: https://www.xiaoyuzhoufm.com/episode/xxx

scripts/channels/xiaoyuzhoufm/examples/search-result.json

  • Network accessline 7
    {       "title": "预测一下 2050 年流行什么衣服 (feat. 崔丹)",       "link": "https://www.xiaoyuzhoufm.com/episode/64f5bb3680c9ec4c5f239480",
  • Network accessline 8
    "title": "预测一下 2050 年流行什么衣服 (feat. 崔丹)",       "link": "https://www.xiaoyuzhoufm.com/episode/64f5bb3680c9ec4c5f239480",       "score": "medium",
  • Network accessline 9
    "link": "https://www.xiaoyuzhoufm.com/episode/64f5bb3680c9ec4c5f239480",
  • Network accessline 19
    {       "title": "vol29. 我用AI 解锁了时尚产业 11%的新生意",       "link": "https://www.xiaoyuzhoufm.com/episode/65e8836ee80d0dbe63cd0197",
  • Network accessline 20
    "title": "vol29. 我用AI 解锁了时尚产业 11%的新生意",       "link": "https://www.xiaoyuzhoufm.com/episode/65e8836ee80d0dbe63cd0197",       "score": "medium",
  • Network accessline 21
    "link": "https://www.xiaoyuzhoufm.com/episode/65e8836ee80d0dbe63cd0197",
  • Network accessline 31
    {       "title": "SS.1 Sustainability Series | Fashion - Sustainability is the New Sexy",       "link": "https://www.xiaoyuzhoufm.com/episode/61397a63fb4acd247422eab7",
  • Network accessline 32
    "title": "SS.1 Sustainability Series | Fashion - Sustainability is the New Sexy",       "link": "https://www.xiaoyuzhoufm.com/episode/61397a63fb4acd247422eab7",       "score": "low",
  • Network accessline 33
    "link": "https://www.xiaoyuzhoufm.com/episode/61397a63fb4acd247422eab7",

scripts/channels/xiaoyuzhoufm/output-analysis.md

  • Network accessline 30
    官方来源(资料整理日期:2026-10-25):[秘塔搜索 API Playground](https://metaso.cn/search-api/playground)。已核对公开入口;podcast 专属最大条数及有效范围未取得可确认的官方说明。

scripts/channels/xiaoyuzhoufm/xiaoyuzhou_search.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 6
    [Credential-related source omitted]
  • Network accessline 9
    import http.client
  • Access to secretsline 21
    [Credential-related source omitted]
  • Access to secretsline 23
    [Credential-related source omitted]
  • Access to secretsline 24
    [Credential-related source omitted]
  • Access to secretsline 27
    [Credential-related source omitted]
  • Access to secretsline 29
    [Credential-related source omitted]
  • Access to secretsline 54
    [Credential-related source omitted]
  • Access to secretsline 66
    [Credential-related source omitted]
  • Network accessline 72
    conn = http.client.HTTPSConnection(base_url, timeout=timeout)

scripts/channels/yahoo/README.md

  • Network accessline 8
    python scripts/channels/yahoo/yahoo_search.py "python documentation" --json --pretty python scripts/channels/yahoo/yahoo_no_api.py "人工智能 新闻" --page 2 --timelimit w --safesearch strict --timeout 45 --json python scripts/channels/yahoo/yahoo_
  • Network accessline 10
    python scripts/channels/yahoo/yahoo_search.py "search query" --proxy http://127.0.0.1:7890 --json

scripts/channels/yahoo/examples/search-result.json

  • Network accessline 7
    {       "title": "Green production and consumption of textiles and apparel ...",       "url": "https://www.sciencedirect.com/science/article/pii/S219985312400074X",
  • Network accessline 8
    "title": "Green production and consumption of textiles and apparel ...",       "url": "https://www.sciencedirect.com/science/article/pii/S219985312400074X",       "content": "Jun 1, 2024 · Future considerations and developments in sustainab
  • Network accessline 9
    "url": "https://www.sciencedirect.com/science/article/pii/S219985312400074X",
  • Network accessline 21
    {       "title": "Review on Sustainability in the Textiles and Apparel Industry ...",       "url": "https://ijsmt.org/wp-content/uploads/2026/04/Review-on-Sustainability-in-the-Textiles-and-Apparel-Industry-A-Comprehensive-Analysis-of-Envir
  • Network accessline 22
    "title": "Review on Sustainability in the Textiles and Apparel Industry ...",       "url": "https://ijsmt.org/wp-content/uploads/2026/04/Review-on-Sustainability-in-the-Textiles-and-Apparel-Industry-A-Comprehensive-Analysis-of-Environmental
  • Network accessline 23
    "url": "https://ijsmt.org/wp-content/uploads/2026/04/Review-on-Sustainability-in-the-Textiles-and-Apparel-Industry-A-Comprehensive-Analysis-of-Environmental-and-Social-Impacts.pdf",
  • Network accessline 35
    {       "title": "Review on Sustainability in the Textiles and Apparel Industry ...",       "url": "https://ijsmt.org/article/review-on-sustainability-in-the-textiles-and-apparel-industry-a-comprehensive-analysis-of-environmental-and-social
  • Network accessline 36
    "title": "Review on Sustainability in the Textiles and Apparel Industry ...",       "url": "https://ijsmt.org/article/review-on-sustainability-in-the-textiles-and-apparel-industry-a-comprehensive-analysis-of-environmental-and-social-impacts
  • Network accessline 37
    "url": "https://ijsmt.org/article/review-on-sustainability-in-the-textiles-and-apparel-industry-a-comprehensive-analysis-of-environmental-and-social-impacts/",

scripts/channels/yahoo/output-analysis.md

  • Network accessline 30
    官方来源与核实范围(2026-10-25):[Yahoo SafeSearch 官方帮助](https://in.help.yahoo.com/kb/search-for-desktop/select-setting-yahoo-safesearch-sln2247.html)。官方检索内容确认 Strict、Moderate、Off 三种模式;正文抓取未成功,检索内容未给出固定每页容量。
  • Network accessline 32
    `yahoo_search.py` 读取 `https://search.yahoo.com/search` 的网页 HTML,从 `div.algo-sr` 提取网页结果。`yahoo_no_api.py` 继承相同搜索类;联合别名 `yahoo_direct` 归并到 `yahoo`,两种入口共用本篇格式说明。分页通过页面的 next 链接继续访问,输出为指定页的结果。

scripts/channels/yahoo/yahoo_no_api.py

  • Executable scriptline 1
    Executable file

scripts/channels/yahoo/yahoo_search.py

  • Executable scriptline 1
    Executable file
  • Network accessline 13
    ENGINE_NAME = 'yahoo'     ENGINE_DISPLAY_NAME = 'Yahoo 搜索'     SEARCH_URL = 'https://search.yahoo.com/search'
  • Network accessline 14
    ENGINE_DISPLAY_NAME = 'Yahoo 搜索'     SEARCH_URL = 'https://search.yahoo.com/search'     REQUIRES_PROXY = True
  • Network accessline 15
    SEARCH_URL = 'https://search.yahoo.com/search'

scripts/channels/yandex/README.md

  • Network accessline 8
    python scripts/channels/yandex/yandex_no_api.py "Python documentation" -m 5 --json python scripts/channels/yandex/yandex_no_api.py "北京大学" --page 2 --timeout 20 --json python scripts/channels/yandex/yandex_no_api.py "Python documentation" --
  • Network accessline 10
    python scripts/channels/yandex/yandex_no_api.py "Python documentation" --proxy http://127.0.0.1:7890 --json
  • Network accessline 29
    请求端点为 `https://yandex.com/search/site/`,参数包括 `text`、`tmpl_version=releases`、`web=1`、`frame=1`、`searchid=3131712`。HTML 结果来自 `b-serp-item`,标题链接来自 `b-serp-item__title-link`,摘要来自 `b-serp-item__text`。端点与字段事实参考本地 SearXNG 引擎资料,模块独立实现,未引入其代码。

scripts/channels/yandex/examples/search-result-yandex_direct.json

  • Network accessline 7
    {       "title": "Sustainability trends and gaps in the textile, apparel and fashion...",       "url": "https://link.springer.com/article/10.1007/s10668-022-02887-2",
  • Network accessline 8
    "title": "Sustainability trends and gaps in the textile, apparel and fashion...",       "url": "https://link.springer.com/article/10.1007/s10668-022-02887-2",       "content": "(2019) reviewed different CSR theories and methods used in the 
  • Network accessline 9
    "url": "https://link.springer.com/article/10.1007/s10668-022-02887-2",
  • Network accessline 21
    {       "title": "Textile Sustainability Hub",       "url": "https://www.textilesustainability.com/",
  • Network accessline 22
    "title": "Textile Sustainability Hub",       "url": "https://www.textilesustainability.com/",       "content": "Decarbonizing the Textile and Apparel Industry. Driving sustainability in the textile and apparel industry through innovative so
  • Network accessline 23
    "url": "https://www.textilesustainability.com/",
  • Network accessline 35
    {       "title": "Sustainable Apparel Market, Global Market Analysis Report - 2036",       "url": "https://www.factmr.com/report/sustainable-apparel-market",
  • Network accessline 36
    "title": "Sustainable Apparel Market, Global Market Analysis Report - 2036",       "url": "https://www.factmr.com/report/sustainable-apparel-market",       "content": "Europe is a policy-led market for sustainable apparel. Textile waste rul
  • Network accessline 37
    "url": "https://www.factmr.com/report/sustainable-apparel-market",

scripts/channels/yandex/examples/search-result.json

  • Network accessline 7
    {       "title": "Sustainable Practices in the Apparel Industry | NetSuite",       "href": "https://www.netsuite.com/portal/resource/articles/erp/sustainability-in-apparel.shtml",
  • Network accessline 8
    "title": "Sustainable Practices in the Apparel Industry | NetSuite",       "href": "https://www.netsuite.com/portal/resource/articles/erp/sustainability-in-apparel.shtml",       "body": "Sustainability Strategies in the Apparel Industry. Ap
  • Network accessline 9
    "href": "https://www.netsuite.com/portal/resource/articles/erp/sustainability-in-apparel.shtml",
  • Network accessline 13
    {       "title": "The Future of Fashion: Sustainability in the Textile Industry",       "href": "https://www.thedesignagent.com/blog-posts/the-future-of-fashion-sustainability-in-the-textile-industry",
  • Network accessline 14
    "title": "The Future of Fashion: Sustainability in the Textile Industry",       "href": "https://www.thedesignagent.com/blog-posts/the-future-of-fashion-sustainability-in-the-textile-industry",       "body": "The production of textiles, par
  • Network accessline 15
    "href": "https://www.thedesignagent.com/blog-posts/the-future-of-fashion-sustainability-in-the-textile-industry",
  • Network accessline 19
    {       "title": "Innovation is the Future for the Textile and Apparel Industry",       "href": "https://www.sgs.com/en-us/news/2025/07/cc-2025-q2-innovation-is-the-future-for-the-textile-and-apparel-industry",
  • Network accessline 20
    "title": "Innovation is the Future for the Textile and Apparel Industry",       "href": "https://www.sgs.com/en-us/news/2025/07/cc-2025-q2-innovation-is-the-future-for-the-textile-and-apparel-industry",       "body": "Sustainable dyeing and
  • Network accessline 21
    "href": "https://www.sgs.com/en-us/news/2025/07/cc-2025-q2-innovation-is-the-future-for-the-textile-and-apparel-industry",

scripts/channels/yandex/output-analysis.md

  • Network accessline 34
    核查日期:2026-10-25。官方来源:[SerpAPI Yandex Search API](https://serpapi.com/yandex-search-api)。当前商业入口使用 SerpAPI。

scripts/channels/yandex/yandex_no_api.py

  • Executable scriptline 1
    Executable file
  • Network accessline 33
    params['p'] = page - 1     with create_session(proxy) as session:         response = request(session, 'GET', 'https://yandex.com/search/site/',
  • Network accessline 34
    with create_session(proxy) as session:         response = request(session, 'GET', 'https://yandex.com/search/site/',                            timeout=deadline.remaining(), params=params)
  • Network accessline 35
    response = request(session, 'GET', 'https://yandex.com/search/site/',

scripts/channels/yandex/yandex_search.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 18
    [Credential-related source omitted]
  • Access to secretsline 33
    [Credential-related source omitted]
  • Access to secretsline 35
    [Credential-related source omitted]
  • Access to secretsline 36
    [Credential-related source omitted]
  • Access to secretsline 38
    [Credential-related source omitted]
  • Access to secretsline 45
    [Credential-related source omitted]
  • Access to secretsline 64
    [Credential-related source omitted]
  • Access to secretsline 124
    [Credential-related source omitted]

scripts/channels/youtube/README.md

  • Access to secretsline 13
    [Credential-related source omitted]
  • Network accessline 16
    获取 API Key: https://console.cloud.google.com/apis/credentials(需启用 YouTube Data API v3)

scripts/channels/youtube/examples/search-result.json

  • Network accessline 12
    "channel_id": "UCXWToxAeK_liUtbx1u8Ntbg",       "published_at": "2023-05-09T15:10:22Z",       "description": "Textiles are all around us, but understanding textiles themselves is complex. We use 100 million tonnes of textile materials each 
  • Network accessline 13
    "published_at": "2023-05-09T15:10:22Z",       "description": "Textiles are all around us, but understanding textiles themselves is complex. We use 100 million tonnes of textile materials each year but more than 70% end up in landfill, produ
  • Network accessline 14
    "description": "Textiles are all around us, but understanding textiles themselves is complex. We use 100 million tonnes of textile materials each year but more than 70% end up in landfill, producing a lot of stress on our planet. Associate 
  • Network accessline 15
    "thumbnails": {         "default": {           "url": "https://i.ytimg.com/vi/OAoCxMifgd8/default.jpg",
  • Network accessline 16
    "default": {           "url": "https://i.ytimg.com/vi/OAoCxMifgd8/default.jpg",           "width": 120,
  • Network accessline 17
    "url": "https://i.ytimg.com/vi/OAoCxMifgd8/default.jpg",
  • Network accessline 20
    },         "medium": {           "url": "https://i.ytimg.com/vi/OAoCxMifgd8/mqdefault.jpg",
  • Network accessline 21
    "medium": {           "url": "https://i.ytimg.com/vi/OAoCxMifgd8/mqdefault.jpg",           "width": 320,
  • Network accessline 22
    "url": "https://i.ytimg.com/vi/OAoCxMifgd8/mqdefault.jpg",
  • Network accessline 25
    },         "high": {           "url": "https://i.ytimg.com/vi/OAoCxMifgd8/hqdefault.jpg",
  • Network accessline 26
    "high": {           "url": "https://i.ytimg.com/vi/OAoCxMifgd8/hqdefault.jpg",           "width": 480,
  • Network accessline 27
    "url": "https://i.ytimg.com/vi/OAoCxMifgd8/hqdefault.jpg",
  • Network accessline 30
    },         "standard": {           "url": "https://i.ytimg.com/vi/OAoCxMifgd8/sddefault.jpg",
  • Network accessline 31
    "standard": {           "url": "https://i.ytimg.com/vi/OAoCxMifgd8/sddefault.jpg",           "width": 640,
  • Network accessline 32
    "url": "https://i.ytimg.com/vi/OAoCxMifgd8/sddefault.jpg",
  • Network accessline 35
    },         "maxres": {           "url": "https://i.ytimg.com/vi/OAoCxMifgd8/maxresdefault.jpg",
  • Network accessline 36
    "maxres": {           "url": "https://i.ytimg.com/vi/OAoCxMifgd8/maxresdefault.jpg",           "width": 1280,
  • Network accessline 37
    "url": "https://i.ytimg.com/vi/OAoCxMifgd8/maxresdefault.jpg",
  • Network accessline 51
    "comment_count": 0       },       "url": "https://www.youtube.com/watch?v=OAoCxMifgd8"
  • Network accessline 52
    },       "url": "https://www.youtube.com/watch?v=OAoCxMifgd8"     },
  • Network accessline 53
    "url": "https://www.youtube.com/watch?v=OAoCxMifgd8"
  • Network accessline 60
    "channel_id": "UCsT0YIqwnpJCM-mx7-gSA4Q",       "published_at": "2021-11-08T18:26:59Z",       "description": "Textile production is one of the most polluting industries, producing 1.2 billion tonnes of CO2, which is more emissions than inte
  • Network accessline 61
    "published_at": "2021-11-08T18:26:59Z",       "description": "Textile production is one of the most polluting industries, producing 1.2 billion tonnes of CO2, which is more emissions than international flights and maritime shipping. Over 60
  • Network accessline 62
    "description": "Textile production is one of the most polluting industries, producing 1.2 billion tonnes of CO2, which is more emissions than international flights and maritime shipping. Over 60% of textiles are used in the clothing industr
  • Network accessline 63
    "thumbnails": {         "default": {           "url": "https://i.ytimg.com/vi/bOhwpv-C_zY/default.jpg",
  • Network accessline 64
    "default": {           "url": "https://i.ytimg.com/vi/bOhwpv-C_zY/default.jpg",           "width": 120,
  • Network accessline 65
    "url": "https://i.ytimg.com/vi/bOhwpv-C_zY/default.jpg",
  • Network accessline 68
    },         "medium": {           "url": "https://i.ytimg.com/vi/bOhwpv-C_zY/mqdefault.jpg",
  • Network accessline 69
    "medium": {           "url": "https://i.ytimg.com/vi/bOhwpv-C_zY/mqdefault.jpg",           "width": 320,
  • Network accessline 70
    "url": "https://i.ytimg.com/vi/bOhwpv-C_zY/mqdefault.jpg",
  • Network accessline 73
    },         "high": {           "url": "https://i.ytimg.com/vi/bOhwpv-C_zY/hqdefault.jpg",
  • Network accessline 74
    "high": {           "url": "https://i.ytimg.com/vi/bOhwpv-C_zY/hqdefault.jpg",           "width": 480,
  • Network accessline 75
    "url": "https://i.ytimg.com/vi/bOhwpv-C_zY/hqdefault.jpg",
  • Network accessline 78
    },         "standard": {           "url": "https://i.ytimg.com/vi/bOhwpv-C_zY/sddefault.jpg",
  • Network accessline 79
    "standard": {           "url": "https://i.ytimg.com/vi/bOhwpv-C_zY/sddefault.jpg",           "width": 640,
  • Network accessline 80
    "url": "https://i.ytimg.com/vi/bOhwpv-C_zY/sddefault.jpg",
  • Network accessline 83
    },         "maxres": {           "url": "https://i.ytimg.com/vi/bOhwpv-C_zY/maxresdefault.jpg",
  • Network accessline 84
    "maxres": {           "url": "https://i.ytimg.com/vi/bOhwpv-C_zY/maxresdefault.jpg",           "width": 1280,
  • Network accessline 85
    "url": "https://i.ytimg.com/vi/bOhwpv-C_zY/maxresdefault.jpg",
  • Network accessline 108
    "comment_count": 1       },       "url": "https://www.youtube.com/watch?v=bOhwpv-C_zY"
  • Network accessline 109
    },       "url": "https://www.youtube.com/watch?v=bOhwpv-C_zY"     },
  • Network accessline 110
    "url": "https://www.youtube.com/watch?v=bOhwpv-C_zY"
  • Network accessline 117
    "channel_id": "UCm4TA3kTGh-3p5Kp1eraSZQ",       "published_at": "2021-08-11T17:54:28Z",       "description": "it's been a while since the last update video so I'm stoked to be able to share with you the pre-production sample I received! If 
  • Network accessline 118
    "published_at": "2021-08-11T17:54:28Z",       "description": "it's been a while since the last update video so I'm stoked to be able to share with you the pre-production sample I received! If you haven't already, be sure to sign up for the 
  • Network accessline 119
    "description": "it's been a while since the last update video so I'm stoked to be able to share with you the pre-production sample I received! If you haven't already, be sure to sign up for the mailing list 👉🏼http://www.lessshiddy.com\n\n\n
  • Network accessline 120
    "thumbnails": {         "default": {           "url": "https://i.ytimg.com/vi/yjKQpLmTtNs/default.jpg",
  • Network accessline 121
    "default": {           "url": "https://i.ytimg.com/vi/yjKQpLmTtNs/default.jpg",           "width": 120,
  • Network accessline 122
    "url": "https://i.ytimg.com/vi/yjKQpLmTtNs/default.jpg",
  • Network accessline 125
    },         "medium": {           "url": "https://i.ytimg.com/vi/yjKQpLmTtNs/mqdefault.jpg",
  • Network accessline 126
    "medium": {           "url": "https://i.ytimg.com/vi/yjKQpLmTtNs/mqdefault.jpg",           "width": 320,
  • Network accessline 127
    "url": "https://i.ytimg.com/vi/yjKQpLmTtNs/mqdefault.jpg",
  • Network accessline 130
    },         "high": {           "url": "https://i.ytimg.com/vi/yjKQpLmTtNs/hqdefault.jpg",
  • Network accessline 131
    "high": {           "url": "https://i.ytimg.com/vi/yjKQpLmTtNs/hqdefault.jpg",           "width": 480,
  • Network accessline 132
    "url": "https://i.ytimg.com/vi/yjKQpLmTtNs/hqdefault.jpg",
  • Network accessline 135
    },         "standard": {           "url": "https://i.ytimg.com/vi/yjKQpLmTtNs/sddefault.jpg",
  • Network accessline 136
    "standard": {           "url": "https://i.ytimg.com/vi/yjKQpLmTtNs/sddefault.jpg",           "width": 640,
  • Network accessline 137
    "url": "https://i.ytimg.com/vi/yjKQpLmTtNs/sddefault.jpg",
  • Network accessline 140
    },         "maxres": {           "url": "https://i.ytimg.com/vi/yjKQpLmTtNs/maxresdefault.jpg",
  • Network accessline 141
    "maxres": {           "url": "https://i.ytimg.com/vi/yjKQpLmTtNs/maxresdefault.jpg",           "width": 1280,
  • Network accessline 142
    "url": "https://i.ytimg.com/vi/yjKQpLmTtNs/maxresdefault.jpg",
  • Network accessline 156
    "comment_count": 175       },       "url": "https://www.youtube.com/watch?v=yjKQpLmTtNs"
  • Network accessline 157
    },       "url": "https://www.youtube.com/watch?v=yjKQpLmTtNs"     }
  • Network accessline 158
    "url": "https://www.youtube.com/watch?v=yjKQpLmTtNs"

scripts/channels/youtube/output-analysis.md

  • Network accessline 33
    官方来源(资料整理日期:2026-10-25):[search.list 参数与分页](https://developers.google.com/youtube/v3/docs/search/list)、[commentThreads.list 参数](https://developers.google.com/youtube/v3/docs/commentThreads/list)。

scripts/channels/youtube/youtube_search.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 34
    [Credential-related source omitted]
  • Access to secretsline 35
    [Credential-related source omitted]
  • Access to secretsline 97
    [Credential-related source omitted]
  • Access to secretsline 108
    [Credential-related source omitted]
  • Network accessline 118
    url = "https://www.googleapis.com/youtube/v3/search"
  • Access to secretsline 120
    [Credential-related source omitted]
  • Access to secretsline 140
    [Credential-related source omitted]
  • Access to secretsline 149
    [Credential-related source omitted]
  • Network accessline 160
    url = "https://www.googleapis.com/youtube/v3/videos"
  • Access to secretsline 162
    [Credential-related source omitted]
  • Network accessline 194
    "comment_count": int(statistics.get("commentCount", 0)),             },             "url": f"https://www.youtube.com/watch?v={video_id}",
  • Network accessline 195
    },             "url": f"https://www.youtube.com/watch?v={video_id}",         }
  • Network accessline 196
    "url": f"https://www.youtube.com/watch?v={video_id}",
  • Access to secretsline 201
    [Credential-related source omitted]
  • Access to secretsline 211
    [Credential-related source omitted]
  • Access to secretsline 219
    [Credential-related source omitted]
  • Network accessline 226
    url = "https://www.googleapis.com/youtube/v3/commentThreads"
  • Access to secretsline 228
    [Credential-related source omitted]
  • Access to secretsline 409
    [Credential-related source omitted]
  • Access to secretsline 420
    [Credential-related source omitted]
  • Access to secretsline 421
    [Credential-related source omitted]
  • Access to secretsline 423
    [Credential-related source omitted]
  • Access to secretsline 424
    [Credential-related source omitted]
  • Access to secretsline 435
    [Credential-related source omitted]
  • Access to secretsline 448
    [Credential-related source omitted]

scripts/channels/yuanbao/README.md

  • Network accessline 18
    [Credential-related source omitted]
  • Access to secretsline 18
    [Credential-related source omitted]
  • Network accessline 19
    # 默认 https://api.wsa.cloud.tencent.com/SearchPro
  • Network accessline 56
    | `--deeplinks` | 返回子链接(旗舰版) | False | | `--api-key` | API Key(优先于环境变量) | - | | `--endpoint` | 接口地址 | https://api.wsa.cloud.tencent.com/SearchPro |
  • Network accessline 57
    | `--api-key` | API Key(优先于环境变量) | - | | `--endpoint` | 接口地址 | https://api.wsa.cloud.tencent.com/SearchPro | | `--timeout` | 请求超时秒数 | 30 |
  • Network accessline 58
    | `--endpoint` | 接口地址 | https://api.wsa.cloud.tencent.com/SearchPro |
  • Network accessline 81
    - [SearchPro 接口文档](https://cloud.tencent.com/document/api/1806/121811)
  • Network accessline 82
    - [服务 API KEY 方式](https://cloud.tencent.com/document/product/1806/130615)

scripts/channels/yuanbao/examples/search-result.json

  • Network accessline 7
    {       "title": "一块布,如何“织”出新潮流?",       "href": "https://www.ce.cn/xwzx/gnsz/gdxw/202603/t20260317_2833561.shtml",
  • Network accessline 8
    "title": "一块布,如何“织”出新潮流?",       "href": "https://www.ce.cn/xwzx/gnsz/gdxw/202603/t20260317_2833561.shtml",       "body": "一块布,如何“织”出新潮流? 中国经济网。该公司副总经理赵晓勤说。 此外,绿色循环也成为纺织行业重要发展方向。盛虹控股集团创新打造“二氧化碳捕集利用—绿色乙二醇—低碳环保聚酯纤维”低碳循环绿色产业链;上海德福伦新材料科技有限公司采用生
  • Network accessline 9
    "href": "https://www.ce.cn/xwzx/gnsz/gdxw/202603/t20260317_2833561.shtml",
  • Network accessline 15
    "score": 0.772,       "authority_level": null,       "favicon": "https://cdn-yb.icon.qq.com/zuowei_dir/www_ce_cn.ico",
  • Network accessline 16
    "authority_level": null,       "favicon": "https://cdn-yb.icon.qq.com/zuowei_dir/www_ce_cn.ico",       "images": [],
  • Network accessline 17
    "favicon": "https://cdn-yb.icon.qq.com/zuowei_dir/www_ce_cn.ico",
  • Network accessline 21
    {       "title": "पतर सचन करयलय",       "href": "https://pib.gov.in/PressNoteDetails.aspx?NoteId=159187&ModuleId=3",
  • Network accessline 22
    "title": "पतर सचन करयलय",       "href": "https://pib.gov.in/PressNoteDetails.aspx?NoteId=159187&ModuleId=3",       "body": "पत्र सूचना कार्यालय Press Information Bureau。भारत सरकार पत्र सूचना कार्यालय Economy Weaving Sustainability into Indi
  • Network accessline 23
    "href": "https://pib.gov.in/PressNoteDetails.aspx?NoteId=159187&ModuleId=3",
  • Network accessline 29
    "score": 0.777,       "authority_level": null,       "favicon": "https://cdn-yb.icon.qq.com/zuowei_dir/pib_gov_in.ico",
  • Network accessline 30
    "authority_level": null,       "favicon": "https://cdn-yb.icon.qq.com/zuowei_dir/pib_gov_in.ico",       "images": [],
  • Network accessline 31
    "favicon": "https://cdn-yb.icon.qq.com/zuowei_dir/pib_gov_in.ico",
  • Network accessline 35
    {       "title": "Sustainable Textile Industry",       "href": "https://www.sustainability-directory.com/area/sustainable-textile-industry/",
  • Network accessline 36
    "title": "Sustainable Textile Industry",       "href": "https://www.sustainability-directory.com/area/sustainable-textile-industry/",       "body": "Sustainable Textile Industry。Sense → A sustainable textile industry is a global sector for 
  • Network accessline 37
    "href": "https://www.sustainability-directory.com/area/sustainable-textile-industry/",
  • Network accessline 43
    "score": 0.791,       "authority_level": null,       "favicon": "https://cdn-yb.icon.qq.com/zuowei_dir/www_sustainability-directory_com.ico",
  • Network accessline 44
    "authority_level": null,       "favicon": "https://cdn-yb.icon.qq.com/zuowei_dir/www_sustainability-directory_com.ico",       "images": [],
  • Network accessline 45
    "favicon": "https://cdn-yb.icon.qq.com/zuowei_dir/www_sustainability-directory_com.ico",

scripts/channels/yuanbao/output-analysis.md

  • Network accessline 39
    核查日期:2026-10-25。官方来源:[SearchPro](https://cloud.tencent.com/document/api/1806/121811)。

scripts/channels/yuanbao/yuanbao_search.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 10
    [Credential-related source omitted]
  • Network accessline 12
    DEFAULT_ENDPOINT = "https://api.wsa.cloud.tencent.com/SearchPro"
  • Network accessline 27
    """腾讯元宝搜索(腾讯云联网搜索 Web Search API),接口文档 https://cloud.tencent.com/document/api/1806/121811"""
  • Access to secretsline 31
    [Credential-related source omitted]
  • Access to secretsline 33
    [Credential-related source omitted]
  • Access to secretsline 34
    [Credential-related source omitted]
  • Access to secretsline 35
    [Credential-related source omitted]
  • Network accessline 38
    [Credential-related source omitted]
  • Access to secretsline 38
    [Credential-related source omitted]
  • Network accessline 39
    self.session = requests.Session()
  • Access to secretsline 41
    [Credential-related source omitted]
  • Access to secretsline 144
    [Credential-related source omitted]
  • Access to secretsline 147
    [Credential-related source omitted]
  • Network accessline 159
    parser.add_argument("--deeplinks", action="store_true", help="返回子链接(旗舰版)")     parser.add_argument("--api-key", help="服务 API Key")     parser.add_argument("--endpoint", help="接口地址,默认 https://api.wsa.cloud.tencent.com/SearchPro")
  • Network accessline 160
    parser.add_argument("--api-key", help="服务 API Key")     parser.add_argument("--endpoint", help="接口地址,默认 https://api.wsa.cloud.tencent.com/SearchPro")     parser.add_argument("--timeout", type=int, default=30, help="请求超时秒数")
  • Network accessline 161
    parser.add_argument("--endpoint", help="接口地址,默认 https://api.wsa.cloud.tencent.com/SearchPro")
  • Access to secretsline 167
    [Credential-related source omitted]

scripts/channels/zhihu_official/README.md

  • Network accessline 17
    [Credential-related source omitted]
  • Network accessline 18
    # 默认 https://developer.zhihu.com
  • Network accessline 22
    Access Secret 在 [知乎开放平台](https://developer.zhihu.com) 控制台创建应用后获取。
  • Network accessline 73
    - [知乎开放平台文档](https://developer.zhihu.com/docs)

scripts/channels/zhihu_official/examples/search-result.json

  • Network accessline 7
    {       "title": "对于纺织和时装行业的可持续发展,你有什么建议? - 知乎",       "href": "https://www.zhihu.com/question/396090327/answer/3295605545?utm_medium=openapi_platform&utm_source=cf621feb3f2d",
  • Network accessline 8
    "title": "对于纺织和时装行业的可持续发展,你有什么建议? - 知乎",       "href": "https://www.zhihu.com/question/396090327/answer/3295605545?utm_medium=openapi_platform&utm_source=cf621feb3f2d",       "body": "时装领域的可持续发展,是个大问题。在今天的一键购买、随后在垃圾填埋场处理的文化中,快速时尚带来的破坏性影响,是不
  • Network accessline 9
    "href": "https://www.zhihu.com/question/396090327/answer/3295605545?utm_medium=openapi_platform&utm_source=cf621feb3f2d",
  • Network accessline 17
    {       "title": "27春夏功能纺织趋势:轻量化下的可持续 + 黑科技 - 知乎",       "href": "https://zhuanlan.zhihu.com/p/1987492142852093802?utm_medium=openapi_platform&utm_source=cf621feb3f2d",
  • Network accessline 18
    "title": "27春夏功能纺织趋势:轻量化下的可持续 + 黑科技 - 知乎",       "href": "https://zhuanlan.zhihu.com/p/1987492142852093802?utm_medium=openapi_platform&utm_source=cf621feb3f2d",       "body": "2026 FUNCTIONAL TEXTILES SHANGHAI\n功能科技 塑造未来\n2026年3月5日-6日\nINSP
  • Network accessline 19
    "href": "https://zhuanlan.zhihu.com/p/1987492142852093802?utm_medium=openapi_platform&utm_source=cf621feb3f2d",
  • Network accessline 27
    {       "title": "福恩股份上市,为全球消费者带来环保织物多元化的体验 - 知乎",       "href": "https://zhuanlan.zhihu.com/p/2029859575847965386?utm_medium=openapi_platform&utm_source=cf621feb3f2d",
  • Network accessline 28
    "title": "福恩股份上市,为全球消费者带来环保织物多元化的体验 - 知乎",       "href": "https://zhuanlan.zhihu.com/p/2029859575847965386?utm_medium=openapi_platform&utm_source=cf621feb3f2d",       "body": "杭州福恩股份有限公司(简称:福恩股份)是一家以可持续发展为核心的全球生态环保面料供应商,现已成为集面料设计、研发、纺纱、织造、印
  • Network accessline 29
    "href": "https://zhuanlan.zhihu.com/p/2029859575847965386?utm_medium=openapi_platform&utm_source=cf621feb3f2d",

scripts/channels/zhihu_official/output-analysis.md

  • Network accessline 20
    | 统一 `--limit` | 每渠道输出上限 | 未指定或 `0` 解析为 `None`,搜索仍请求 10 | 正整数传给 max-results,再受对应 scope 的夹取限制,返回后另有本地截断;统一渠道不调用 hot/ask | | `--timeout` | 单次 HTTP 请求超时 | 搜索/热榜为 `10` 秒,ask 为 `60` 秒 | CLI 接受整数;实际网络库验证有效值 | | `--base-url` | 开放平台地址 | 已有配置或 `http
  • Network accessline 21
    | `--timeout` | 单次 HTTP 请求超时 | 搜索/热榜为 `10` 秒,ask 为 `60` 秒 | CLI 接受整数;实际网络库验证有效值 | | `--base-url` | 开放平台地址 | 已有配置或 `https://developer.zhihu.com` | 去除末尾斜线;接口路径保持不变 | | `--access-secret` | 开放平台认证 | 使用已有 `ZHIHU_ACCESS_SECRET` | 缺少时直接失败;访问权限由账号决
  • Network accessline 22
    | `--base-url` | 开放平台地址 | 已有配置或 `https://developer.zhihu.com` | 去除末尾斜线;接口路径保持不变 |
  • Network accessline 31
    官方来源(资料整理日期:2026-10-25):[知乎开放平台文档](https://developer.zhihu.com/docs)。对应实现路径为 `/api/v1/content/zhihu_search`、`/api/v1/content/global_search`、`/api/v1/content/hot_list`;官方参数正文此次不可读取,默认值与上限的官方证据均待确认。

scripts/channels/zhihu_official/zhihu_official_search.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 10
    [Credential-related source omitted]
  • Network accessline 12
    DEFAULT_BASE_URL = "https://developer.zhihu.com"
  • Network accessline 23
    """知乎开放平台客户端,接口文档 https://developer.zhihu.com/docs"""
  • Access to secretsline 27
    [Credential-related source omitted]
  • Access to secretsline 30
    [Credential-related source omitted]
  • Network accessline 34
    [Credential-related source omitted]
  • Access to secretsline 34
    [Credential-related source omitted]
  • Network accessline 35
    self.session = requests.Session()
  • Network accessline 185
    sub.add_argument("-m", "--max-results", type=int, default=None, help="结果数量,站内最多 10,全网最多 20")         sub.add_argument("--access-secret", help="知乎 Access Secret")         sub.add_argument("--base-url", help="接口地址,默认 https://developer.zhihu.c
  • Network accessline 186
    sub.add_argument("--access-secret", help="知乎 Access Secret")         sub.add_argument("--base-url", help="接口地址,默认 https://developer.zhihu.com")         sub.add_argument("--timeout", type=int, default=10, help="请求超时秒数")
  • Network accessline 187
    sub.add_argument("--base-url", help="接口地址,默认 https://developer.zhihu.com")

scripts/channels/zhipu/README.md

  • Access to secretsline 17
    [Credential-related source omitted]
  • Network accessline 18
    # 默认 search_std,可选 search_pro、search_pro_sogou、search_pro_quark ZHIPU_SEARCH_ENGINE=search_std # 默认 https://open.bigmodel.cn/api/paas/v4/web_search
  • Network accessline 19
    ZHIPU_SEARCH_ENGINE=search_std # 默认 https://open.bigmodel.cn/api/paas/v4/web_search ZHIPU_WEB_SEARCH_ENDPOINT=
  • Network accessline 20
    # 默认 https://open.bigmodel.cn/api/paas/v4/web_search
  • Network accessline 24
    API Key 在 [智谱开放平台](https://bigmodel.cn/apikey/platform) 创建。
  • Network accessline 49
    | `--search-intent` | 开启意图识别 | 关闭 | | `--api-key` | API Key(优先于环境变量) | - | | `--endpoint` | 接口地址 | https://open.bigmodel.cn/api/paas/v4/web_search |
  • Network accessline 50
    | `--api-key` | API Key(优先于环境变量) | - | | `--endpoint` | 接口地址 | https://open.bigmodel.cn/api/paas/v4/web_search | | `--timeout` | 请求超时秒数 | 30 |
  • Network accessline 51
    | `--endpoint` | 接口地址 | https://open.bigmodel.cn/api/paas/v4/web_search |
  • Network accessline 74
    - [联网搜索指南](https://docs.bigmodel.cn/cn/guide/tools/web-search)
  • Network accessline 75
    - [网络搜索 API](https://docs.bigmodel.cn/api-reference/工具-api/网络搜索)

scripts/channels/zhipu/examples/search-result.json

  • Network accessline 7
    {       "title": "SCI特刊征稿:纺织服装业的可持续发展转型",       "href": "http://mp.weixin.qq.com/s?__biz=MzU5NDgyNjYxMw==&mid=2247495596&idx=1&sn=fbf52ace373dd3771d25e735168b19f1",
  • Network accessline 8
    "title": "SCI特刊征稿:纺织服装业的可持续发展转型",       "href": "http://mp.weixin.qq.com/s?__biz=MzU5NDgyNjYxMw==&mid=2247495596&idx=1&sn=fbf52ace373dd3771d25e735168b19f1",       "body": "Journal of Cleaner Production11.07215.8ENGINEERING, ENVIRONMENTAL, Q
  • Network accessline 9
    "href": "http://mp.weixin.qq.com/s?__biz=MzU5NDgyNjYxMw==&mid=2247495596&idx=1&sn=fbf52ace373dd3771d25e735168b19f1",
  • Network accessline 10
    "body": "Journal of Cleaner Production11.07215.8ENGINEERING, ENVIRONMENTAL, Q1, 9/54ENVIRONMENTAL SCIENCE, Q1, 24/279GREEN & SUSTAINABLE SCIENCE & TECHNOLOGY, Q1, 5/47大类及分区环境科学与生态学1区top小类及分区ENVIRONMENTAL SCIENCE环境科学1区ENGINEERING, ENVIRONMEN
  • Network accessline 18
    {       "title": "可持续引领纺织服装行业绿色复苏持续向上",       "href": "http://baby.ifeng.com/c/7yJJMdCuUzZ",
  • Network accessline 19
    "title": "可持续引领纺织服装行业绿色复苏持续向上",       "href": "http://baby.ifeng.com/c/7yJJMdCuUzZ",       "body": "7月15日-17日,2020大湾区国际纺织面料及辅料博览会在深圳成功举办。由中国纺织工业联合会社会责任办公室主办,中国国际贸易促进委员会纺织行业分会、中国纺织信息中心支持的可持续发展专区”以及2020中国可持续时尚周深圳季”首次亮相粤港澳大湾区(深圳国际会展中心14号馆C45)。
  • Network accessline 20
    "href": "http://baby.ifeng.com/c/7yJJMdCuUzZ",
  • Network accessline 29
    {       "title": "科德宝与拉蒂携手 通过重复利用丝绸生产高性能隔热填充物",       "href": "https://baijiahao.baidu.com/s?id=1688364412293106062",
  • Network accessline 30
    "title": "科德宝与拉蒂携手 通过重复利用丝绸生产高性能隔热填充物",       "href": "https://baijiahao.baidu.com/s?id=1688364412293106062",       "body": "Freudenberg Performance Materials and Italian fashion textile company, Ratti, have been working on sustainability p
  • Network accessline 31
    "href": "https://baijiahao.baidu.com/s?id=1688364412293106062",

scripts/channels/zhipu/output-analysis.md

  • Network accessline 38
    核查日期:2026-10-25。官方来源:[网络搜索 API](https://docs.bigmodel.cn/api-reference/工具-api/网络搜索)。

scripts/channels/zhipu/zhipu_search.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 9
    [Credential-related source omitted]
  • Network accessline 11
    DEFAULT_ENDPOINT = "https://open.bigmodel.cn/api/paas/v4/web_search"
  • Network accessline 21
    """智谱网络搜索客户端,接口文档 https://docs.bigmodel.cn/api-reference/工具-api/网络搜索"""
  • Access to secretsline 25
    [Credential-related source omitted]
  • Access to secretsline 27
    [Credential-related source omitted]
  • Access to secretsline 28
    [Credential-related source omitted]
  • Access to secretsline 29
    [Credential-related source omitted]
  • Access to secretsline 30
    [Credential-related source omitted]
  • Access to secretsline 31
    [Credential-related source omitted]
  • Access to secretsline 32
    [Credential-related source omitted]
  • Network accessline 34
    [Credential-related source omitted]
  • Access to secretsline 34
    [Credential-related source omitted]
  • Network accessline 35
    self.session = requests.Session()
  • Access to secretsline 37
    [Credential-related source omitted]
  • Access to secretsline 58
    [Credential-related source omitted]
  • Access to secretsline 143
    [Credential-related source omitted]
  • Access to secretsline 146
    [Credential-related source omitted]
  • Access to secretsline 166
    [Credential-related source omitted]

scripts/cli/README.md

  • Access to secretsline 31
    [Credential-related source omitted]
  • Network accessline 37
    python union_search_cli.py search "AI agent" --platforms youtube --limit 3 -o ./out/search.json --pretty python union_search_cli.py image "cat" --platforms pixabay --limit 5 --output-dir ./search_output/images --pretty python union_search_c
  • Network accessline 38
    python union_search_cli.py image "cat" --platforms pixabay --limit 5 --output-dir ./search_output/images --pretty python union_search_cli.py download "https://www.youtube.com/watch?v=dQw4w9WgXcQ" --max-height 1080 --output-dir ./downloads -
  • Network accessline 39
    python union_search_cli.py download "https://www.youtube.com/watch?v=dQw4w9WgXcQ" --max-height 1080 --output-dir ./downloads --pretty
  • Network accessline 40
    python union_search_cli.py download "https://youtu.be/Zh9IscszDQg" --cookies-file C:/path/cookies.txt --restrict-filenames --continue-download --pretty
  • Access to secretsline 74
    [Credential-related source omitted]
  • Access to secretsline 75
    [Credential-related source omitted]
  • Access to secretsline 76
    [Credential-related source omitted]
  • Network accessline 117
    python union_search_cli.py defuddle https://example.com --json --pretty
  • Network accessline 118
    python union_search_cli.py defuddle --url https://example.com --format markdown -o ./out/article.md
  • Access to secretsline 133
    [Credential-related source omitted]

scripts/cli/__init__.py

  • Executable scriptline 1
    Executable file

scripts/cli/adapters.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 213
    try:         client = DefuddleEngine(timeout=timeout)         result = client.fetch(
  • Network accessline 214
    client = DefuddleEngine(timeout=timeout)         result = client.fetch(             url=url,
  • Network accessline 215
    result = client.fetch(
  • Access to secretsline 241
    [Credential-related source omitted]
  • Access to secretsline 289
    [Credential-related source omitted]

scripts/cli/errors.py

  • Executable scriptline 1
    #!/usr/bin/env python3

scripts/cli/main.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 67
    "  python scripts/cli/main.py bsearch \"AI Agent\" --limit 5 --pretty\n"             "  python scripts/cli/main.py image \"cats\" --platforms baidu bing --limit 20 --output-dir ./image_downloads\n"             "  python scripts/cli/main.py 
  • Network accessline 68
    "  python scripts/cli/main.py image \"cats\" --platforms baidu bing --limit 20 --output-dir ./image_downloads\n"             "  python scripts/cli/main.py download \"https://www.youtube.com/watch?v=dQw4w9WgXcQ\" --output-dir ./downloads\n" 
  • Network accessline 69
    "  python scripts/cli/main.py download \"https://www.youtube.com/watch?v=dQw4w9WgXcQ\" --output-dir ./downloads\n"
  • Access to secretsline 81
    [Credential-related source omitted]
  • Access to secretsline 88
    [Credential-related source omitted]
  • Access to secretsline 100
    [Credential-related source omitted]
  • Access to secretsline 114
    [Credential-related source omitted]
  • Access to secretsline 131
    [Credential-related source omitted]
  • Access to secretsline 141
    [Credential-related source omitted]
  • Access to secretsline 160
    [Credential-related source omitted]
  • Access to secretsline 203
    [Credential-related source omitted]
  • Network accessline 388
    raise CliUsageError(             "Provide at least one URL or use --from-file",             details={"example": 'union-search download "https://example.com/video" --output-dir ./downloads'},
  • Network accessline 389
    "Provide at least one URL or use --from-file",             details={"example": 'union-search download "https://example.com/video" --output-dir ./downloads'},         )
  • Network accessline 390
    details={"example": 'union-search download "https://example.com/video" --output-dir ./downloads'},
  • Access to secretsline 405
    [Credential-related source omitted]
  • Access to secretsline 643
    [Credential-related source omitted]
  • Access to secretsline 645
    [Credential-related source omitted]
  • Network accessline 723
    raise CliUsageError(             "URL is required for defuddle command. Use: defuddle <url> or defuddle --url <url>",             details={"example": "union-search defuddle https://example.com"},
  • Network accessline 724
    "URL is required for defuddle command. Use: defuddle <url> or defuddle --url <url>",             details={"example": "union-search defuddle https://example.com"},         )
  • Network accessline 725
    details={"example": "union-search defuddle https://example.com"},
  • Network accessline 729
    try:         client = DefuddleEngine(timeout=args.timeout)         result = client.fetch(
  • Network accessline 730
    client = DefuddleEngine(timeout=args.timeout)         result = client.fetch(             url=url,
  • Network accessline 731
    result = client.fetch(
  • Access to secretsline 796
    [Credential-related source omitted]

scripts/cli/output.py

  • Executable scriptline 1
    #!/usr/bin/env python3

scripts/cli/registry.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 26
    [Credential-related source omitted]
  • Access to secretsline 91
    [Credential-related source omitted]
  • Access to secretsline 93
    [Credential-related source omitted]

scripts/cli/validators.py

  • Executable scriptline 1
    #!/usr/bin/env python3

scripts/downloader/__init__.py

  • Executable scriptline 1
    Executable file

scripts/downloader/yt_dlp_downloader.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 30
    [Credential-related source omitted]
  • Access to secretsline 31
    [Credential-related source omitted]
  • Network accessline 42
    video_id = item.get("video_id")         if video_id:             return f"https://www.youtube.com/watch?v={video_id}"
  • Network accessline 44
    return f"https://www.youtube.com/watch?v={video_id}"
  • Network accessline 47
    bvid = item.get("bvid")         if bvid:             return f"https://www.bilibili.com/video/{bvid}"
  • Network accessline 49
    return f"https://www.bilibili.com/video/{bvid}"
  • Network accessline 56
    )         if aweme_id:             return f"https://www.douyin.com/video/{aweme_id}"
  • Network accessline 58
    return f"https://www.douyin.com/video/{aweme_id}"
  • Access to secretsline 229
    [Credential-related source omitted]
  • Access to secretsline 251
    [Credential-related source omitted]
  • Access to secretsline 252
    [Credential-related source omitted]
  • Access to secretsline 313
    [Credential-related source omitted]
  • Access to secretsline 338
    [Credential-related source omitted]

scripts/evals/README.md

  • Network accessline 30
    | GitHub 单渠道搜索 | 返回两条真实结果,`ok=true` | | GitHub 与 Wikipedia 联合搜索 | 两个渠道分别返回两条结果,`ok=true` | | Defuddle 提取 `https://example.com` | 返回 `Example Domain` 标题及正文,`ok=true` |
  • Network accessline 31
    | GitHub 与 Wikipedia 联合搜索 | 两个渠道分别返回两条结果,`ok=true` | | Defuddle 提取 `https://example.com` | 返回 `Example Domain` 标题及正文,`ok=true` | | Bing 图片搜索与下载 | 实际保存一张 JPEG,3,512,465 字节,`ok=true` |
  • Network accessline 32
    | Defuddle 提取 `https://example.com` | 返回 `Example Domain` 标题及正文,`ok=true` |
  • Network accessline 39
    正文提取的 JSON 调用成功;随后两次 `defuddle https://example.com --format markdown` 调用遇到 TLS 连接中断,返回退出码 `4` 和 `PLATFORM_FAILURE`,写出的 Markdown 是错误报告。Markdown 参数已经通过真实帮助和输出渲染代码核对,本次没有取得该格式的成功远程结果。

scripts/tests/test_ai_native_json.py

  • Executable scriptline 1
    Executable file
  • Network accessline 16
    def test_grok_concatenated_draft_and_final(self):         draft = {"results": [{"title": "draft", "url": "", "snippet": "searching"}]}         final = {"results": [{"title": "SQLite", "url": "https://sqlite.org/wal.html", "snippet": "WAL"}]
  • Network accessline 17
    draft = {"results": [{"title": "draft", "url": "", "snippet": "searching"}]}         final = {"results": [{"title": "SQLite", "url": "https://sqlite.org/wal.html", "snippet": "WAL"}]}         raw = json.dumps({"structuredOutput": None, "tex
  • Network accessline 18
    final = {"results": [{"title": "SQLite", "url": "https://sqlite.org/wal.html", "snippet": "WAL"}]}
  • Network accessline 22
    def test_envelopes_fences_and_braces_in_strings(self):         page = {"title": "Example", "url": "https://example.com", "markdown": 'Literal {braces} and "quotes"'}
  • Network accessline 23
    page = {"title": "Example", "url": "https://example.com", "markdown": 'Literal {braces} and "quotes"'}

scripts/tests/test_ai_tools.py

  • Executable scriptline 1
    Executable file
  • Network accessline 30
    for platform, backend in adapter.BACKENDS.items():             module = Mock()             module.search.return_value = {"backend": backend, "results": [{"title": "SQLite", "url": "https://sqlite.org/wal.html", "snippet": "WAL"}]}
  • Network accessline 31
    module = Mock()             module.search.return_value = {"backend": backend, "results": [{"title": "SQLite", "url": "https://sqlite.org/wal.html", "snippet": "WAL"}]}             with patch.object(worker.importlib, "import_module", return_
  • Network accessline 32
    module.search.return_value = {"backend": backend, "results": [{"title": "SQLite", "url": "https://sqlite.org/wal.html", "snippet": "WAL"}]}
  • Network accessline 80
    [Credential-related source omitted]
  • Access to secretsline 80
    [Credential-related source omitted]
  • Network accessline 81
    self.assertNotIn(platform, engine.PLATFORM_GROUPS[group])             with patch.object(adapter, "search", return_value=[{"title": "native", "url": "https://example.com/native", "snippet": "body"}]) as run:                 _, result = engin
  • Network accessline 82
    with patch.object(adapter, "search", return_value=[{"title": "native", "url": "https://example.com/native", "snippet": "body"}]) as run:

scripts/tests/test_platform_groups.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 18
    [Credential-related source omitted]
  • Access to secretsline 24
    [Credential-related source omitted]
  • Access to secretsline 28
    [Credential-related source omitted]
  • Access to secretsline 32
    [Credential-related source omitted]
  • Access to secretsline 33
    [Credential-related source omitted]
  • Access to secretsline 35
    [Credential-related source omitted]
  • Access to secretsline 36
    [Credential-related source omitted]
  • Access to secretsline 40
    [Credential-related source omitted]
  • Access to secretsline 42
    [Credential-related source omitted]
  • Access to secretsline 56
    [Credential-related source omitted]
  • Access to secretsline 57
    [Credential-related source omitted]
  • Access to secretsline 73
    [Credential-related source omitted]
  • Access to secretsline 74
    [Credential-related source omitted]
  • Access to secretsline 78
    [Credential-related source omitted]
  • Access to secretsline 91
    [Credential-related source omitted]

scripts/tests/test_result_cleaning.py

  • Executable scriptline 1
    Executable file
  • Network accessline 18
    class ResultCleaningTest(unittest.TestCase):     def test_redirects_and_www_collapse_to_the_same_page(self):         target = "https://www.merriam-webster.com/dictionary/sustainable"
  • Network accessline 19
    [Credential-related source omitted]
  • Network accessline 20
    target = "https://www.merriam-webster.com/dictionary/sustainable"
  • Network accessline 21
    [Credential-related source omitted]
  • Network accessline 22
    bing = "https://www.bing.com/ck/a?!&&p=abc&u=%s&ntb=1" % token
  • Network accessline 23
    yahoo = "https://r.search.yahoo.com/_ylt=abc/RV=2/RE=3/RU=%s/RK=4/RS=def" % target
  • Network accessline 30
    self.assertEqual(removed, 2)         self.assertEqual(len(merged), 1)         self.assertEqual(merged[0]["url"], "https://merriam-webster.com/dictionary/sustainable")
  • Network accessline 31
    self.assertEqual(len(merged), 1)         self.assertEqual(merged[0]["url"], "https://merriam-webster.com/dictionary/sustainable")         self.assertEqual(merged[0]["title"], "SUSTAINABLE Definition")
  • Network accessline 32
    self.assertEqual(merged[0]["url"], "https://merriam-webster.com/dictionary/sustainable")
  • Network accessline 39
    "name": "apparel-data",             "full_name": "owner/apparel-data",             "url": "https://api.github.com/repos/owner/apparel-data",
  • Network accessline 40
    "full_name": "owner/apparel-data",             "url": "https://api.github.com/repos/owner/apparel-data",             "html_url": "https://github.com/owner/apparel-data",
  • Network accessline 41
    "url": "https://api.github.com/repos/owner/apparel-data",
  • Network accessline 42
    "html_url": "https://github.com/owner/apparel-data",
  • Network accessline 44
    }, "github", 1)         self.assertEqual(row["title"], "apparel-data")         self.assertEqual(row["url"], "https://github.com/owner/apparel-data")
  • Network accessline 45
    self.assertEqual(row["title"], "apparel-data")         self.assertEqual(row["url"], "https://github.com/owner/apparel-data")         self.assertEqual(row["content"], "apparel data")
  • Network accessline 46
    self.assertEqual(row["url"], "https://github.com/owner/apparel-data")
  • Network accessline 50
    row = cleaning.normalize_item({             "title": "Python Release Python 3.13.0",             "href": "https://www.python.org/downloads/release/python-3130/",
  • Network accessline 51
    "title": "Python Release Python 3.13.0",             "href": "https://www.python.org/downloads/release/python-3130/",             "body": "Release date: Oct. 7, 2024.",
  • Network accessline 52
    "href": "https://www.python.org/downloads/release/python-3130/",
  • Network accessline 53
    "body": "Release date: Oct. 7, 2024.",         }, "serper", 2)         self.assertEqual(row["url"], "https://python.org/downloads/release/python-3130")
  • Network accessline 54
    }, "serper", 2)         self.assertEqual(row["url"], "https://python.org/downloads/release/python-3130")         self.assertEqual(row["content"], "Release date: Oct. 7, 2024.")
  • Network accessline 55
    self.assertEqual(row["url"], "https://python.org/downloads/release/python-3130")
  • Network accessline 59
    def test_similar_titles_on_different_pages_stay_separate(self):         rows = [             item("baidu", "4步拆解2025服装爆款公式", "https://example.com/a", "short"),
  • Network accessline 60
    rows = [             item("baidu", "4步拆解2025服装爆款公式", "https://example.com/a", "short"),             item("brave", "4步拆解2025服装爆款公式→", "https://example.com/b", "longer content"),
  • Network accessline 61
    item("baidu", "4步拆解2025服装爆款公式", "https://example.com/a", "short"),
  • Network accessline 62
    item("brave", "4步拆解2025服装爆款公式→", "https://example.com/b", "longer content"),
  • Network accessline 63
    item("sogou", "服装店铺爆款复盘", "https://example.com/c"),
  • Network accessline 65
    merged, removed = cleaning.merge_items(rows)         self.assertEqual((len(merged), removed), (3, 0))         self.assertEqual(merged[0]["url"], "https://example.com/a")
  • Network accessline 66
    self.assertEqual((len(merged), removed), (3, 0))         self.assertEqual(merged[0]["url"], "https://example.com/a")         self.assertEqual(merged[0]["title"], "4步拆解2025服装爆款公式")
  • Network accessline 67
    self.assertEqual(merged[0]["url"], "https://example.com/a")

scripts/tests/test_unlimited_results.py

  • Executable scriptline 1
    Executable file
  • Network accessline 25
    def rows(count=37):     return [{"title": "Result %s" % i, "url": "https://example.com/%s" % i, "snippet": "source"} for i in range(count)]
  • Network accessline 26
    return [{"title": "Result %s" % i, "url": "https://example.com/%s" % i, "snippet": "source"} for i in range(count)]
  • Access to secretsline 74
    [Credential-related source omitted]
  • Access to secretsline 81
    [Credential-related source omitted]
  • Network accessline 105
    cli = importlib.util.module_from_spec(spec)         spec.loader.exec_module(cli)         for argv in [["search", "test"], ["platform", "codex", "test"], ["codex", "test"], ["download", "https://example.com/video"]]:
  • Network accessline 106
    spec.loader.exec_module(cli)         for argv in [["search", "test"], ["platform", "codex", "test"], ["codex", "test"], ["download", "https://example.com/video"]]:             with patch.object(sys, "argv", ["union_search_cli.py", *argv]):
  • Network accessline 107
    for argv in [["search", "test"], ["platform", "codex", "test"], ["codex", "test"], ["download", "https://example.com/video"]]:

scripts/union_image_search/README.md

  • Access to secretsline 13
    [Credential-related source omitted]
  • Access to secretsline 117
    [Credential-related source omitted]

scripts/union_image_search/multi_platform_image_search.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 76
    [Credential-related source omitted]

scripts/union_image_search/native_images.py

  • Executable scriptline 1
    Executable file

scripts/union_image_search/providers/catalogs.py

  • Executable scriptline 1
    Executable file
  • Network accessline 31
    def _pixabay(session, query, count, deadline):     response = request(session, 'GET', f'https://pixabay.com/images/search/{quote(query, safe="")}/',
  • Network accessline 32
    response = request(session, 'GET', f'https://pixabay.com/images/search/{quote(query, safe="")}/',                        timeout=deadline.remaining(), headers={'Accept': 'application/json',                        'x-fetch-bootstrap': '1', '
  • Network accessline 40
    download = item['sources'].get('downloadUrl')         records.append(_record('pixabay', item.get('name'),             urljoin('https://pixabay.com', download) if download else None,
  • Network accessline 41
    records.append(_record('pixabay', item.get('name'),             urljoin('https://pixabay.com', download) if download else None,             urljoin('https://pixabay.com', item['href']), item['sources'].get('1x'),
  • Network accessline 42
    urljoin('https://pixabay.com', download) if download else None,
  • Network accessline 43
    urljoin('https://pixabay.com', item['href']), item['sources'].get('1x'),
  • Network accessline 48
    def _pinterest(session, query, count, deadline):     options = {'options': {'query': query, 'bookmarks': ['']}, 'context': {}}     response = request(session, 'GET', 'https://www.pinterest.com/resource/BaseSearchResource/get/',
  • Network accessline 49
    options = {'options': {'query': query, 'bookmarks': ['']}, 'context': {}}     response = request(session, 'GET', 'https://www.pinterest.com/resource/BaseSearchResource/get/',                        timeout=deadline.remaining(), params={'dat
  • Network accessline 50
    response = request(session, 'GET', 'https://www.pinterest.com/resource/BaseSearchResource/get/',
  • Network accessline 61
    original = item['images'].get('orig') or {}         records.append(_record('pinterest', item.get('title'), original.get('url'),             f'https://www.pinterest.com/pin/{quote(str(item["id"]), safe="")}/',
  • Network accessline 62
    records.append(_record('pinterest', item.get('title'), original.get('url'),             f'https://www.pinterest.com/pin/{quote(str(item["id"]), safe="")}/',             item['images'].get('236x', {}).get('url'), original.get('width'), origi
  • Network accessline 63
    f'https://www.pinterest.com/pin/{quote(str(item["id"]), safe="")}/',
  • Network accessline 78
    def _fivehundredpx(session, query, count, deadline):     response = request(session, 'POST', 'https://api-neo.500px.com/graphql',
  • Network accessline 79
    response = request(session, 'POST', 'https://api-neo.500px.com/graphql',
  • Network accessline 84
    item = edge['node']         records.append(_record('500px', item.get('title'), item['urls'].get('size_4k'),             f'https://500px.com/photo/{item["id"]}', item['urls'].get('size_600'),
  • Network accessline 85
    records.append(_record('500px', item.get('title'), item['urls'].get('size_4k'),             f'https://500px.com/photo/{item["id"]}', item['urls'].get('size_600'),             author=(item.get('uploader') or {}).get('displayName'), image_var
  • Network accessline 86
    f'https://500px.com/photo/{item["id"]}', item['urls'].get('size_600'),
  • Network accessline 91
    _FLICKR_LICENSES = {     0: 'All Rights Reserved', 1: 'https://creativecommons.org/licenses/by-nc-sa/2.0/',
  • Network accessline 92
    0: 'All Rights Reserved', 1: 'https://creativecommons.org/licenses/by-nc-sa/2.0/',
  • Network accessline 93
    2: 'https://creativecommons.org/licenses/by-nc/2.0/',
  • Network accessline 94
    3: 'https://creativecommons.org/licenses/by-nc-nd/2.0/',
  • Network accessline 95
    4: 'https://creativecommons.org/licenses/by/2.0/',
  • Network accessline 96
    5: 'https://creativecommons.org/licenses/by-sa/2.0/',
  • Network accessline 97
    6: 'https://creativecommons.org/licenses/by-nd/2.0/',
  • Network accessline 98
    7: 'No known copyright restrictions', 8: 'United States Government Work',     9: 'https://creativecommons.org/publicdomain/zero/1.0/',     10: 'https://creativecommons.org/publicdomain/mark/1.0/',
  • Network accessline 99
    9: 'https://creativecommons.org/publicdomain/zero/1.0/',
  • Network accessline 100
    10: 'https://creativecommons.org/publicdomain/mark/1.0/',
  • Network accessline 116
    def _flickr(session, query, count, deadline):     response = request(session, 'GET', 'https://www.flickr.com/search/',
  • Network accessline 117
    response = request(session, 'GET', 'https://www.flickr.com/search/',
  • Network accessline 136
    preview = min(sizes.values(), key=lambda size: abs(size['width'] - 320))         records.append(_record('flickr', photo.get('title'), urljoin(response.url, image['url']),             f'https://www.flickr.com/photos/{quote(photo["ownerNsid"]
  • Network accessline 137
    records.append(_record('flickr', photo.get('title'), urljoin(response.url, image['url']),             f'https://www.flickr.com/photos/{quote(photo["ownerNsid"], safe="@")}/{photo["id"]}/',             urljoin(response.url, preview['url']), 
  • Network accessline 138
    f'https://www.flickr.com/photos/{quote(photo["ownerNsid"], safe="@")}/{photo["id"]}/',
  • Network accessline 151
    def _wikicommons(session, query, count, deadline):     response = request(session, 'GET', 'https://commons.wikimedia.org/w/api.php',
  • Network accessline 152
    response = request(session, 'GET', 'https://commons.wikimedia.org/w/api.php',

scripts/union_image_search/providers/search_engines.py

  • Executable scriptline 1
    Executable file
  • Network accessline 47
    def _baidu(session, query, count, deadline):     warmup = request(session, 'GET', 'https://image.baidu.com/', timeout=deadline.remaining())
  • Network accessline 48
    warmup = request(session, 'GET', 'https://image.baidu.com/', timeout=deadline.remaining())
  • Network accessline 49
    document(warmup)     response = request(         session, 'GET', 'https://image.baidu.com/search/acjson', timeout=deadline.remaining(),
  • Network accessline 50
    response = request(         session, 'GET', 'https://image.baidu.com/search/acjson', timeout=deadline.remaining(),         params={'word': query, 'rn': count, 'pn': 0, 'tn': 'resultjson_com'},
  • Network accessline 51
    session, 'GET', 'https://image.baidu.com/search/acjson', timeout=deadline.remaining(),
  • Network accessline 52
    params={'word': query, 'rn': count, 'pn': 0, 'tn': 'resultjson_com'},         headers={'Referer': 'https://image.baidu.com/'},     )
  • Network accessline 53
    headers={'Referer': 'https://image.baidu.com/'},
  • Network accessline 69
    def _bing(session, query, count, deadline):     response = request(         session, 'GET', 'https://www.bing.com/images/async', timeout=deadline.remaining(),
  • Network accessline 70
    response = request(         session, 'GET', 'https://www.bing.com/images/async', timeout=deadline.remaining(),         params={'q': query, 'mmasync': 1, 'first': 1, 'count': count},
  • Network accessline 71
    session, 'GET', 'https://www.bing.com/images/async', timeout=deadline.remaining(),
  • Network accessline 85
    def _sogou(session, query, count, deadline):     response = request(         session, 'GET', 'https://pic.sogou.com/pics', timeout=deadline.remaining(),
  • Network accessline 86
    response = request(         session, 'GET', 'https://pic.sogou.com/pics', timeout=deadline.remaining(),         params={'query': query, 'start': 0},
  • Network accessline 87
    session, 'GET', 'https://pic.sogou.com/pics', timeout=deadline.remaining(),
  • Network accessline 103
    def _quark(session, query, count, deadline):     response = request(         session, 'GET', 'https://vt.sm.cn/api/pic/list', timeout=deadline.remaining(),
  • Network accessline 104
    response = request(         session, 'GET', 'https://vt.sm.cn/api/pic/list', timeout=deadline.remaining(),         params={'query': query, 'limit': count, 'start': 0},
  • Network accessline 105
    session, 'GET', 'https://vt.sm.cn/api/pic/list', timeout=deadline.remaining(),

scripts/union_image_search/providers/specialty.py

  • Executable scriptline 1
    Executable file
  • Network accessline 31
    [Credential-related source omitted]
  • Network accessline 32
    [Credential-related source omitted]
  • Network accessline 33
    timeout=deadline.remaining())     public = _json(token)['public_csrf_token']     response = request(session, 'POST', 'https://www.artstation.com/api/v2/search/projects.json',
  • Network accessline 34
    [Credential-related source omitted]
  • Network accessline 35
    response = request(session, 'POST', 'https://www.artstation.com/api/v2/search/projects.json',
  • Network accessline 40
    for item in _json(response)['data']:         project = _json(request(session, 'GET',             f'https://www.artstation.com/projects/{quote(item["hash_id"], safe="")}.json',
  • Network accessline 41
    project = _json(request(session, 'GET',             f'https://www.artstation.com/projects/{quote(item["hash_id"], safe="")}.json',             timeout=deadline.remaining()))
  • Network accessline 42
    f'https://www.artstation.com/projects/{quote(item["hash_id"], safe="")}.json',
  • Network accessline 56
    def _findthatmeme(session, query, limit, deadline):     response = request(session, 'POST', 'https://findthatmeme.com/api/v1/search',
  • Network accessline 57
    response = request(session, 'POST', 'https://findthatmeme.com/api/v1/search',
  • Network accessline 70
    def _naver(session, query, limit, deadline):     response = request(session, 'GET', 'https://search.naver.com/search.naver',
  • Network accessline 71
    response = request(session, 'GET', 'https://search.naver.com/search.naver',

scripts/union_image_search/volcengine_adapter.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 17
    [Credential-related source omitted]
  • Access to secretsline 19
    [Credential-related source omitted]
  • Access to secretsline 20
    [Credential-related source omitted]
  • Access to secretsline 21
    [Credential-related source omitted]
  • Access to secretsline 23
    [Credential-related source omitted]
  • Access to secretsline 25
    [Credential-related source omitted]
  • Access to secretsline 26
    [Credential-related source omitted]
  • Access to secretsline 27
    [Credential-related source omitted]
  • Access to secretsline 38
    [Credential-related source omitted]
  • Network accessline 57
    [Credential-related source omitted]
  • Access to secretsline 58
    [Credential-related source omitted]
  • Network accessline 59
    self.base_url = "https://open.feedcoopapi.com/search_api/web_search"
  • Access to secretsline 72
    [Credential-related source omitted]
  • Access to secretsline 73
    [Credential-related source omitted]
  • Access to secretsline 78
    [Credential-related source omitted]
  • Network accessline 92
    try:             response = requests.post(
  • Network accessline 93
    response = requests.post(
  • Network accessline 147
    image_url = urls[0]             try:                 response = requests.get(image_url, timeout=30)
  • Network accessline 148
    try:                 response = requests.get(image_url, timeout=30)                 response.raise_for_status()
  • Network accessline 149
    response = requests.get(image_url, timeout=30)

scripts/union_search/README.md

  • Access to secretsline 21
    [Credential-related source omitted]
  • Access to secretsline 23
    [Credential-related source omitted]
  • Access to secretsline 33
    [Credential-related source omitted]
  • Network accessline 70
    python union_search_cli.py defuddle https://example.com --json --pretty
  • Network accessline 71
    python union_search_cli.py defuddle --url https://example.com --format markdown -o ./out/article.md python union_search_cli.py search "AI agent" --platforms youtube --limit 3 -o ./out/search.json --pretty python union_search_cli.py download

scripts/union_search/__init__.py

  • Executable scriptline 1
    Executable file

scripts/union_search/platform_metadata.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 8
    [Credential-related source omitted]
  • Access to secretsline 9
    [Credential-related source omitted]
  • Access to secretsline 10
    [Credential-related source omitted]
  • Access to secretsline 11
    [Credential-related source omitted]
  • Access to secretsline 12
    [Credential-related source omitted]
  • Access to secretsline 13
    [Credential-related source omitted]
  • Access to secretsline 14
    [Credential-related source omitted]
  • Access to secretsline 15
    [Credential-related source omitted]
  • Access to secretsline 16
    [Credential-related source omitted]
  • Access to secretsline 17
    [Credential-related source omitted]
  • Access to secretsline 18
    [Credential-related source omitted]
  • Access to secretsline 20
    [Credential-related source omitted]
  • Access to secretsline 21
    [Credential-related source omitted]
  • Access to secretsline 23
    [Credential-related source omitted]
  • Access to secretsline 24
    [Credential-related source omitted]
  • Access to secretsline 25
    [Credential-related source omitted]
  • Access to secretsline 26
    [Credential-related source omitted]
  • Access to secretsline 27
    [Credential-related source omitted]
  • Access to secretsline 28
    [Credential-related source omitted]
  • Access to secretsline 29
    [Credential-related source omitted]
  • Access to secretsline 30
    [Credential-related source omitted]
  • Access to secretsline 40
    [Credential-related source omitted]
  • Access to secretsline 53
    [Credential-related source omitted]
  • Access to secretsline 55
    [Credential-related source omitted]
  • Access to secretsline 56
    [Credential-related source omitted]

scripts/union_search/search_logger.py

  • Executable scriptline 1
    Executable file

scripts/union_search/structured_results.py

  • Executable scriptline 1
    Executable file
  • Possible obfuscationline 54
    return base64.b64decode(padded).decode('utf-8')

scripts/union_search/union_search.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 184
    [Credential-related source omitted]
  • Access to secretsline 316
    [Credential-related source omitted]
  • Access to secretsline 317
    [Credential-related source omitted]
  • Access to secretsline 324
    [Credential-related source omitted]
  • Access to secretsline 325
    [Credential-related source omitted]
  • Access to secretsline 332
    [Credential-related source omitted]
  • Access to secretsline 333
    [Credential-related source omitted]
  • Access to secretsline 340
    [Credential-related source omitted]
  • Access to secretsline 341
    [Credential-related source omitted]
  • Access to secretsline 348
    [Credential-related source omitted]
  • Access to secretsline 349
    [Credential-related source omitted]
  • Access to secretsline 356
    [Credential-related source omitted]
  • Access to secretsline 357
    [Credential-related source omitted]
  • Access to secretsline 364
    [Credential-related source omitted]
  • Access to secretsline 365
    [Credential-related source omitted]
  • Access to secretsline 372
    [Credential-related source omitted]
  • Access to secretsline 373
    [Credential-related source omitted]
  • Access to secretsline 380
    [Credential-related source omitted]
  • Access to secretsline 381
    [Credential-related source omitted]
  • Access to secretsline 388
    [Credential-related source omitted]
  • Access to secretsline 389
    [Credential-related source omitted]
  • Access to secretsline 396
    [Credential-related source omitted]
  • Access to secretsline 397
    [Credential-related source omitted]
  • Access to secretsline 404
    [Credential-related source omitted]
  • Access to secretsline 405
    [Credential-related source omitted]
  • Access to secretsline 412
    [Credential-related source omitted]
  • Access to secretsline 413
    [Credential-related source omitted]
  • Access to secretsline 420
    [Credential-related source omitted]
  • Access to secretsline 421
    [Credential-related source omitted]
  • Access to secretsline 428
    [Credential-related source omitted]
  • Access to secretsline 429
    [Credential-related source omitted]
  • Access to secretsline 436
    [Credential-related source omitted]
  • Access to secretsline 437
    [Credential-related source omitted]
  • Access to secretsline 446
    [Credential-related source omitted]
  • Access to secretsline 447
    [Credential-related source omitted]
  • Access to secretsline 454
    [Credential-related source omitted]
  • Access to secretsline 455
    [Credential-related source omitted]
  • Access to secretsline 462
    [Credential-related source omitted]
  • Access to secretsline 463
    [Credential-related source omitted]
  • Access to secretsline 470
    [Credential-related source omitted]
  • Access to secretsline 471
    [Credential-related source omitted]
  • Access to secretsline 479
    [Credential-related source omitted]
  • Access to secretsline 480
    [Credential-related source omitted]
  • Access to secretsline 487
    [Credential-related source omitted]
  • Access to secretsline 488
    [Credential-related source omitted]
  • Access to secretsline 495
    [Credential-related source omitted]
  • Access to secretsline 496
    [Credential-related source omitted]
  • Access to secretsline 503
    [Credential-related source omitted]
  • Access to secretsline 504
    [Credential-related source omitted]
  • Access to secretsline 511
    [Credential-related source omitted]
  • Access to secretsline 512
    [Credential-related source omitted]
  • Access to secretsline 519
    [Credential-related source omitted]
  • Access to secretsline 520
    [Credential-related source omitted]
  • Access to secretsline 527
    [Credential-related source omitted]
  • Access to secretsline 528
    [Credential-related source omitted]
  • Access to secretsline 535
    [Credential-related source omitted]
  • Access to secretsline 536
    [Credential-related source omitted]
  • Access to secretsline 543
    [Credential-related source omitted]
  • Access to secretsline 544
    [Credential-related source omitted]
  • Access to secretsline 551
    [Credential-related source omitted]
  • Access to secretsline 552
    [Credential-related source omitted]
  • Access to secretsline 559
    [Credential-related source omitted]
  • Access to secretsline 560
    [Credential-related source omitted]
  • Access to secretsline 633
    [Credential-related source omitted]
  • Access to secretsline 669
    [Credential-related source omitted]
  • Access to secretsline 670
    [Credential-related source omitted]
  • Access to secretsline 674
    [Credential-related source omitted]
  • Access to secretsline 678
    [Credential-related source omitted]
  • Access to secretsline 682
    [Credential-related source omitted]
  • Access to secretsline 684
    [Credential-related source omitted]
  • Access to secretsline 964
    [Credential-related source omitted]
  • Access to secretsline 1056
    [Credential-related source omitted]
  • Access to secretsline 1057
    [Credential-related source omitted]
  • Access to secretsline 1058
    [Credential-related source omitted]
  • Access to secretsline 1059
    [Credential-related source omitted]
  • Access to secretsline 1061
    [Credential-related source omitted]
  • Network accessline 1127
    timeout = int(kwargs.get("timeout", 60))     engine = DefuddleEngine(timeout=timeout)     data = engine.fetch(url=url, markdown=True, json_output=True, timeout=timeout)
  • Network accessline 1128
    engine = DefuddleEngine(timeout=timeout)     data = engine.fetch(url=url, markdown=True, json_output=True, timeout=timeout)     item = {
  • Network accessline 1129
    data = engine.fetch(url=url, markdown=True, json_output=True, timeout=timeout)
  • Access to secretsline 1186
    [Credential-related source omitted]
  • Access to secretsline 1194
    [Credential-related source omitted]
  • Access to secretsline 1195
    [Credential-related source omitted]
  • Access to secretsline 1196
    [Credential-related source omitted]
  • Access to secretsline 1208
    [Credential-related source omitted]
  • Access to secretsline 1216
    [Credential-related source omitted]
  • Access to secretsline 1217
    [Credential-related source omitted]
  • Access to secretsline 1218
    [Credential-related source omitted]
  • Access to secretsline 1253
    [Credential-related source omitted]
  • Access to secretsline 1272
    [Credential-related source omitted]
  • Access to secretsline 1291
    [Credential-related source omitted]
  • Access to secretsline 1308
    [Credential-related source omitted]
  • Access to secretsline 1328
    [Credential-related source omitted]
  • Access to secretsline 1350
    [Credential-related source omitted]
  • Access to secretsline 1369
    [Credential-related source omitted]
  • Access to secretsline 1370
    [Credential-related source omitted]
  • Access to secretsline 1390
    [Credential-related source omitted]
  • Access to secretsline 1406
    [Credential-related source omitted]
  • Access to secretsline 1428
    [Credential-related source omitted]
  • Access to secretsline 1449
    [Credential-related source omitted]
  • Network accessline 1704
    python union_search.py --read-url "https://example.com"
  • Network accessline 1705
    python union_search.py --read-url "https://github.com" --read-timeout 60 --json
  • Access to secretsline 1759
    [Credential-related source omitted]
  • Network accessline 1849
    try:             client = UrlToMarkdown(timeout=args.read_timeout)             result = client.fetch(args.read_url)
  • Network accessline 1851
    result = client.fetch(args.read_url)

scripts/url_to_markdown/README.md

  • Network accessline 61
    # 便捷函数(推荐) content = fetch_url_as_markdown("https://example.com/article")
  • Network accessline 62
    content = fetch_url_as_markdown("https://example.com/article")
  • Network accessline 65
    # 高级用法 client = UrlToMarkdown() result = client.fetch(
  • Network accessline 66
    client = UrlToMarkdown() result = client.fetch(     url="https://example.com/article",
  • Network accessline 67
    result = client.fetch(
  • Network accessline 68
    url="https://example.com/article",
  • Network accessline 96
    result = client.fetch(
  • Network accessline 97
    url="https://example.com",
  • Network accessline 111
    # 基本使用 python scripts/url_to_markdown/url_to_markdown.py https://example.com
  • Network accessline 112
    python scripts/url_to_markdown/url_to_markdown.py https://example.com
  • Network accessline 114
    # JSON 输出 python scripts/url_to_markdown/url_to_markdown.py https://example.com --json
  • Network accessline 115
    python scripts/url_to_markdown/url_to_markdown.py https://example.com --json
  • Network accessline 117
    # 详细输出 python scripts/url_to_markdown/url_to_markdown.py https://example.com --verbose
  • Network accessline 118
    python scripts/url_to_markdown/url_to_markdown.py https://example.com --verbose
  • Network accessline 120
    # 指定引擎 python scripts/url_to_markdown/url_to_markdown.py https://example.com --prefer-engine jina
  • Network accessline 121
    python scripts/url_to_markdown/url_to_markdown.py https://example.com --prefer-engine jina
  • Network accessline 122
    python scripts/url_to_markdown/url_to_markdown.py https://example.com --prefer-engine defuddle
  • Network accessline 124
    # 禁用自动降级 python scripts/url_to_markdown/url_to_markdown.py https://example.com --no-fallback
  • Network accessline 125
    python scripts/url_to_markdown/url_to_markdown.py https://example.com --no-fallback
  • Network accessline 127
    # 保存到文件 python scripts/url_to_markdown/url_to_markdown.py https://example.com -o output.md
  • Network accessline 128
    python scripts/url_to_markdown/url_to_markdown.py https://example.com -o output.md
  • Network accessline 136
    {     "url": "https://example.com",
  • Network accessline 137
    "url": "https://example.com",
  • Network accessline 148
    {     "url": "https://example.com",
  • Network accessline 149
    "url": "https://example.com",
  • Network accessline 152
    "description": "...",     "domain": "example.com",     "favicon": "https://example.com/favicon.ico",
  • Network accessline 153
    "domain": "example.com",     "favicon": "https://example.com/favicon.ico",     "image": "",
  • Network accessline 154
    "favicon": "https://example.com/favicon.ico",
  • Network accessline 207
    client = UrlToMarkdown()  # 自动模式 result = client.fetch("https://example.com")
  • Network accessline 208
    result = client.fetch("https://example.com")
  • Network accessline 238
    # Windows: 下载安装 https://nodejs.org/
  • Network accessline 270
    urls = [     "https://example.com/article1",
  • Network accessline 271
    "https://example.com/article1",
  • Network accessline 272
    "https://example.com/article2",
  • Network accessline 273
    "https://example.com/article3",
  • Network accessline 278
    def process_url(url):     return client.fetch(url)
  • Network accessline 279
    return client.fetch(url)
  • Network accessline 306
    # Cache miss     from scripts.url_to_markdown import UrlToMarkdown     result = UrlToMarkdown().fetch(url)
  • Network accessline 307
    from scripts.url_to_markdown import UrlToMarkdown     result = UrlToMarkdown().fetch(url)     cache_file.write_text(json.dumps({
  • Network accessline 308
    result = UrlToMarkdown().fetch(url)

scripts/url_to_markdown/__init__.py

  • Executable scriptline 1
    Executable file
  • Network accessline 15
    # 简单调用(自动降级)     result = fetch_url_as_markdown("https://example.com")
  • Network accessline 16
    result = fetch_url_as_markdown("https://example.com")
  • Network accessline 18
    # 高级用法     client = UrlToMarkdown()     result = client.fetch(
  • Network accessline 19
    client = UrlToMarkdown()     result = client.fetch(         url="https://example.com",
  • Network accessline 20
    result = client.fetch(
  • Network accessline 21
    url="https://example.com",

scripts/url_to_markdown/__main__.py

  • Executable scriptline 1
    #!/usr/bin/env python3

scripts/url_to_markdown/engines/__init__.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 30
    [Credential-related source omitted]
  • Access to secretsline 40
    [Credential-related source omitted]
  • Access to secretsline 46
    [Credential-related source omitted]
  • Access to secretsline 48
    [Credential-related source omitted]
  • Network accessline 53
    def fetch(
  • Network accessline 109
    if engine_name == "jina":                     result = self.jina.fetch(
  • Network accessline 110
    result = self.jina.fetch(
  • Network accessline 120
    )                 elif engine_name == "firecrawl":                     result = self.firecrawl.fetch(
  • Network accessline 121
    elif engine_name == "firecrawl":                     result = self.firecrawl.fetch(                         url=url,
  • Network accessline 122
    result = self.firecrawl.fetch(
  • Network accessline 130
    result = self.defuddle.fetch(
  • Network accessline 161
    Args:             urls: URL 列表             **kwargs: fetch() 方法的其他参数
  • Network accessline 163
    **kwargs: fetch() 方法的其他参数
  • Network accessline 169
    for url in urls:             try:                 result = self.fetch(url, **kwargs)
  • Network accessline 170
    try:                 result = self.fetch(url, **kwargs)                 results.append(result)
  • Network accessline 171
    result = self.fetch(url, **kwargs)
  • Network accessline 202
    client = UrlToMarkdown(timeout=timeout, prefer_engine=prefer_engine)     result = client.fetch(
  • Network accessline 203
    result = client.fetch(

scripts/url_to_markdown/engines/defuddle-node/package-lock.json

  • Network accessline 19
    "node_modules/@asamuzakjp/css-color": {       "version": "3.2.0",       "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-3.2.0.tgz",
  • Network accessline 20
    "version": "3.2.0",       "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-3.2.0.tgz",       "integrity": "sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw==",
  • Network accessline 21
    "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-3.2.0.tgz",
  • Network accessline 32
    "node_modules/@csstools/color-helpers": {       "version": "5.1.0",       "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.1.0.tgz",
  • Network accessline 33
    "version": "5.1.0",       "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.1.0.tgz",       "integrity": "sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==",
  • Network accessline 34
    "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.1.0.tgz",
  • Network accessline 37
    {           "type": "github",           "url": "https://github.com/sponsors/csstools"
  • Network accessline 38
    "type": "github",           "url": "https://github.com/sponsors/csstools"         },
  • Network accessline 39
    "url": "https://github.com/sponsors/csstools"
  • Network accessline 41
    {           "type": "opencollective",           "url": "https://opencollective.com/csstools"
  • Network accessline 42
    "type": "opencollective",           "url": "https://opencollective.com/csstools"         }
  • Network accessline 43
    "url": "https://opencollective.com/csstools"
  • Network accessline 51
    "node_modules/@csstools/css-calc": {       "version": "2.1.4",       "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.1.4.tgz",
  • Network accessline 52
    "version": "2.1.4",       "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.1.4.tgz",       "integrity": "sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==",
  • Network accessline 53
    "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.1.4.tgz",
  • Network accessline 56
    {           "type": "github",           "url": "https://github.com/sponsors/csstools"
  • Network accessline 57
    "type": "github",           "url": "https://github.com/sponsors/csstools"         },
  • Network accessline 58
    "url": "https://github.com/sponsors/csstools"
  • Network accessline 60
    {           "type": "opencollective",           "url": "https://opencollective.com/csstools"
  • Network accessline 61
    "type": "opencollective",           "url": "https://opencollective.com/csstools"         }
  • Network accessline 62
    "url": "https://opencollective.com/csstools"
  • Network accessline 74
    "node_modules/@csstools/css-color-parser": {       "version": "3.1.0",       "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.1.0.tgz",
  • Network accessline 75
    "version": "3.1.0",       "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.1.0.tgz",       "integrity": "sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA=="
  • Network accessline 76
    "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.1.0.tgz",
  • Network accessline 79
    {           "type": "github",           "url": "https://github.com/sponsors/csstools"
  • Network accessline 80
    "type": "github",           "url": "https://github.com/sponsors/csstools"         },
  • Network accessline 81
    "url": "https://github.com/sponsors/csstools"
  • Network accessline 83
    {           "type": "opencollective",           "url": "https://opencollective.com/csstools"
  • Network accessline 84
    "type": "opencollective",           "url": "https://opencollective.com/csstools"         }
  • Network accessline 85
    "url": "https://opencollective.com/csstools"
  • Network accessline 101
    "node_modules/@csstools/css-parser-algorithms": {       "version": "3.0.5",       "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz",
  • Network accessline 102
    "version": "3.0.5",       "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz",       "integrity": "sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf7
  • Network accessline 103
    "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz",
  • Network accessline 106
    {           "type": "github",           "url": "https://github.com/sponsors/csstools"
  • Network accessline 107
    "type": "github",           "url": "https://github.com/sponsors/csstools"         },
  • Network accessline 108
    "url": "https://github.com/sponsors/csstools"
  • Network accessline 110
    {           "type": "opencollective",           "url": "https://opencollective.com/csstools"
  • Network accessline 111
    "type": "opencollective",           "url": "https://opencollective.com/csstools"         }
  • Network accessline 112
    "url": "https://opencollective.com/csstools"
  • Network accessline 123
    "node_modules/@csstools/css-tokenizer": {       "version": "3.0.4",       "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz",
  • Network accessline 124
    "version": "3.0.4",       "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz",       "integrity": "sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==",
  • Network accessline 125
    "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz",
  • Network accessline 128
    {           "type": "github",           "url": "https://github.com/sponsors/csstools"
  • Network accessline 129
    "type": "github",           "url": "https://github.com/sponsors/csstools"         },
  • Network accessline 130
    "url": "https://github.com/sponsors/csstools"
  • Network accessline 132
    {           "type": "opencollective",           "url": "https://opencollective.com/csstools"
  • Network accessline 133
    "type": "opencollective",           "url": "https://opencollective.com/csstools"         }
  • Network accessline 134
    "url": "https://opencollective.com/csstools"
  • Network accessline 142
    "node_modules/@mixmark-io/domino": {       "version": "2.2.0",       "resolved": "https://registry.npmjs.org/@mixmark-io/domino/-/domino-2.2.0.tgz",
  • Network accessline 143
    "version": "2.2.0",       "resolved": "https://registry.npmjs.org/@mixmark-io/domino/-/domino-2.2.0.tgz",       "integrity": "sha512-Y28PR25bHXUg88kCV7nivXrP2Nj2RueZ3/l/jdx6J9f8J4nsEGcgX0Qe6lt7Pa+J79+kPiJU3LguR6O/6zrLOw==",
  • Network accessline 144
    "resolved": "https://registry.npmjs.org/@mixmark-io/domino/-/domino-2.2.0.tgz",
  • Network accessline 149
    "node_modules/@xmldom/xmldom": {       "version": "0.8.11",       "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.11.tgz",
  • Network accessline 150
    "version": "0.8.11",       "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.11.tgz",       "integrity": "sha512-cQzWCtO6C8TQiYl1ruKNn2U6Ao4o4WBBcbL61yJl84x+j5sOWWFU9X7DpND8XZG3daDppSsigMdfAIl2upQBRw==",
  • Network accessline 151
    "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.11.tgz",
  • Network accessline 159
    "node_modules/agent-base": {       "version": "7.1.4",       "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz",
  • Network accessline 160
    "version": "7.1.4",       "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz",       "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==",
  • Network accessline 161
    "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz",
  • Network accessline 168
    "node_modules/asynckit": {       "version": "0.4.0",       "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
  • Network accessline 169
    "version": "0.4.0",       "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",       "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
  • Network accessline 170
    "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
  • Network accessline 174
    "node_modules/call-bind-apply-helpers": {       "version": "1.0.2",       "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
  • Network accessline 175
    "version": "1.0.2",       "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",       "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuM
  • Network accessline 176
    "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
  • Network accessline 187
    "node_modules/combined-stream": {       "version": "1.0.8",       "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
  • Network accessline 188
    "version": "1.0.8",       "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",       "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
  • Network accessline 189
    "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
  • Network accessline 199
    "node_modules/commander": {       "version": "12.1.0",       "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz",
  • Network accessline 200
    "version": "12.1.0",       "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz",       "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==",
  • Network accessline 201
    "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz",
  • Network accessline 208
    "node_modules/cssstyle": {       "version": "4.6.0",       "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.6.0.tgz",
  • Network accessline 209
    "version": "4.6.0",       "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.6.0.tgz",       "integrity": "sha512-2z+rWdzbbSZv6/rhtvzvqeZQHrBaqgogqt85sqFNbabZOuFbCVFb8kPeEtZjiKkbrm395irpNKiYeFeLiQnFPg==",
  • Network accessline 210
    "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.6.0.tgz",
  • Network accessline 221
    "node_modules/cssstyle/node_modules/rrweb-cssom": {       "version": "0.8.0",       "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.8.0.tgz",
  • Network accessline 222
    "version": "0.8.0",       "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.8.0.tgz",       "integrity": "sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==",
  • Network accessline 223
    "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.8.0.tgz",
  • Network accessline 227
    "node_modules/data-urls": {       "version": "5.0.0",       "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz",
  • Network accessline 228
    "version": "5.0.0",       "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz",       "integrity": "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==",
  • Network accessline 229
    "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz",
  • Network accessline 240
    "node_modules/debug": {       "version": "4.4.3",       "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
  • Network accessline 241
    "version": "4.4.3",       "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",       "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
  • Network accessline 242
    "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
  • Network accessline 257
    "node_modules/decimal.js": {       "version": "10.6.0",       "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz",
  • Network accessline 258
    "version": "10.6.0",       "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz",       "integrity": "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==",
  • Network accessline 259
    "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz",
  • Network accessline 263
    "node_modules/defuddle": {       "version": "0.10.0",       "resolved": "https://registry.npmmirror.com/defuddle/-/defuddle-0.10.0.tgz",
  • Network accessline 264
    "version": "0.10.0",       "resolved": "https://registry.npmmirror.com/defuddle/-/defuddle-0.10.0.tgz",       "integrity": "sha512-a43juTtHv6Vs4+sxvahVLM5NxoyDsarO1Ag3UxLORI4Fo/nsNFwzDxuQBvosKVGTIRxCwN/mfnWAzNXmQfieqw==",
  • Network accessline 265
    "resolved": "https://registry.npmmirror.com/defuddle/-/defuddle-0.10.0.tgz",
  • Network accessline 283
    "node_modules/delayed-stream": {       "version": "1.0.0",       "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
  • Network accessline 284
    "version": "1.0.0",       "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",       "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
  • Network accessline 285
    "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
  • Network accessline 292
    "node_modules/dunder-proto": {       "version": "1.0.1",       "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
  • Network accessline 293
    "version": "1.0.1",       "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",       "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
  • Network accessline 294
    "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
  • Network accessline 306
    "node_modules/entities": {       "version": "6.0.1",       "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz",
  • Network accessline 307
    "version": "6.0.1",       "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz",       "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==",
  • Network accessline 308
    "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz",
  • Network accessline 313
    },       "funding": {         "url": "https://github.com/fb55/entities?sponsor=1"
  • Network accessline 314
    "funding": {         "url": "https://github.com/fb55/entities?sponsor=1"       }
  • Network accessline 315
    "url": "https://github.com/fb55/entities?sponsor=1"
  • Network accessline 318
    "node_modules/es-define-property": {       "version": "1.0.1",       "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
  • Network accessline 319
    "version": "1.0.1",       "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",       "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
  • Network accessline 320
    "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
  • Network accessline 327
    "node_modules/es-errors": {       "version": "1.3.0",       "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
  • Network accessline 328
    "version": "1.3.0",       "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",       "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
  • Network accessline 329
    "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
  • Network accessline 336
    "node_modules/es-object-atoms": {       "version": "1.1.1",       "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
  • Network accessline 337
    "version": "1.1.1",       "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",       "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
  • Network accessline 338
    "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
  • Network accessline 348
    "node_modules/es-set-tostringtag": {       "version": "2.1.0",       "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
  • Network accessline 349
    "version": "2.1.0",       "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",       "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==",
  • Network accessline 350
    "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
  • Network accessline 363
    "node_modules/form-data": {       "version": "4.0.5",       "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz",
  • Network accessline 364
    "version": "4.0.5",       "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz",       "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==",
  • Network accessline 365
    "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz",
  • Network accessline 379
    "node_modules/function-bind": {       "version": "1.1.2",       "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
  • Network accessline 380
    "version": "1.1.2",       "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",       "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
  • Network accessline 381
    "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
  • Network accessline 383
    "license": "MIT",       "funding": {         "url": "https://github.com/sponsors/ljharb"
  • Network accessline 384
    "funding": {         "url": "https://github.com/sponsors/ljharb"       }
  • Network accessline 385
    "url": "https://github.com/sponsors/ljharb"
  • Network accessline 388
    "node_modules/get-intrinsic": {       "version": "1.3.0",       "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
  • Network accessline 389
    "version": "1.3.0",       "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",       "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
  • Network accessline 390
    "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
  • Network accessline 407
    },       "funding": {         "url": "https://github.com/sponsors/ljharb"
  • Network accessline 408
    "funding": {         "url": "https://github.com/sponsors/ljharb"       }
  • Network accessline 409
    "url": "https://github.com/sponsors/ljharb"
  • Network accessline 412
    "node_modules/get-proto": {       "version": "1.0.1",       "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
  • Network accessline 413
    "version": "1.0.1",       "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",       "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
  • Network accessline 414
    "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
  • Network accessline 425
    "node_modules/gopd": {       "version": "1.2.0",       "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
  • Network accessline 426
    "version": "1.2.0",       "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",       "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
  • Network accessline 427
    "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
  • Network accessline 432
    },       "funding": {         "url": "https://github.com/sponsors/ljharb"
  • Network accessline 433
    "funding": {         "url": "https://github.com/sponsors/ljharb"       }
  • Network accessline 434
    "url": "https://github.com/sponsors/ljharb"
  • Network accessline 437
    "node_modules/has-symbols": {       "version": "1.1.0",       "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
  • Network accessline 438
    "version": "1.1.0",       "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",       "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
  • Network accessline 439
    "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
  • Network accessline 444
    },       "funding": {         "url": "https://github.com/sponsors/ljharb"
  • Network accessline 445
    "funding": {         "url": "https://github.com/sponsors/ljharb"       }
  • Network accessline 446
    "url": "https://github.com/sponsors/ljharb"
  • Network accessline 449
    "node_modules/has-tostringtag": {       "version": "1.0.2",       "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
  • Network accessline 450
    "version": "1.0.2",       "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",       "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
  • Network accessline 451
    "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
  • Network accessline 459
    },       "funding": {         "url": "https://github.com/sponsors/ljharb"
  • Network accessline 460
    "funding": {         "url": "https://github.com/sponsors/ljharb"       }
  • Network accessline 461
    "url": "https://github.com/sponsors/ljharb"
  • Network accessline 464
    "node_modules/hasown": {       "version": "2.0.2",       "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
  • Network accessline 465
    "version": "2.0.2",       "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",       "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
  • Network accessline 466
    "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
  • Network accessline 476
    "node_modules/html-encoding-sniffer": {       "version": "4.0.0",       "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz",
  • Network accessline 477
    "version": "4.0.0",       "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz",       "integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ=="
  • Network accessline 478
    "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz",
  • Network accessline 488
    "node_modules/http-proxy-agent": {       "version": "7.0.2",       "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz",
  • Network accessline 489
    "version": "7.0.2",       "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz",       "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==",
  • Network accessline 490
    "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz",
  • Network accessline 501
    "node_modules/https-proxy-agent": {       "version": "7.0.6",       "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz",
  • Network accessline 502
    "version": "7.0.6",       "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz",       "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==",
  • Network accessline 503
    "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz",
  • Network accessline 514
    "node_modules/iconv-lite": {       "version": "0.6.3",       "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
  • Network accessline 515
    "version": "0.6.3",       "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",       "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
  • Network accessline 516
    "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
  • Network accessline 526
    "node_modules/is-potential-custom-element-name": {       "version": "1.0.1",       "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz",
  • Network accessline 527
    "version": "1.0.1",       "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz",       "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmP
  • Network accessline 528
    "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz",
  • Network accessline 532
    "node_modules/jsdom": {       "version": "24.1.3",       "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-24.1.3.tgz",
  • Network accessline 533
    "version": "24.1.3",       "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-24.1.3.tgz",       "integrity": "sha512-MyL55p3Ut3cXbeBEG7Hcv0mVM8pp8PBNWxRqchZnSfAiES1v1mRnMeFfaHWIPULpwsYfvO+ZmMZz5tGCnjzDUQ==",
  • Network accessline 534
    "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-24.1.3.tgz",
  • Network accessline 572
    "node_modules/lru-cache": {       "version": "10.4.3",       "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
  • Network accessline 573
    "version": "10.4.3",       "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",       "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
  • Network accessline 574
    "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
  • Network accessline 578
    "node_modules/math-intrinsics": {       "version": "1.1.0",       "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
  • Network accessline 579
    "version": "1.1.0",       "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",       "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
  • Network accessline 580
    "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
  • Network accessline 587
    "node_modules/mathml-to-latex": {       "version": "1.5.0",       "resolved": "https://registry.npmjs.org/mathml-to-latex/-/mathml-to-latex-1.5.0.tgz",
  • Network accessline 588
    "version": "1.5.0",       "resolved": "https://registry.npmjs.org/mathml-to-latex/-/mathml-to-latex-1.5.0.tgz",       "integrity": "sha512-rrWn0eEvcEcdMM4xfHcSGIy+i01DX9byOdXTLWg+w1iJ6O6ohP5UXY1dVzNUZLhzfl3EGcRekWLhY7JT5Omaew==",
  • Network accessline 589
    "resolved": "https://registry.npmjs.org/mathml-to-latex/-/mathml-to-latex-1.5.0.tgz",
  • Network accessline 597
    "node_modules/mime-db": {       "version": "1.52.0",       "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
  • Network accessline 598
    "version": "1.52.0",       "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",       "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
  • Network accessline 599
    "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
  • Network accessline 606
    "node_modules/mime-types": {       "version": "2.1.35",       "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
  • Network accessline 607
    "version": "2.1.35",       "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",       "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
  • Network accessline 608
    "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
  • Network accessline 618
    "node_modules/ms": {       "version": "2.1.3",       "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
  • Network accessline 619
    "version": "2.1.3",       "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",       "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
  • Network accessline 620
    "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
  • Network accessline 624
    "node_modules/nwsapi": {       "version": "2.2.23",       "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.23.tgz",
  • Network accessline 625
    "version": "2.2.23",       "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.23.tgz",       "integrity": "sha512-7wfH4sLbt4M0gCDzGE6vzQBo0bfTKjU7Sfpqy/7gs1qBfYz2vEJH6vXcBKpO3+6Yu1telwd0t9HpyOoLEQQbIQ==",
  • Network accessline 626
    "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.23.tgz",
  • Network accessline 630
    "node_modules/parse5": {       "version": "7.3.0",       "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz",
  • Network accessline 631
    "version": "7.3.0",       "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz",       "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==",
  • Network accessline 632
    "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz",
  • Network accessline 637
    },       "funding": {         "url": "https://github.com/inikulin/parse5?sponsor=1"
  • Network accessline 638
    "funding": {         "url": "https://github.com/inikulin/parse5?sponsor=1"       }
  • Network accessline 639
    "url": "https://github.com/inikulin/parse5?sponsor=1"
  • Network accessline 642
    "node_modules/psl": {       "version": "1.15.0",       "resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz",
  • Network accessline 643
    "version": "1.15.0",       "resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz",       "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==",
  • Network accessline 644
    "resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz",
  • Network accessline 649
    },       "funding": {         "url": "https://github.com/sponsors/lupomontero"
  • Network accessline 650
    "funding": {         "url": "https://github.com/sponsors/lupomontero"       }
  • Network accessline 651
    "url": "https://github.com/sponsors/lupomontero"
  • Network accessline 654
    "node_modules/punycode": {       "version": "2.3.1",       "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
  • Network accessline 655
    "version": "2.3.1",       "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",       "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
  • Network accessline 656
    "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
  • Network accessline 663
    "node_modules/querystringify": {       "version": "2.2.0",       "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz",
  • Network accessline 664
    "version": "2.2.0",       "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz",       "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==",
  • Network accessline 665
    "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz",
  • Network accessline 669
    "node_modules/requires-port": {       "version": "1.0.0",       "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
  • Network accessline 670
    "version": "1.0.0",       "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",       "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==",
  • Network accessline 671
    "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
  • Network accessline 675
    "node_modules/rrweb-cssom": {       "version": "0.7.1",       "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.7.1.tgz",
  • Network accessline 676
    "version": "0.7.1",       "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.7.1.tgz",       "integrity": "sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==",
  • Network accessline 677
    "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.7.1.tgz",
  • Network accessline 681
    "node_modules/safer-buffer": {       "version": "2.1.2",       "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
  • Network accessline 682
    "version": "2.1.2",       "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",       "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
  • Network accessline 683
    "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
  • Network accessline 687
    "node_modules/saxes": {       "version": "6.0.0",       "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz",
  • Network accessline 688
    "version": "6.0.0",       "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz",       "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==",
  • Network accessline 689
    "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz",
  • Network accessline 699
    "node_modules/symbol-tree": {       "version": "3.2.4",       "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",
  • Network accessline 700
    "version": "3.2.4",       "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",       "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==",
  • Network accessline 701
    "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",
  • Network accessline 705
    "node_modules/temml": {       "version": "0.13.1",       "resolved": "https://registry.npmjs.org/temml/-/temml-0.13.1.tgz",
  • Network accessline 706
    "version": "0.13.1",       "resolved": "https://registry.npmjs.org/temml/-/temml-0.13.1.tgz",       "integrity": "sha512-/fL1utq8QUD9YpcLeZHPRnp9Cbzbexq5hZl5uSBhf8mNYiKkcS4eYbLidDB+/nF8C+RHAcBQbKw2bKoS83mz1Q==",
  • Network accessline 707
    "resolved": "https://registry.npmjs.org/temml/-/temml-0.13.1.tgz",
  • Network accessline 715
    "node_modules/tough-cookie": {       "version": "4.1.4",       "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz",
  • Network accessline 716
    "version": "4.1.4",       "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz",       "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==",
  • Network accessline 717
    "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz",
  • Network accessline 730
    "node_modules/tr46": {       "version": "5.1.1",       "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.1.1.tgz",
  • Network accessline 731
    "version": "5.1.1",       "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.1.1.tgz",       "integrity": "sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==",
  • Network accessline 732
    "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.1.1.tgz",
  • Network accessline 742
    "node_modules/turndown": {       "version": "7.2.2",       "resolved": "https://registry.npmjs.org/turndown/-/turndown-7.2.2.tgz",
  • Network accessline 743
    "version": "7.2.2",       "resolved": "https://registry.npmjs.org/turndown/-/turndown-7.2.2.tgz",       "integrity": "sha512-1F7db8BiExOKxjSMU2b7if62D/XOyQyZbPKq/nUwopfgnHlqXHqQ0lvfUTeUIr1lZJzOPFn43dODyMSIfvWRKQ==",
  • Network accessline 744
    "resolved": "https://registry.npmjs.org/turndown/-/turndown-7.2.2.tgz",
  • Network accessline 752
    "node_modules/universalify": {       "version": "0.2.0",       "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz",
  • Network accessline 753
    "version": "0.2.0",       "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz",       "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==",
  • Network accessline 754
    "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz",
  • Network accessline 761
    "node_modules/url-parse": {       "version": "1.5.10",       "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz",
  • Network accessline 762
    "version": "1.5.10",       "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz",       "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==",
  • Network accessline 763
    "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz",
  • Network accessline 771
    "node_modules/w3c-xmlserializer": {       "version": "5.0.0",       "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz",
  • Network accessline 772
    "version": "5.0.0",       "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz",       "integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==",
  • Network accessline 773
    "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz",
  • Network accessline 783
    "node_modules/webidl-conversions": {       "version": "7.0.0",       "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
  • Network accessline 784
    "version": "7.0.0",       "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz",       "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==",
  • Network accessline 785
    "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
  • Network accessline 792
    "node_modules/whatwg-encoding": {       "version": "3.1.1",       "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz",
  • Network accessline 793
    "version": "3.1.1",       "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz",       "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==",
  • Network accessline 794
    "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz",
  • Network accessline 805
    "node_modules/whatwg-mimetype": {       "version": "4.0.0",       "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz",
  • Network accessline 806
    "version": "4.0.0",       "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz",       "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==",
  • Network accessline 807
    "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz",
  • Network accessline 814
    "node_modules/whatwg-url": {       "version": "14.2.0",       "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.2.0.tgz",
  • Network accessline 815
    "version": "14.2.0",       "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.2.0.tgz",       "integrity": "sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==",
  • Network accessline 816
    "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.2.0.tgz",
  • Network accessline 827
    "node_modules/ws": {       "version": "8.19.0",       "resolved": "https://registry.npmjs.org/ws/-/ws-8.19.0.tgz",
  • Network accessline 828
    "version": "8.19.0",       "resolved": "https://registry.npmjs.org/ws/-/ws-8.19.0.tgz",       "integrity": "sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==",
  • Network accessline 829
    "resolved": "https://registry.npmjs.org/ws/-/ws-8.19.0.tgz",
  • Network accessline 848
    "node_modules/xml-name-validator": {       "version": "5.0.0",       "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz",
  • Network accessline 849
    "version": "5.0.0",       "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz",       "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==",
  • Network accessline 850
    "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz",
  • Network accessline 857
    "node_modules/xmlchars": {       "version": "2.2.0",       "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz",
  • Network accessline 858
    "version": "2.2.0",       "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz",       "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==",
  • Network accessline 859
    "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz",

scripts/url_to_markdown/engines/defuddle-node/package.json

  • Executable scriptline 1
    Executable file

scripts/url_to_markdown/engines/defuddle/README.md

  • Network accessline 34
    # 自动模式 - 优先 Jina,失败时 Defuddle client = UrlToMarkdown() result = client.fetch("https://example.com")
  • Network accessline 36
    result = client.fetch("https://example.com")
  • Network accessline 38
    # 仅使用 Defuddle client = UrlToMarkdown(prefer_engine="defuddle", enable_fallback=False) result = client.fetch("https://example.com")
  • Network accessline 40
    result = client.fetch("https://example.com")
  • Network accessline 48
    client = DefuddleEngine() result = client.fetch(url="https://example.com")
  • Network accessline 49
    result = client.fetch(url="https://example.com")
  • Network accessline 55
    python scripts/url_to_markdown/engines/defuddle/defuddle_cli.py https://example.com
  • Network accessline 75
    npm --prefix scripts/url_to_markdown/engines/defuddle-node install --package-lock-only npm --prefix scripts/url_to_markdown/engines/defuddle-node ci python scripts/url_to_markdown/engines/defuddle/defuddle_cli.py https://example.com --json
  • Network accessline 77
    python scripts/url_to_markdown/engines/defuddle/defuddle_cli.py https://example.com --json
  • Network accessline 82
    - [Defuddle GitHub](https://github.com/kepano/defuddle)

scripts/url_to_markdown/engines/defuddle/__init__.py

  • Executable scriptline 1
    #!/usr/bin/env python3

scripts/url_to_markdown/engines/defuddle/defuddle_cli.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 11
    GitHub: https://github.com/kepano/defuddle
  • Network accessline 49
    def fetch(
  • Network accessline 165
    client = DefuddleClient(timeout=timeout)     return client.fetch(
  • Network accessline 166
    return client.fetch(

scripts/url_to_markdown/engines/defuddle_engine.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 43
    def fetch(
  • Network accessline 148
    Args:             urls: URL 列表             **kwargs: fetch() 方法的其他参数
  • Network accessline 150
    **kwargs: fetch() 方法的其他参数
  • Network accessline 156
    for url in urls:             try:                 result = self.fetch(url, **kwargs)
  • Network accessline 157
    try:                 result = self.fetch(url, **kwargs)                 results.append(result)
  • Network accessline 158
    result = self.fetch(url, **kwargs)

scripts/url_to_markdown/engines/firecrawl_engine.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 23
    [Credential-related source omitted]
  • Access to secretsline 28
    [Credential-related source omitted]
  • Access to secretsline 31
    [Credential-related source omitted]
  • Access to secretsline 35
    [Credential-related source omitted]
  • Access to secretsline 36
    [Credential-related source omitted]
  • Access to secretsline 41
    [Credential-related source omitted]
  • Network accessline 45
    def fetch(
  • Network accessline 94
    for url in urls:             try:                 results.append(self.fetch(url, **kwargs))
  • Network accessline 95
    try:                 results.append(self.fetch(url, **kwargs))             except Exception as e:
  • Network accessline 96
    results.append(self.fetch(url, **kwargs))

scripts/url_to_markdown/engines/jina_engine.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 15
    JINA_READER_BASE_URL = "https://r.jina.ai"
  • Network accessline 22
    将网页 URL 转换为 Markdown 格式。     官方文档:https://jina.ai/reader
  • Network accessline 23
    官方文档:https://jina.ai/reader
  • Access to secretsline 26
    [Credential-related source omitted]
  • Access to secretsline 31
    [Credential-related source omitted]
  • Access to secretsline 34
    [Credential-related source omitted]
  • Access to secretsline 45
    [Credential-related source omitted]
  • Access to secretsline 46
    [Credential-related source omitted]
  • Network accessline 59
    parsed = urlparse(url)         if not parsed.scheme:             url = f"https://{url}"
  • Network accessline 61
    url = f"https://{url}"
  • Network accessline 70
    def fetch(
  • Network accessline 122
    response = requests.get(
  • Network accessline 170
    Args:             urls: URL 列表             **kwargs: fetch() 方法的其他参数
  • Network accessline 172
    **kwargs: fetch() 方法的其他参数
  • Network accessline 178
    for url in urls:             try:                 result = self.fetch(url, **kwargs)
  • Network accessline 179
    try:                 result = self.fetch(url, **kwargs)                 results.append(result)
  • Network accessline 180
    result = self.fetch(url, **kwargs)

scripts/url_to_markdown/url_to_markdown.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 34
    JINA_READER_BASE_URL = "https://r.jina.ai"
  • Access to secretsline 51
    [Credential-related source omitted]
  • Access to secretsline 60
    [Credential-related source omitted]
  • Access to secretsline 67
    [Credential-related source omitted]
  • Access to secretsline 68
    [Credential-related source omitted]
  • Access to secretsline 81
    [Credential-related source omitted]
  • Access to secretsline 82
    [Credential-related source omitted]
  • Network accessline 95
    parsed = urlparse(url)         if not parsed.scheme:             url = f"https://{url}"
  • Network accessline 97
    url = f"https://{url}"
  • Network accessline 116
    response = requests.get(
  • Network accessline 230
    def fetch(
  • Network accessline 315
    Args:             urls: URL 列表             **kwargs: fetch() 方法的其他参数
  • Network accessline 317
    **kwargs: fetch() 方法的其他参数
  • Network accessline 323
    for url in urls:             try:                 result = self.fetch(url, **kwargs)
  • Network accessline 324
    try:                 result = self.fetch(url, **kwargs)                 results.append(result)
  • Network accessline 325
    result = self.fetch(url, **kwargs)
  • Network accessline 356
    client = UrlToMarkdown(timeout=timeout)     result = client.fetch(
  • Network accessline 357
    result = client.fetch(
  • Network accessline 415
    epilog=""" 示例:   %(prog)s https://example.com
  • Network accessline 416
    示例:   %(prog)s https://example.com   %(prog)s https://example.com --json
  • Network accessline 417
    %(prog)s https://example.com
  • Network accessline 418
    %(prog)s https://example.com --json
  • Network accessline 419
    %(prog)s https://example.com --with-images --save-response
  • Network accessline 420
    %(prog)s https://github.com --target-selector "article"
  • Access to secretsline 442
    [Credential-related source omitted]
  • Network accessline 448
    result = client.fetch(

union_search_cli.py

  • Executable scriptline 1
    #!/usr/bin/env python3

How the signals fit together

Facts from a static read of the files at the pinned commit. They describe what the code does, not why.

Some files could not be read; the facts below still hold.

Declared and executed: 14 facts
Signal confidence: 486 facts
  • Network access in prose of documentationREADME.en.md:9Low confidence
  • Network access in prose of documentationREADME.en.md:10Low confidence
  • Network access in prose of documentationREADME.en.md:11Low confidence
  • Network access in prose of documentationREADME.en.md:12Low confidence
  • Network access in prose of documentationREADME.en.md:13Low confidence
  • Network access in code of documentationREADME.en.md:45Low confidence
  • Access to secrets in code of documentation: a variable, placeholder or call, not a stored valueREADME.en.md:63Low confidence
  • Network access in code of documentationREADME.en.md:123Low confidence
  • Network access in code of documentationREADME.en.md:124Low confidence
  • Access to secrets in prose of documentationREADME.en.md:147Low confidence
  • Access to secrets in prose of documentationREADME.en.md:167Low confidence
  • Access to secrets in prose of documentationREADME.en.md:169Low confidence
  • Access to secrets in prose of documentationREADME.en.md:198Low confidence
  • Access to secrets in prose of documentationREADME.en.md:199Low confidence
  • Access to secrets in code of documentationREADME.en.md:237Low confidence
  • Network access in prose of documentationREADME.en.md:317Low confidence
  • Network access in prose of documentationREADME.en.md:393Low confidence
  • Network access in prose of documentationREADME.en.md:412Low confidence
  • Network access in prose of documentationREADME.en.md:413Low confidence
  • Network access in prose of documentationREADME.en.md:414Low confidence
  • Network access in prose of documentationREADME.en.md:415Low confidence
  • Network access in prose of documentationREADME.en.md:416Low confidence
  • Network access in prose of documentationREADME.en.md:417Low confidence
  • Network access in prose of documentationREADME.en.md:418Low confidence
  • Network access in prose of documentationREADME.md:9Low confidence
  • Network access in prose of documentationREADME.md:10Low confidence
  • Network access in prose of documentationREADME.md:11Low confidence
  • Network access in prose of documentationREADME.md:12Low confidence
  • Network access in prose of documentationREADME.md:13Low confidence
  • Network access in code of documentationREADME.md:45Low confidence
  • Access to secrets in code of documentation: a variable, placeholder or call, not a stored valueREADME.md:63Low confidence
  • Network access in code of documentationREADME.md:123Low confidence
  • Network access in code of documentationREADME.md:124Low confidence
  • Access to secrets in prose of documentationREADME.md:147Low confidence
  • Access to secrets in prose of documentationREADME.md:167Low confidence
  • Access to secrets in prose of documentationREADME.md:169Low confidence
  • Access to secrets in prose of documentationREADME.md:198Low confidence
  • Access to secrets in prose of documentationREADME.md:199Low confidence
  • Network access in prose of documentationREADME.md:315Low confidence
  • Network access in prose of documentationREADME.md:391Low confidence
  • Network access in prose of documentationREADME.md:410Low confidence
  • Network access in prose of documentationREADME.md:411Low confidence
  • Network access in prose of documentationREADME.md:412Low confidence
  • Network access in prose of documentationREADME.md:413Low confidence
  • Network access in prose of documentationREADME.md:414Low confidence
  • Network access in prose of documentationREADME.md:415Low confidence
  • Network access in prose of documentationREADME.md:416Low confidence
  • Access to secrets in prose of the SKILL.mdSKILL.md:12Low confidence
  • Network access in code of the SKILL.mdSKILL.md:35High confidence
  • Network access in code of the SKILL.mdSKILL.md:36High confidence

and 436 more

Only the first 500 facts are listed.

Works with

Agent compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeNativePath CLAUDE.md.claude/skills/<skill-name>/
CodexNativeManifest AGENTS.md.agents/skills/<skill-name>/
CursorCompatibleStandard SKILL.md SKILL.md.cursor/skills/<skill-name>/
Gemini CLICompatibleStandard SKILL.md SKILL.md.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md SKILL.md.github/skills/<skill-name>/
OpenCodeCompatibleStandard SKILL.md SKILL.md.opencode/skills/<skill-name>/
  • Native The repository ships a manifest, folder or frontmatter field for this agent.
  • Compatible A standard SKILL.md that this agent can read.
  • Unknown No evidence either way.

Derived automatically from paths, manifests and frontmatter. Not tested on each agent.