@jackwener/opencli 1.3.3 → 1.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/actions/setup-chrome/action.yml +5 -4
- package/.github/pull_request_template.md +3 -1
- package/.github/workflows/build-extension.yml +7 -1
- package/.github/workflows/ci.yml +46 -6
- package/.github/workflows/docs.yml +1 -1
- package/.github/workflows/e2e-headed.yml +36 -3
- package/.github/workflows/release.yml +1 -1
- package/.github/workflows/security.yml +0 -3
- package/CHANGELOG.md +78 -0
- package/CONTRIBUTING.md +6 -3
- package/PRIVACY.md +57 -0
- package/README.md +31 -4
- package/README.zh-CN.md +31 -4
- package/SKILL.md +107 -2
- package/TESTING.md +1 -0
- package/chatwise-opencli.ps1 +82 -0
- package/dist/analysis.d.ts +38 -0
- package/dist/analysis.js +166 -0
- package/dist/browser/cdp.d.ts +0 -4
- package/dist/browser/cdp.js +53 -41
- package/dist/browser/cdp.test.d.ts +1 -0
- package/dist/browser/cdp.test.js +52 -0
- package/dist/browser/dom-snapshot.d.ts +2 -2
- package/dist/browser/dom-snapshot.js +54 -1
- package/dist/browser/dom-snapshot.test.js +36 -0
- package/dist/browser/index.d.ts +2 -2
- package/dist/browser/index.js +1 -1
- package/dist/browser/mcp.d.ts +0 -2
- package/dist/browser/mcp.js +2 -3
- package/dist/browser/page.d.ts +4 -3
- package/dist/browser/page.js +34 -37
- package/dist/browser/stealth.d.ts +0 -2
- package/dist/browser/stealth.js +24 -9
- package/dist/browser.test.js +2 -2
- package/dist/build-manifest.js +15 -9
- package/dist/build-manifest.test.js +12 -0
- package/dist/cascade.js +4 -2
- package/dist/cli-manifest.json +1325 -256
- package/dist/cli.js +57 -29
- package/dist/clis/_shared/desktop-commands.d.ts +22 -0
- package/dist/clis/_shared/desktop-commands.js +108 -0
- package/dist/clis/antigravity/serve.js +5 -2
- package/dist/clis/apple-podcasts/search.js +2 -1
- package/dist/clis/arxiv/search.js +3 -3
- package/dist/clis/bbc/news.js +0 -1
- package/dist/clis/bilibili/dynamic.test.d.ts +1 -0
- package/dist/clis/bilibili/dynamic.test.js +68 -0
- package/dist/clis/bilibili/favorite.js +4 -2
- package/dist/clis/bilibili/following.js +3 -2
- package/dist/clis/bilibili/subtitle.js +8 -7
- package/dist/clis/bilibili/utils.js +2 -2
- package/dist/clis/boss/batchgreet.js +1 -1
- package/dist/clis/boss/chatlist.js +1 -1
- package/dist/clis/boss/chatmsg.js +1 -1
- package/dist/clis/boss/detail.js +1 -1
- package/dist/clis/boss/exchange.js +1 -1
- package/dist/clis/boss/greet.js +1 -1
- package/dist/clis/boss/invite.js +1 -1
- package/dist/clis/boss/joblist.js +1 -1
- package/dist/clis/boss/mark.js +4 -3
- package/dist/clis/boss/recommend.js +1 -1
- package/dist/clis/boss/resume.js +1 -1
- package/dist/clis/boss/search.js +1 -1
- package/dist/clis/boss/send.js +5 -4
- package/dist/clis/boss/stats.js +1 -1
- package/dist/clis/chatgpt/ask.js +4 -0
- package/dist/clis/chatgpt/new.js +5 -1
- package/dist/clis/chatgpt/read.js +5 -1
- package/dist/clis/chatgpt/send.js +2 -1
- package/dist/clis/chatgpt/status.js +5 -1
- package/dist/clis/chatwise/ask.js +8 -2
- package/dist/clis/chatwise/export.js +2 -0
- package/dist/clis/chatwise/history.js +2 -0
- package/dist/clis/chatwise/model.js +8 -3
- package/dist/clis/chatwise/new.js +3 -18
- package/dist/clis/chatwise/read.js +2 -0
- package/dist/clis/chatwise/screenshot.js +3 -27
- package/dist/clis/chatwise/send.js +8 -2
- package/dist/clis/chatwise/shared.d.ts +2 -0
- package/dist/clis/chatwise/shared.js +6 -0
- package/dist/clis/chatwise/status.js +3 -22
- package/dist/clis/codex/ask.js +6 -2
- package/dist/clis/codex/dump.js +2 -25
- package/dist/clis/codex/new.js +2 -25
- package/dist/clis/codex/screenshot.js +2 -27
- package/dist/clis/codex/send.js +6 -4
- package/dist/clis/codex/status.js +2 -22
- package/dist/clis/ctrip/search.js +0 -1
- package/dist/clis/cursor/ask.js +2 -1
- package/dist/clis/cursor/composer.js +2 -1
- package/dist/clis/cursor/dump.js +2 -25
- package/dist/clis/cursor/new.js +2 -18
- package/dist/clis/cursor/read.js +2 -1
- package/dist/clis/cursor/screenshot.js +1 -30
- package/dist/clis/cursor/send.js +2 -1
- package/dist/clis/cursor/status.js +2 -21
- package/dist/clis/dictionary/examples.yaml +25 -0
- package/dist/clis/dictionary/search.yaml +27 -0
- package/dist/clis/dictionary/synonyms.yaml +25 -0
- package/dist/clis/douban/book-hot.js +1 -1
- package/dist/clis/douban/movie-hot.js +1 -1
- package/dist/clis/douban/search.js +1 -1
- package/dist/clis/douban/utils.d.ts +4 -1
- package/dist/clis/douban/utils.js +156 -1
- package/dist/clis/doubao/ask.js +1 -1
- package/dist/clis/doubao/new.js +1 -1
- package/dist/clis/doubao/read.js +1 -1
- package/dist/clis/doubao/send.js +1 -1
- package/dist/clis/doubao/status.js +1 -1
- package/dist/clis/doubao-app/ask.js +1 -1
- package/dist/clis/doubao-app/new.js +1 -1
- package/dist/clis/doubao-app/read.js +1 -1
- package/dist/clis/doubao-app/send.js +1 -1
- package/dist/clis/douyin/_shared/browser-fetch.d.ts +10 -0
- package/dist/clis/douyin/_shared/browser-fetch.js +30 -0
- package/dist/clis/douyin/_shared/browser-fetch.test.d.ts +1 -0
- package/dist/clis/douyin/_shared/browser-fetch.test.js +31 -0
- package/dist/clis/douyin/_shared/creation-id.d.ts +1 -0
- package/dist/clis/douyin/_shared/creation-id.js +5 -0
- package/dist/clis/douyin/_shared/creation-id.test.d.ts +1 -0
- package/dist/clis/douyin/_shared/creation-id.test.js +22 -0
- package/dist/clis/douyin/_shared/imagex-upload.d.ts +20 -0
- package/dist/clis/douyin/_shared/imagex-upload.js +53 -0
- package/dist/clis/douyin/_shared/imagex-upload.test.d.ts +1 -0
- package/dist/clis/douyin/_shared/imagex-upload.test.js +87 -0
- package/dist/clis/douyin/_shared/sts2.d.ts +8 -0
- package/dist/clis/douyin/_shared/sts2.js +15 -0
- package/dist/clis/douyin/_shared/text-extra.d.ts +18 -0
- package/dist/clis/douyin/_shared/text-extra.js +15 -0
- package/dist/clis/douyin/_shared/text-extra.test.d.ts +1 -0
- package/dist/clis/douyin/_shared/text-extra.test.js +37 -0
- package/dist/clis/douyin/_shared/timing.d.ts +2 -0
- package/dist/clis/douyin/_shared/timing.js +22 -0
- package/dist/clis/douyin/_shared/timing.test.d.ts +1 -0
- package/dist/clis/douyin/_shared/timing.test.js +28 -0
- package/dist/clis/douyin/_shared/tos-upload-short-read.test.d.ts +11 -0
- package/dist/clis/douyin/_shared/tos-upload-short-read.test.js +83 -0
- package/dist/clis/douyin/_shared/tos-upload.d.ts +53 -0
- package/dist/clis/douyin/_shared/tos-upload.js +295 -0
- package/dist/clis/douyin/_shared/tos-upload.test.d.ts +1 -0
- package/dist/clis/douyin/_shared/tos-upload.test.js +229 -0
- package/dist/clis/douyin/_shared/transcode.d.ts +27 -0
- package/dist/clis/douyin/_shared/transcode.js +45 -0
- package/dist/clis/douyin/_shared/transcode.test.d.ts +1 -0
- package/dist/clis/douyin/_shared/transcode.test.js +93 -0
- package/dist/clis/douyin/_shared/types.d.ts +26 -0
- package/dist/clis/douyin/_shared/types.js +1 -0
- package/dist/clis/douyin/activities.d.ts +1 -0
- package/dist/clis/douyin/activities.js +20 -0
- package/dist/clis/douyin/activities.test.d.ts +1 -0
- package/dist/clis/douyin/activities.test.js +22 -0
- package/dist/clis/douyin/collections.d.ts +1 -0
- package/dist/clis/douyin/collections.js +22 -0
- package/dist/clis/douyin/collections.test.d.ts +1 -0
- package/dist/clis/douyin/collections.test.js +23 -0
- package/dist/clis/douyin/delete.d.ts +1 -0
- package/dist/clis/douyin/delete.js +18 -0
- package/dist/clis/douyin/delete.test.d.ts +1 -0
- package/dist/clis/douyin/delete.test.js +11 -0
- package/dist/clis/douyin/draft.d.ts +14 -0
- package/dist/clis/douyin/draft.js +237 -0
- package/dist/clis/douyin/draft.test.d.ts +1 -0
- package/dist/clis/douyin/draft.test.js +11 -0
- package/dist/clis/douyin/drafts.d.ts +1 -0
- package/dist/clis/douyin/drafts.js +23 -0
- package/dist/clis/douyin/drafts.test.d.ts +1 -0
- package/dist/clis/douyin/drafts.test.js +11 -0
- package/dist/clis/douyin/hashtag.d.ts +1 -0
- package/dist/clis/douyin/hashtag.js +45 -0
- package/dist/clis/douyin/hashtag.test.d.ts +1 -0
- package/dist/clis/douyin/hashtag.test.js +25 -0
- package/dist/clis/douyin/location.d.ts +1 -0
- package/dist/clis/douyin/location.js +24 -0
- package/dist/clis/douyin/location.test.d.ts +1 -0
- package/dist/clis/douyin/location.test.js +23 -0
- package/dist/clis/douyin/profile.d.ts +1 -0
- package/dist/clis/douyin/profile.js +28 -0
- package/dist/clis/douyin/profile.test.d.ts +1 -0
- package/dist/clis/douyin/profile.test.js +11 -0
- package/dist/clis/douyin/publish.d.ts +14 -0
- package/dist/clis/douyin/publish.js +288 -0
- package/dist/clis/douyin/publish.test.d.ts +1 -0
- package/dist/clis/douyin/publish.test.js +38 -0
- package/dist/clis/douyin/stats.d.ts +1 -0
- package/dist/clis/douyin/stats.js +27 -0
- package/dist/clis/douyin/stats.test.d.ts +1 -0
- package/dist/clis/douyin/stats.test.js +22 -0
- package/dist/clis/douyin/update.d.ts +1 -0
- package/dist/clis/douyin/update.js +31 -0
- package/dist/clis/douyin/update.test.d.ts +1 -0
- package/dist/clis/douyin/update.test.js +11 -0
- package/dist/clis/douyin/videos.d.ts +1 -0
- package/dist/clis/douyin/videos.js +34 -0
- package/dist/clis/douyin/videos.test.d.ts +1 -0
- package/dist/clis/douyin/videos.test.js +11 -0
- package/dist/clis/grok/ask.d.ts +4 -0
- package/dist/clis/grok/ask.js +28 -10
- package/dist/clis/grok/ask.test.js +18 -0
- package/dist/clis/hackernews/search.yaml +1 -1
- package/dist/clis/instagram/search.yaml +2 -1
- package/dist/clis/jd/item.d.ts +1 -0
- package/dist/clis/jd/item.js +96 -0
- package/dist/clis/jd/item.test.d.ts +1 -0
- package/dist/clis/jd/item.test.js +28 -0
- package/dist/clis/jike/feed.js +1 -1
- package/dist/clis/jike/search.js +1 -1
- package/dist/clis/linkedin/search.js +5 -4
- package/dist/clis/linkedin/timeline.d.ts +21 -0
- package/dist/clis/linkedin/timeline.js +503 -0
- package/dist/clis/linkedin/timeline.test.d.ts +1 -0
- package/dist/clis/linkedin/timeline.test.js +81 -0
- package/dist/clis/linux-do/search.yaml +3 -1
- package/dist/clis/medium/feed.js +1 -1
- package/dist/clis/medium/search.js +2 -2
- package/dist/clis/medium/user.js +1 -1
- package/dist/clis/medium/{shared.js → utils.js} +2 -1
- package/dist/clis/pixiv/detail.yaml +49 -0
- package/dist/clis/pixiv/download.d.ts +7 -0
- package/dist/clis/pixiv/download.js +78 -0
- package/dist/clis/pixiv/download.test.d.ts +1 -0
- package/dist/clis/pixiv/download.test.js +87 -0
- package/dist/clis/pixiv/illusts.d.ts +8 -0
- package/dist/clis/pixiv/illusts.js +65 -0
- package/dist/clis/pixiv/illusts.test.d.ts +1 -0
- package/dist/clis/pixiv/illusts.test.js +99 -0
- package/dist/clis/pixiv/ranking.yaml +53 -0
- package/dist/clis/pixiv/search.d.ts +6 -0
- package/dist/clis/pixiv/search.js +43 -0
- package/dist/clis/pixiv/search.test.d.ts +1 -0
- package/dist/clis/pixiv/search.test.js +83 -0
- package/dist/clis/pixiv/test-utils.d.ts +12 -0
- package/dist/clis/pixiv/test-utils.js +23 -0
- package/dist/clis/pixiv/user.yaml +46 -0
- package/dist/clis/pixiv/utils.d.ts +27 -0
- package/dist/clis/pixiv/utils.js +49 -0
- package/dist/clis/reddit/comment.js +2 -1
- package/dist/clis/reddit/read.js +4 -3
- package/dist/clis/reddit/read.test.d.ts +1 -0
- package/dist/clis/reddit/read.test.js +28 -0
- package/dist/clis/reddit/save.js +2 -1
- package/dist/clis/reddit/saved.js +7 -3
- package/dist/clis/reddit/subscribe.js +2 -1
- package/dist/clis/reddit/upvote.js +2 -1
- package/dist/clis/reddit/upvoted.js +7 -3
- package/dist/clis/reuters/search.js +0 -1
- package/dist/clis/sinablog/article.js +1 -1
- package/dist/clis/sinablog/hot.js +1 -1
- package/dist/clis/sinablog/user.js +1 -1
- package/dist/clis/substack/feed.js +1 -1
- package/dist/clis/substack/publication.js +1 -1
- package/dist/clis/substack/search.js +3 -2
- package/dist/clis/substack/{shared.js → utils.js} +3 -2
- package/dist/clis/tiktok/search.yaml +2 -1
- package/dist/clis/twitter/accept.js +2 -1
- package/dist/clis/twitter/article.js +4 -1
- package/dist/clis/twitter/block.js +2 -1
- package/dist/clis/twitter/bookmark.js +2 -1
- package/dist/clis/twitter/bookmarks.js +3 -2
- package/dist/clis/twitter/delete.js +2 -1
- package/dist/clis/twitter/follow.js +2 -1
- package/dist/clis/twitter/followers.js +3 -2
- package/dist/clis/twitter/following.js +3 -2
- package/dist/clis/twitter/hide-reply.js +2 -1
- package/dist/clis/twitter/like.js +2 -1
- package/dist/clis/twitter/notifications.js +2 -1
- package/dist/clis/twitter/post.js +2 -1
- package/dist/clis/twitter/profile.js +5 -2
- package/dist/clis/twitter/reply-dm.js +2 -1
- package/dist/clis/twitter/reply.js +2 -1
- package/dist/clis/twitter/search.js +32 -13
- package/dist/clis/twitter/search.test.d.ts +1 -0
- package/dist/clis/twitter/search.test.js +156 -0
- package/dist/clis/twitter/thread.js +2 -2
- package/dist/clis/twitter/timeline.js +3 -2
- package/dist/clis/twitter/trending.js +3 -2
- package/dist/clis/twitter/unblock.js +2 -1
- package/dist/clis/twitter/unbookmark.js +2 -1
- package/dist/clis/twitter/unfollow.js +2 -1
- package/dist/clis/v2ex/daily.js +3 -2
- package/dist/clis/v2ex/me.js +3 -2
- package/dist/clis/v2ex/notifications.js +4 -4
- package/dist/clis/web/read.d.ts +16 -0
- package/dist/clis/web/read.js +202 -0
- package/dist/clis/weibo/comments.d.ts +1 -0
- package/dist/clis/weibo/comments.js +53 -0
- package/dist/clis/weibo/feed.d.ts +1 -0
- package/dist/clis/weibo/feed.js +56 -0
- package/dist/clis/weibo/hot.js +0 -1
- package/dist/clis/weibo/me.d.ts +1 -0
- package/dist/clis/weibo/me.js +76 -0
- package/dist/clis/weibo/post.d.ts +1 -0
- package/dist/clis/weibo/post.js +75 -0
- package/dist/clis/weibo/user.d.ts +1 -0
- package/dist/clis/weibo/user.js +63 -0
- package/dist/clis/weibo/utils.d.ts +6 -0
- package/dist/clis/weibo/utils.js +30 -0
- package/dist/clis/weread/search.js +3 -2
- package/dist/clis/xueqiu/danjuan-utils.d.ts +55 -0
- package/dist/clis/xueqiu/danjuan-utils.js +126 -0
- package/dist/clis/xueqiu/danjuan-utils.test.d.ts +1 -0
- package/dist/clis/xueqiu/danjuan-utils.test.js +41 -0
- package/dist/clis/xueqiu/fund-holdings.d.ts +1 -0
- package/dist/clis/xueqiu/fund-holdings.js +28 -0
- package/dist/clis/xueqiu/fund-snapshot.d.ts +1 -0
- package/dist/clis/xueqiu/fund-snapshot.js +25 -0
- package/dist/clis/xueqiu/search.yaml +2 -1
- package/dist/clis/yahoo-finance/quote.js +0 -1
- package/dist/clis/youtube/channel.d.ts +1 -0
- package/dist/clis/youtube/channel.js +150 -0
- package/dist/clis/youtube/comments.d.ts +1 -0
- package/dist/clis/youtube/comments.js +95 -0
- package/dist/clis/youtube/search.js +0 -1
- package/dist/clis/youtube/transcript.js +5 -4
- package/dist/clis/youtube/video.js +3 -2
- package/dist/clis/zhihu/search.yaml +2 -1
- package/dist/daemon.js +7 -3
- package/dist/discovery.js +11 -10
- package/dist/doctor.js +2 -1
- package/dist/download/index.d.ts +4 -12
- package/dist/download/index.js +33 -12
- package/dist/download/index.test.js +79 -2
- package/dist/download/media-download.js +4 -2
- package/dist/engine.test.js +76 -4
- package/dist/execution.d.ts +1 -9
- package/dist/execution.js +56 -46
- package/dist/explore.js +12 -111
- package/dist/external-clis.yaml +0 -25
- package/dist/external.js +7 -5
- package/dist/external.test.js +4 -0
- package/dist/generate.d.ts +0 -9
- package/dist/generate.js +4 -20
- package/dist/hooks.d.ts +46 -0
- package/dist/hooks.js +56 -0
- package/dist/hooks.test.d.ts +4 -0
- package/dist/hooks.test.js +92 -0
- package/dist/interceptor.js +70 -23
- package/dist/main.js +2 -0
- package/dist/output.js +12 -6
- package/dist/pipeline/executor.js +1 -1
- package/dist/pipeline/steps/browser.js +1 -3
- package/dist/pipeline/steps/download.js +42 -26
- package/dist/pipeline/steps/download.test.d.ts +1 -0
- package/dist/pipeline/steps/download.test.js +101 -0
- package/dist/pipeline/steps/fetch.js +40 -22
- package/dist/pipeline/steps/fetch.test.d.ts +1 -0
- package/dist/pipeline/steps/fetch.test.js +123 -0
- package/dist/pipeline/steps/transform.js +2 -6
- package/dist/pipeline/template.js +66 -52
- package/dist/pipeline/template.test.js +28 -0
- package/dist/pipeline/transform.test.js +18 -0
- package/dist/plugin.d.ts +40 -1
- package/dist/plugin.js +214 -17
- package/dist/plugin.test.d.ts +1 -1
- package/dist/plugin.test.js +219 -3
- package/dist/record.js +6 -98
- package/dist/registry-api.d.ts +2 -0
- package/dist/registry-api.js +1 -0
- package/dist/registry.d.ts +5 -2
- package/dist/registry.js +1 -2
- package/dist/runtime.d.ts +0 -1
- package/dist/runtime.js +14 -4
- package/dist/snapshotFormatter.d.ts +7 -14
- package/dist/snapshotFormatter.js +38 -78
- package/dist/utils.d.ts +9 -0
- package/dist/utils.js +29 -0
- package/dist/validate.js +3 -5
- package/dist/weread-search-regression.test.d.ts +1 -0
- package/dist/weread-search-regression.test.js +39 -0
- package/dist/yaml-schema.d.ts +26 -0
- package/dist/yaml-schema.js +5 -0
- package/docs/.vitepress/config.mts +16 -0
- package/docs/adapters/browser/dictionary.md +27 -0
- package/docs/adapters/browser/douyin.md +75 -0
- package/docs/adapters/browser/jd.md +27 -0
- package/docs/adapters/browser/linkedin.md +6 -0
- package/docs/adapters/browser/pixiv.md +92 -0
- package/docs/adapters/browser/twitter.md +6 -0
- package/docs/adapters/browser/web.md +30 -0
- package/docs/adapters/browser/xueqiu.md +27 -9
- package/docs/adapters/index.md +9 -2
- package/docs/comparison.md +125 -0
- package/docs/developer/contributing.md +21 -2
- package/docs/developer/testing.md +14 -8
- package/docs/developer/ts-adapter.md +18 -0
- package/docs/developer/yaml-adapter.md +16 -0
- package/docs/guide/plugins.md +10 -0
- package/docs/zh/guide/plugins.md +10 -0
- package/extension/dist/background.js +100 -35
- package/extension/manifest.json +6 -2
- package/extension/package.json +1 -1
- package/extension/popup.html +84 -0
- package/extension/popup.js +25 -0
- package/extension/src/background.test.ts +46 -1
- package/extension/src/background.ts +128 -34
- package/extension/src/cdp.ts +9 -9
- package/package.json +3 -2
- package/scripts/check-doc-coverage.sh +2 -0
- package/src/analysis.ts +170 -0
- package/src/browser/cdp.test.ts +66 -0
- package/src/browser/cdp.ts +59 -44
- package/src/browser/dom-snapshot.test.ts +42 -0
- package/src/browser/dom-snapshot.ts +56 -3
- package/src/browser/index.ts +2 -2
- package/src/browser/mcp.ts +2 -4
- package/src/browser/page.ts +34 -37
- package/src/browser/stealth.ts +24 -10
- package/src/browser.test.ts +2 -2
- package/src/build-manifest.test.ts +14 -0
- package/src/build-manifest.ts +13 -31
- package/src/cascade.ts +5 -3
- package/src/cli.ts +66 -34
- package/src/clis/_shared/desktop-commands.ts +121 -0
- package/src/clis/antigravity/serve.ts +6 -3
- package/src/clis/apple-podcasts/search.ts +2 -1
- package/src/clis/arxiv/search.ts +3 -3
- package/src/clis/bbc/news.ts +0 -1
- package/src/clis/bilibili/dynamic.test.ts +79 -0
- package/src/clis/bilibili/favorite.ts +5 -2
- package/src/clis/bilibili/following.ts +3 -2
- package/src/clis/bilibili/subtitle.ts +8 -7
- package/src/clis/bilibili/utils.ts +2 -2
- package/src/clis/boss/batchgreet.ts +1 -1
- package/src/clis/boss/chatlist.ts +1 -1
- package/src/clis/boss/chatmsg.ts +1 -1
- package/src/clis/boss/detail.ts +1 -1
- package/src/clis/boss/exchange.ts +1 -1
- package/src/clis/boss/greet.ts +1 -1
- package/src/clis/boss/invite.ts +1 -1
- package/src/clis/boss/joblist.ts +1 -1
- package/src/clis/boss/mark.ts +4 -3
- package/src/clis/boss/recommend.ts +1 -1
- package/src/clis/boss/resume.ts +1 -1
- package/src/clis/boss/search.ts +1 -1
- package/src/clis/boss/send.ts +5 -4
- package/src/clis/boss/stats.ts +1 -1
- package/src/clis/chatgpt/ask.ts +5 -0
- package/src/clis/chatgpt/new.ts +7 -2
- package/src/clis/chatgpt/read.ts +7 -2
- package/src/clis/chatgpt/send.ts +3 -2
- package/src/clis/chatgpt/status.ts +6 -1
- package/src/clis/chatwise/ask.ts +7 -2
- package/src/clis/chatwise/export.ts +2 -0
- package/src/clis/chatwise/history.ts +2 -0
- package/src/clis/chatwise/model.ts +7 -3
- package/src/clis/chatwise/new.ts +3 -20
- package/src/clis/chatwise/read.ts +2 -0
- package/src/clis/chatwise/screenshot.ts +3 -32
- package/src/clis/chatwise/send.ts +7 -2
- package/src/clis/chatwise/shared.ts +8 -0
- package/src/clis/chatwise/status.ts +3 -24
- package/src/clis/codex/ask.ts +5 -2
- package/src/clis/codex/dump.ts +2 -27
- package/src/clis/codex/new.ts +2 -28
- package/src/clis/codex/screenshot.ts +2 -32
- package/src/clis/codex/send.ts +5 -4
- package/src/clis/codex/status.ts +2 -24
- package/src/clis/ctrip/search.ts +0 -1
- package/src/clis/cursor/ask.ts +2 -1
- package/src/clis/cursor/composer.ts +2 -1
- package/src/clis/cursor/dump.ts +2 -27
- package/src/clis/cursor/new.ts +2 -20
- package/src/clis/cursor/read.ts +2 -1
- package/src/clis/cursor/screenshot.ts +1 -36
- package/src/clis/cursor/send.ts +2 -1
- package/src/clis/cursor/status.ts +2 -22
- package/src/clis/dictionary/examples.yaml +25 -0
- package/src/clis/dictionary/search.yaml +27 -0
- package/src/clis/dictionary/synonyms.yaml +25 -0
- package/src/clis/douban/book-hot.ts +1 -1
- package/src/clis/douban/movie-hot.ts +1 -1
- package/src/clis/douban/search.ts +1 -1
- package/src/clis/douban/utils.ts +165 -1
- package/src/clis/doubao/ask.ts +1 -1
- package/src/clis/doubao/new.ts +1 -1
- package/src/clis/doubao/read.ts +1 -1
- package/src/clis/doubao/send.ts +1 -1
- package/src/clis/doubao/status.ts +1 -1
- package/src/clis/doubao-app/ask.ts +1 -1
- package/src/clis/doubao-app/new.ts +1 -1
- package/src/clis/doubao-app/read.ts +1 -1
- package/src/clis/doubao-app/send.ts +1 -1
- package/src/clis/douyin/_shared/browser-fetch.test.ts +38 -0
- package/src/clis/douyin/_shared/browser-fetch.ts +45 -0
- package/src/clis/douyin/_shared/creation-id.test.ts +26 -0
- package/src/clis/douyin/_shared/creation-id.ts +8 -0
- package/src/clis/douyin/_shared/imagex-upload.test.ts +113 -0
- package/src/clis/douyin/_shared/imagex-upload.ts +76 -0
- package/src/clis/douyin/_shared/sts2.ts +20 -0
- package/src/clis/douyin/_shared/text-extra.test.ts +42 -0
- package/src/clis/douyin/_shared/text-extra.ts +33 -0
- package/src/clis/douyin/_shared/timing.test.ts +38 -0
- package/src/clis/douyin/_shared/timing.ts +22 -0
- package/src/clis/douyin/_shared/tos-upload-short-read.test.ts +102 -0
- package/src/clis/douyin/_shared/tos-upload.test.ts +281 -0
- package/src/clis/douyin/_shared/tos-upload.ts +444 -0
- package/src/clis/douyin/_shared/transcode.test.ts +117 -0
- package/src/clis/douyin/_shared/transcode.ts +78 -0
- package/src/clis/douyin/_shared/types.ts +29 -0
- package/src/clis/douyin/activities.test.ts +25 -0
- package/src/clis/douyin/activities.ts +23 -0
- package/src/clis/douyin/collections.test.ts +26 -0
- package/src/clis/douyin/collections.ts +25 -0
- package/src/clis/douyin/delete.test.ts +12 -0
- package/src/clis/douyin/delete.ts +20 -0
- package/src/clis/douyin/draft.test.ts +12 -0
- package/src/clis/douyin/draft.ts +282 -0
- package/src/clis/douyin/drafts.test.ts +12 -0
- package/src/clis/douyin/drafts.ts +27 -0
- package/src/clis/douyin/hashtag.test.ts +28 -0
- package/src/clis/douyin/hashtag.ts +56 -0
- package/src/clis/douyin/location.test.ts +26 -0
- package/src/clis/douyin/location.ts +27 -0
- package/src/clis/douyin/profile.test.ts +12 -0
- package/src/clis/douyin/profile.ts +37 -0
- package/src/clis/douyin/publish.test.ts +45 -0
- package/src/clis/douyin/publish.ts +340 -0
- package/src/clis/douyin/stats.test.ts +25 -0
- package/src/clis/douyin/stats.ts +30 -0
- package/src/clis/douyin/update.test.ts +12 -0
- package/src/clis/douyin/update.ts +43 -0
- package/src/clis/douyin/videos.test.ts +12 -0
- package/src/clis/douyin/videos.ts +49 -0
- package/src/clis/grok/ask.test.ts +25 -0
- package/src/clis/grok/ask.ts +25 -12
- package/src/clis/hackernews/search.yaml +1 -1
- package/src/clis/instagram/search.yaml +2 -1
- package/src/clis/jd/item.test.ts +35 -0
- package/src/clis/jd/item.ts +101 -0
- package/src/clis/jike/feed.ts +1 -1
- package/src/clis/jike/search.ts +1 -1
- package/src/clis/linkedin/search.ts +5 -4
- package/src/clis/linkedin/timeline.test.ts +99 -0
- package/src/clis/linkedin/timeline.ts +532 -0
- package/src/clis/linux-do/search.yaml +3 -1
- package/src/clis/medium/feed.ts +1 -1
- package/src/clis/medium/search.ts +2 -2
- package/src/clis/medium/user.ts +1 -1
- package/src/clis/medium/{shared.ts → utils.ts} +2 -1
- package/src/clis/pixiv/detail.yaml +49 -0
- package/src/clis/pixiv/download.test.ts +114 -0
- package/src/clis/pixiv/download.ts +91 -0
- package/src/clis/pixiv/illusts.test.ts +115 -0
- package/src/clis/pixiv/illusts.ts +78 -0
- package/src/clis/pixiv/ranking.yaml +53 -0
- package/src/clis/pixiv/search.test.ts +97 -0
- package/src/clis/pixiv/search.ts +53 -0
- package/src/clis/pixiv/test-utils.ts +29 -0
- package/src/clis/pixiv/user.yaml +46 -0
- package/src/clis/pixiv/utils.ts +62 -0
- package/src/clis/reddit/comment.ts +2 -1
- package/src/clis/reddit/read.test.ts +34 -0
- package/src/clis/reddit/read.ts +4 -3
- package/src/clis/reddit/save.ts +2 -1
- package/src/clis/reddit/saved.ts +6 -2
- package/src/clis/reddit/subscribe.ts +2 -1
- package/src/clis/reddit/upvote.ts +2 -1
- package/src/clis/reddit/upvoted.ts +6 -2
- package/src/clis/reuters/search.ts +0 -1
- package/src/clis/sinablog/article.ts +1 -1
- package/src/clis/sinablog/hot.ts +1 -1
- package/src/clis/sinablog/user.ts +1 -1
- package/src/clis/substack/feed.ts +1 -1
- package/src/clis/substack/publication.ts +1 -1
- package/src/clis/substack/search.ts +3 -2
- package/src/clis/substack/{shared.ts → utils.ts} +3 -2
- package/src/clis/tiktok/search.yaml +2 -1
- package/src/clis/twitter/accept.ts +2 -1
- package/src/clis/twitter/article.ts +3 -1
- package/src/clis/twitter/block.ts +2 -1
- package/src/clis/twitter/bookmark.ts +2 -1
- package/src/clis/twitter/bookmarks.ts +3 -2
- package/src/clis/twitter/delete.ts +2 -1
- package/src/clis/twitter/follow.ts +2 -1
- package/src/clis/twitter/followers.ts +3 -2
- package/src/clis/twitter/following.ts +3 -2
- package/src/clis/twitter/hide-reply.ts +2 -1
- package/src/clis/twitter/like.ts +2 -1
- package/src/clis/twitter/notifications.ts +2 -1
- package/src/clis/twitter/post.ts +2 -1
- package/src/clis/twitter/profile.ts +4 -2
- package/src/clis/twitter/reply-dm.ts +2 -1
- package/src/clis/twitter/reply.ts +2 -1
- package/src/clis/twitter/search.test.ts +180 -0
- package/src/clis/twitter/search.ts +40 -14
- package/src/clis/twitter/thread.ts +2 -2
- package/src/clis/twitter/timeline.ts +3 -2
- package/src/clis/twitter/trending.ts +3 -2
- package/src/clis/twitter/unblock.ts +2 -1
- package/src/clis/twitter/unbookmark.ts +2 -1
- package/src/clis/twitter/unfollow.ts +2 -1
- package/src/clis/v2ex/daily.ts +3 -2
- package/src/clis/v2ex/me.ts +3 -2
- package/src/clis/v2ex/notifications.ts +3 -4
- package/src/clis/web/read.ts +210 -0
- package/src/clis/weibo/comments.ts +54 -0
- package/src/clis/weibo/feed.ts +57 -0
- package/src/clis/weibo/hot.ts +0 -1
- package/src/clis/weibo/me.ts +77 -0
- package/src/clis/weibo/post.ts +77 -0
- package/src/clis/weibo/user.ts +64 -0
- package/src/clis/weibo/utils.ts +32 -0
- package/src/clis/weread/search.ts +3 -2
- package/src/clis/xueqiu/danjuan-utils.test.ts +49 -0
- package/src/clis/xueqiu/danjuan-utils.ts +176 -0
- package/src/clis/xueqiu/fund-holdings.ts +32 -0
- package/src/clis/xueqiu/fund-snapshot.ts +27 -0
- package/src/clis/xueqiu/search.yaml +2 -1
- package/src/clis/yahoo-finance/quote.ts +0 -1
- package/src/clis/youtube/channel.ts +155 -0
- package/src/clis/youtube/comments.ts +97 -0
- package/src/clis/youtube/search.ts +0 -1
- package/src/clis/youtube/transcript.ts +5 -4
- package/src/clis/youtube/video.ts +3 -2
- package/src/clis/zhihu/search.yaml +2 -1
- package/src/daemon.ts +5 -4
- package/src/discovery.ts +12 -34
- package/src/doctor.ts +3 -2
- package/src/download/index.test.ts +93 -2
- package/src/download/index.ts +44 -23
- package/src/download/media-download.ts +5 -3
- package/src/engine.test.ts +84 -3
- package/src/execution.ts +62 -46
- package/src/explore.ts +21 -90
- package/src/external-clis.yaml +0 -25
- package/src/external.test.ts +9 -0
- package/src/external.ts +12 -10
- package/src/generate.ts +4 -41
- package/src/hooks.test.ts +126 -0
- package/src/hooks.ts +90 -0
- package/src/interceptor.ts +73 -23
- package/src/main.ts +2 -0
- package/src/output.ts +14 -6
- package/src/pipeline/executor.ts +1 -1
- package/src/pipeline/steps/browser.ts +1 -3
- package/src/pipeline/steps/download.test.ts +136 -0
- package/src/pipeline/steps/download.ts +47 -34
- package/src/pipeline/steps/fetch.test.ts +179 -0
- package/src/pipeline/steps/fetch.ts +39 -23
- package/src/pipeline/steps/transform.ts +2 -6
- package/src/pipeline/template.test.ts +28 -0
- package/src/pipeline/template.ts +67 -79
- package/src/pipeline/transform.test.ts +20 -0
- package/src/plugin.test.ts +251 -3
- package/src/plugin.ts +265 -21
- package/src/record.ts +12 -84
- package/src/registry-api.ts +2 -0
- package/src/registry.ts +7 -4
- package/src/runtime.ts +14 -4
- package/src/snapshotFormatter.ts +43 -121
- package/src/utils.ts +39 -0
- package/src/validate.ts +3 -5
- package/src/weread-search-regression.test.ts +44 -0
- package/src/yaml-schema.ts +28 -0
- package/tests/e2e/browser-auth.test.ts +25 -0
- package/tests/e2e/browser-public-extended.test.ts +162 -0
- package/tests/e2e/browser-public.test.ts +7 -146
- package/tests/e2e/plugin-management.test.ts +137 -0
- package/tests/e2e/public-commands.test.ts +34 -1
- package/vitest.config.ts +33 -8
- package/.github/workflows/pkg-pr-new.yml +0 -30
- package/dist/clis/douban/shared.d.ts +0 -4
- package/dist/clis/douban/shared.js +0 -155
- package/src/clis/douban/shared.ts +0 -165
- /package/dist/clis/boss/{common.d.ts → utils.d.ts} +0 -0
- /package/dist/clis/boss/{common.js → utils.js} +0 -0
- /package/dist/clis/doubao/{common.d.ts → utils.d.ts} +0 -0
- /package/dist/clis/doubao/{common.js → utils.js} +0 -0
- /package/dist/clis/doubao-app/{common.d.ts → utils.d.ts} +0 -0
- /package/dist/clis/doubao-app/{common.js → utils.js} +0 -0
- /package/dist/clis/jike/{shared.d.ts → utils.d.ts} +0 -0
- /package/dist/clis/jike/{shared.js → utils.js} +0 -0
- /package/dist/clis/medium/{shared.d.ts → utils.d.ts} +0 -0
- /package/dist/clis/sinablog/{shared.d.ts → utils.d.ts} +0 -0
- /package/dist/clis/sinablog/{shared.js → utils.js} +0 -0
- /package/dist/clis/substack/{shared.d.ts → utils.d.ts} +0 -0
- /package/src/clis/boss/{common.ts → utils.ts} +0 -0
- /package/src/clis/doubao/{common.ts → utils.ts} +0 -0
- /package/src/clis/doubao-app/{common.ts → utils.ts} +0 -0
- /package/src/clis/jike/{shared.ts → utils.ts} +0 -0
- /package/src/clis/sinablog/{shared.ts → utils.ts} +0 -0
package/dist/cli-manifest.json
CHANGED
|
@@ -1,4 +1,27 @@
|
|
|
1
1
|
[
|
|
2
|
+
{
|
|
3
|
+
"site": "_shared",
|
|
4
|
+
"name": "desktop-commands",
|
|
5
|
+
"description": "Capture a snapshot of the current ${label} window (DOM + Accessibility tree)",
|
|
6
|
+
"strategy": "ui",
|
|
7
|
+
"browser": true,
|
|
8
|
+
"args": [
|
|
9
|
+
{
|
|
10
|
+
"name": "output",
|
|
11
|
+
"type": "str",
|
|
12
|
+
"default": "/tmp/${site",
|
|
13
|
+
"required": false,
|
|
14
|
+
"help": "Output file path (default: /tmp/${site}-snapshot.txt)"
|
|
15
|
+
}
|
|
16
|
+
],
|
|
17
|
+
"type": "ts",
|
|
18
|
+
"modulePath": "_shared/desktop-commands.js",
|
|
19
|
+
"domain": "localhost",
|
|
20
|
+
"columns": [
|
|
21
|
+
"Status",
|
|
22
|
+
"File"
|
|
23
|
+
]
|
|
24
|
+
},
|
|
2
25
|
{
|
|
3
26
|
"site": "antigravity",
|
|
4
27
|
"name": "dump",
|
|
@@ -196,7 +219,8 @@
|
|
|
196
219
|
"title",
|
|
197
220
|
"author",
|
|
198
221
|
"episodes",
|
|
199
|
-
"genre"
|
|
222
|
+
"genre",
|
|
223
|
+
"url"
|
|
200
224
|
]
|
|
201
225
|
},
|
|
202
226
|
{
|
|
@@ -284,7 +308,8 @@
|
|
|
284
308
|
"id",
|
|
285
309
|
"title",
|
|
286
310
|
"authors",
|
|
287
|
-
"published"
|
|
311
|
+
"published",
|
|
312
|
+
"url"
|
|
288
313
|
]
|
|
289
314
|
},
|
|
290
315
|
{
|
|
@@ -1952,20 +1977,6 @@
|
|
|
1952
1977
|
"Model"
|
|
1953
1978
|
]
|
|
1954
1979
|
},
|
|
1955
|
-
{
|
|
1956
|
-
"site": "chatwise",
|
|
1957
|
-
"name": "new",
|
|
1958
|
-
"description": "Start a new conversation in ChatWise",
|
|
1959
|
-
"strategy": "ui",
|
|
1960
|
-
"browser": true,
|
|
1961
|
-
"args": [],
|
|
1962
|
-
"type": "ts",
|
|
1963
|
-
"modulePath": "chatwise/new.js",
|
|
1964
|
-
"domain": "localhost",
|
|
1965
|
-
"columns": [
|
|
1966
|
-
"Status"
|
|
1967
|
-
]
|
|
1968
|
-
},
|
|
1969
1980
|
{
|
|
1970
1981
|
"site": "chatwise",
|
|
1971
1982
|
"name": "read",
|
|
@@ -1980,29 +1991,6 @@
|
|
|
1980
1991
|
"Content"
|
|
1981
1992
|
]
|
|
1982
1993
|
},
|
|
1983
|
-
{
|
|
1984
|
-
"site": "chatwise",
|
|
1985
|
-
"name": "screenshot",
|
|
1986
|
-
"description": "Capture a snapshot of the current ChatWise window (DOM + Accessibility tree)",
|
|
1987
|
-
"strategy": "ui",
|
|
1988
|
-
"browser": true,
|
|
1989
|
-
"args": [
|
|
1990
|
-
{
|
|
1991
|
-
"name": "output",
|
|
1992
|
-
"type": "str",
|
|
1993
|
-
"default": "/tmp/chatwise-snapshot)",
|
|
1994
|
-
"required": false,
|
|
1995
|
-
"help": "Output file path (default: /tmp/chatwise-snapshot)"
|
|
1996
|
-
}
|
|
1997
|
-
],
|
|
1998
|
-
"type": "ts",
|
|
1999
|
-
"modulePath": "chatwise/screenshot.js",
|
|
2000
|
-
"domain": "localhost",
|
|
2001
|
-
"columns": [
|
|
2002
|
-
"Status",
|
|
2003
|
-
"File"
|
|
2004
|
-
]
|
|
2005
|
-
},
|
|
2006
1994
|
{
|
|
2007
1995
|
"site": "chatwise",
|
|
2008
1996
|
"name": "send",
|
|
@@ -2026,22 +2014,6 @@
|
|
|
2026
2014
|
"InjectedText"
|
|
2027
2015
|
]
|
|
2028
2016
|
},
|
|
2029
|
-
{
|
|
2030
|
-
"site": "chatwise",
|
|
2031
|
-
"name": "status",
|
|
2032
|
-
"description": "Check active CDP connection to ChatWise Desktop",
|
|
2033
|
-
"strategy": "ui",
|
|
2034
|
-
"browser": true,
|
|
2035
|
-
"args": [],
|
|
2036
|
-
"type": "ts",
|
|
2037
|
-
"modulePath": "chatwise/status.js",
|
|
2038
|
-
"domain": "localhost",
|
|
2039
|
-
"columns": [
|
|
2040
|
-
"Status",
|
|
2041
|
-
"Url",
|
|
2042
|
-
"Title"
|
|
2043
|
-
]
|
|
2044
|
-
},
|
|
2045
2017
|
{
|
|
2046
2018
|
"site": "codex",
|
|
2047
2019
|
"name": "ask",
|
|
@@ -2072,21 +2044,6 @@
|
|
|
2072
2044
|
"Text"
|
|
2073
2045
|
]
|
|
2074
2046
|
},
|
|
2075
|
-
{
|
|
2076
|
-
"site": "codex",
|
|
2077
|
-
"name": "dump",
|
|
2078
|
-
"description": "Dump the DOM and Accessibility tree of Codex for reverse-engineering",
|
|
2079
|
-
"strategy": "ui",
|
|
2080
|
-
"browser": true,
|
|
2081
|
-
"args": [],
|
|
2082
|
-
"type": "ts",
|
|
2083
|
-
"modulePath": "codex/dump.js",
|
|
2084
|
-
"domain": "localhost",
|
|
2085
|
-
"columns": [
|
|
2086
|
-
"action",
|
|
2087
|
-
"files"
|
|
2088
|
-
]
|
|
2089
|
-
},
|
|
2090
2047
|
{
|
|
2091
2048
|
"site": "codex",
|
|
2092
2049
|
"name": "export",
|
|
@@ -2164,21 +2121,6 @@
|
|
|
2164
2121
|
"Model"
|
|
2165
2122
|
]
|
|
2166
2123
|
},
|
|
2167
|
-
{
|
|
2168
|
-
"site": "codex",
|
|
2169
|
-
"name": "new",
|
|
2170
|
-
"description": "Start a new Codex conversation thread / isolated workspace",
|
|
2171
|
-
"strategy": "ui",
|
|
2172
|
-
"browser": true,
|
|
2173
|
-
"args": [],
|
|
2174
|
-
"type": "ts",
|
|
2175
|
-
"modulePath": "codex/new.js",
|
|
2176
|
-
"domain": "localhost",
|
|
2177
|
-
"columns": [
|
|
2178
|
-
"Status",
|
|
2179
|
-
"Action"
|
|
2180
|
-
]
|
|
2181
|
-
},
|
|
2182
2124
|
{
|
|
2183
2125
|
"site": "codex",
|
|
2184
2126
|
"name": "read",
|
|
@@ -2193,29 +2135,6 @@
|
|
|
2193
2135
|
"Content"
|
|
2194
2136
|
]
|
|
2195
2137
|
},
|
|
2196
|
-
{
|
|
2197
|
-
"site": "codex",
|
|
2198
|
-
"name": "screenshot",
|
|
2199
|
-
"description": "Capture a snapshot of the current Codex window (DOM + Accessibility tree)",
|
|
2200
|
-
"strategy": "ui",
|
|
2201
|
-
"browser": true,
|
|
2202
|
-
"args": [
|
|
2203
|
-
{
|
|
2204
|
-
"name": "output",
|
|
2205
|
-
"type": "str",
|
|
2206
|
-
"default": "/tmp/codex-snapshot.txt)",
|
|
2207
|
-
"required": false,
|
|
2208
|
-
"help": "Output file path (default: /tmp/codex-snapshot.txt)"
|
|
2209
|
-
}
|
|
2210
|
-
],
|
|
2211
|
-
"type": "ts",
|
|
2212
|
-
"modulePath": "codex/screenshot.js",
|
|
2213
|
-
"domain": "localhost",
|
|
2214
|
-
"columns": [
|
|
2215
|
-
"Status",
|
|
2216
|
-
"File"
|
|
2217
|
-
]
|
|
2218
|
-
},
|
|
2219
2138
|
{
|
|
2220
2139
|
"site": "codex",
|
|
2221
2140
|
"name": "send",
|
|
@@ -2239,22 +2158,6 @@
|
|
|
2239
2158
|
"InjectedText"
|
|
2240
2159
|
]
|
|
2241
2160
|
},
|
|
2242
|
-
{
|
|
2243
|
-
"site": "codex",
|
|
2244
|
-
"name": "status",
|
|
2245
|
-
"description": "Check active CDP connection to OpenAI Codex App",
|
|
2246
|
-
"strategy": "ui",
|
|
2247
|
-
"browser": true,
|
|
2248
|
-
"args": [],
|
|
2249
|
-
"type": "ts",
|
|
2250
|
-
"modulePath": "codex/status.js",
|
|
2251
|
-
"domain": "localhost",
|
|
2252
|
-
"columns": [
|
|
2253
|
-
"Status",
|
|
2254
|
-
"Url",
|
|
2255
|
-
"Title"
|
|
2256
|
-
]
|
|
2257
|
-
},
|
|
2258
2161
|
{
|
|
2259
2162
|
"site": "coupang",
|
|
2260
2163
|
"name": "add-to-cart",
|
|
@@ -2424,21 +2327,6 @@
|
|
|
2424
2327
|
"InjectedText"
|
|
2425
2328
|
]
|
|
2426
2329
|
},
|
|
2427
|
-
{
|
|
2428
|
-
"site": "cursor",
|
|
2429
|
-
"name": "dump",
|
|
2430
|
-
"description": "Dump the DOM and Accessibility tree of Cursor for reverse-engineering",
|
|
2431
|
-
"strategy": "ui",
|
|
2432
|
-
"browser": true,
|
|
2433
|
-
"args": [],
|
|
2434
|
-
"type": "ts",
|
|
2435
|
-
"modulePath": "cursor/dump.js",
|
|
2436
|
-
"domain": "localhost",
|
|
2437
|
-
"columns": [
|
|
2438
|
-
"action",
|
|
2439
|
-
"files"
|
|
2440
|
-
]
|
|
2441
|
-
},
|
|
2442
2330
|
{
|
|
2443
2331
|
"site": "cursor",
|
|
2444
2332
|
"name": "export",
|
|
@@ -2515,20 +2403,6 @@
|
|
|
2515
2403
|
"Model"
|
|
2516
2404
|
]
|
|
2517
2405
|
},
|
|
2518
|
-
{
|
|
2519
|
-
"site": "cursor",
|
|
2520
|
-
"name": "new",
|
|
2521
|
-
"description": "Start a new Cursor chat or Composer session",
|
|
2522
|
-
"strategy": "ui",
|
|
2523
|
-
"browser": true,
|
|
2524
|
-
"args": [],
|
|
2525
|
-
"type": "ts",
|
|
2526
|
-
"modulePath": "cursor/new.js",
|
|
2527
|
-
"domain": "localhost",
|
|
2528
|
-
"columns": [
|
|
2529
|
-
"Status"
|
|
2530
|
-
]
|
|
2531
|
-
},
|
|
2532
2406
|
{
|
|
2533
2407
|
"site": "cursor",
|
|
2534
2408
|
"name": "read",
|
|
@@ -2544,29 +2418,6 @@
|
|
|
2544
2418
|
"Text"
|
|
2545
2419
|
]
|
|
2546
2420
|
},
|
|
2547
|
-
{
|
|
2548
|
-
"site": "cursor",
|
|
2549
|
-
"name": "screenshot",
|
|
2550
|
-
"description": "Capture a snapshot of the current ${site} window (DOM + Accessibility tree)",
|
|
2551
|
-
"strategy": "ui",
|
|
2552
|
-
"browser": true,
|
|
2553
|
-
"args": [
|
|
2554
|
-
{
|
|
2555
|
-
"name": "output",
|
|
2556
|
-
"type": "str",
|
|
2557
|
-
"default": "/tmp/${site",
|
|
2558
|
-
"required": false,
|
|
2559
|
-
"help": "Output file path (default: /tmp/${site}-snapshot.txt)"
|
|
2560
|
-
}
|
|
2561
|
-
],
|
|
2562
|
-
"type": "ts",
|
|
2563
|
-
"modulePath": "cursor/screenshot.js",
|
|
2564
|
-
"domain": "localhost",
|
|
2565
|
-
"columns": [
|
|
2566
|
-
"Status",
|
|
2567
|
-
"File"
|
|
2568
|
-
]
|
|
2569
|
-
},
|
|
2570
2421
|
{
|
|
2571
2422
|
"site": "cursor",
|
|
2572
2423
|
"name": "send",
|
|
@@ -2590,22 +2441,6 @@
|
|
|
2590
2441
|
"InjectedText"
|
|
2591
2442
|
]
|
|
2592
2443
|
},
|
|
2593
|
-
{
|
|
2594
|
-
"site": "cursor",
|
|
2595
|
-
"name": "status",
|
|
2596
|
-
"description": "Check active CDP connection to Cursor AI Editor",
|
|
2597
|
-
"strategy": "ui",
|
|
2598
|
-
"browser": true,
|
|
2599
|
-
"args": [],
|
|
2600
|
-
"type": "ts",
|
|
2601
|
-
"modulePath": "cursor/status.js",
|
|
2602
|
-
"domain": "localhost",
|
|
2603
|
-
"columns": [
|
|
2604
|
-
"Status",
|
|
2605
|
-
"Url",
|
|
2606
|
-
"Title"
|
|
2607
|
-
]
|
|
2608
|
-
},
|
|
2609
2444
|
{
|
|
2610
2445
|
"site": "devto",
|
|
2611
2446
|
"name": "tag",
|
|
@@ -2760,65 +2595,183 @@
|
|
|
2760
2595
|
"type": "yaml"
|
|
2761
2596
|
},
|
|
2762
2597
|
{
|
|
2763
|
-
"site": "
|
|
2764
|
-
"name": "
|
|
2765
|
-
"description": "
|
|
2766
|
-
"
|
|
2767
|
-
"
|
|
2768
|
-
"
|
|
2769
|
-
"type": "ts",
|
|
2770
|
-
"modulePath": "discord-app/channels.js",
|
|
2771
|
-
"domain": "localhost",
|
|
2772
|
-
"columns": [
|
|
2773
|
-
"Index",
|
|
2774
|
-
"Channel",
|
|
2775
|
-
"Type"
|
|
2776
|
-
]
|
|
2777
|
-
},
|
|
2778
|
-
{
|
|
2779
|
-
"site": "discord-app",
|
|
2780
|
-
"name": "members",
|
|
2781
|
-
"description": "List online members in the current Discord channel",
|
|
2782
|
-
"strategy": "ui",
|
|
2783
|
-
"browser": true,
|
|
2784
|
-
"args": [],
|
|
2785
|
-
"type": "ts",
|
|
2786
|
-
"modulePath": "discord-app/members.js",
|
|
2787
|
-
"domain": "localhost",
|
|
2788
|
-
"columns": [
|
|
2789
|
-
"Index",
|
|
2790
|
-
"Name",
|
|
2791
|
-
"Status"
|
|
2792
|
-
]
|
|
2793
|
-
},
|
|
2794
|
-
{
|
|
2795
|
-
"site": "discord-app",
|
|
2796
|
-
"name": "read",
|
|
2797
|
-
"description": "Read recent messages from the active Discord channel",
|
|
2798
|
-
"strategy": "ui",
|
|
2799
|
-
"browser": true,
|
|
2598
|
+
"site": "dictionary",
|
|
2599
|
+
"name": "examples",
|
|
2600
|
+
"description": "Read real-world example sentences utilizing the word",
|
|
2601
|
+
"domain": "api.dictionaryapi.dev",
|
|
2602
|
+
"strategy": "public",
|
|
2603
|
+
"browser": false,
|
|
2800
2604
|
"args": [
|
|
2801
2605
|
{
|
|
2802
|
-
"name": "
|
|
2803
|
-
"type": "
|
|
2804
|
-
"
|
|
2805
|
-
"
|
|
2806
|
-
"help": "
|
|
2606
|
+
"name": "word",
|
|
2607
|
+
"type": "string",
|
|
2608
|
+
"required": true,
|
|
2609
|
+
"positional": true,
|
|
2610
|
+
"help": "Word to get example sentences for"
|
|
2807
2611
|
}
|
|
2808
2612
|
],
|
|
2809
|
-
"type": "ts",
|
|
2810
|
-
"modulePath": "discord-app/read.js",
|
|
2811
|
-
"domain": "localhost",
|
|
2812
2613
|
"columns": [
|
|
2813
|
-
"
|
|
2814
|
-
"
|
|
2815
|
-
|
|
2816
|
-
|
|
2614
|
+
"word",
|
|
2615
|
+
"example"
|
|
2616
|
+
],
|
|
2617
|
+
"pipeline": [
|
|
2618
|
+
{
|
|
2619
|
+
"fetch": {
|
|
2620
|
+
"url": "https://api.dictionaryapi.dev/api/v2/entries/en/${{ args.word | urlencode }}"
|
|
2621
|
+
}
|
|
2622
|
+
},
|
|
2623
|
+
{
|
|
2624
|
+
"map": {
|
|
2625
|
+
"word": "${{ item.word }}",
|
|
2626
|
+
"example": "${{ (() => { if (item.meanings) { for (const m of item.meanings) { if (m.definitions) { for (const d of m.definitions) { if (d.example) return d.example; } } } } return 'No example found in API.'; })() }}"
|
|
2627
|
+
}
|
|
2628
|
+
},
|
|
2629
|
+
{
|
|
2630
|
+
"limit": 1
|
|
2631
|
+
}
|
|
2632
|
+
],
|
|
2633
|
+
"type": "yaml"
|
|
2817
2634
|
},
|
|
2818
2635
|
{
|
|
2819
|
-
"site": "
|
|
2636
|
+
"site": "dictionary",
|
|
2820
2637
|
"name": "search",
|
|
2821
|
-
"description": "Search
|
|
2638
|
+
"description": "Search the Free Dictionary API for definitions, parts of speech, and pronunciations.",
|
|
2639
|
+
"domain": "api.dictionaryapi.dev",
|
|
2640
|
+
"strategy": "public",
|
|
2641
|
+
"browser": false,
|
|
2642
|
+
"args": [
|
|
2643
|
+
{
|
|
2644
|
+
"name": "word",
|
|
2645
|
+
"type": "string",
|
|
2646
|
+
"required": true,
|
|
2647
|
+
"positional": true,
|
|
2648
|
+
"help": "Word to define (e.g., serendipity)"
|
|
2649
|
+
}
|
|
2650
|
+
],
|
|
2651
|
+
"columns": [
|
|
2652
|
+
"word",
|
|
2653
|
+
"phonetic",
|
|
2654
|
+
"type",
|
|
2655
|
+
"definition"
|
|
2656
|
+
],
|
|
2657
|
+
"pipeline": [
|
|
2658
|
+
{
|
|
2659
|
+
"fetch": {
|
|
2660
|
+
"url": "https://api.dictionaryapi.dev/api/v2/entries/en/${{ args.word | urlencode }}"
|
|
2661
|
+
}
|
|
2662
|
+
},
|
|
2663
|
+
{
|
|
2664
|
+
"map": {
|
|
2665
|
+
"word": "${{ item.word }}",
|
|
2666
|
+
"phonetic": "${{ (() => { if (item.phonetic) return item.phonetic; if (item.phonetics) { for (const p of item.phonetics) { if (p.text) return p.text; } } return ''; })() }}",
|
|
2667
|
+
"type": "${{ (() => { if (item.meanings && item.meanings[0] && item.meanings[0].partOfSpeech) return item.meanings[0].partOfSpeech; return 'N/A'; })() }}",
|
|
2668
|
+
"definition": "${{ (() => { if (item.meanings && item.meanings[0] && item.meanings[0].definitions && item.meanings[0].definitions[0] && item.meanings[0].definitions[0].definition) return item.meanings[0].definitions[0].definition; return 'No definition found in API.'; })() }}"
|
|
2669
|
+
}
|
|
2670
|
+
},
|
|
2671
|
+
{
|
|
2672
|
+
"limit": 1
|
|
2673
|
+
}
|
|
2674
|
+
],
|
|
2675
|
+
"type": "yaml"
|
|
2676
|
+
},
|
|
2677
|
+
{
|
|
2678
|
+
"site": "dictionary",
|
|
2679
|
+
"name": "synonyms",
|
|
2680
|
+
"description": "Find synonyms for a specific word",
|
|
2681
|
+
"domain": "api.dictionaryapi.dev",
|
|
2682
|
+
"strategy": "public",
|
|
2683
|
+
"browser": false,
|
|
2684
|
+
"args": [
|
|
2685
|
+
{
|
|
2686
|
+
"name": "word",
|
|
2687
|
+
"type": "string",
|
|
2688
|
+
"required": true,
|
|
2689
|
+
"positional": true,
|
|
2690
|
+
"help": "Word to find synonyms for (e.g., serendipity)"
|
|
2691
|
+
}
|
|
2692
|
+
],
|
|
2693
|
+
"columns": [
|
|
2694
|
+
"word",
|
|
2695
|
+
"synonyms"
|
|
2696
|
+
],
|
|
2697
|
+
"pipeline": [
|
|
2698
|
+
{
|
|
2699
|
+
"fetch": {
|
|
2700
|
+
"url": "https://api.dictionaryapi.dev/api/v2/entries/en/${{ args.word | urlencode }}"
|
|
2701
|
+
}
|
|
2702
|
+
},
|
|
2703
|
+
{
|
|
2704
|
+
"map": {
|
|
2705
|
+
"word": "${{ item.word }}",
|
|
2706
|
+
"synonyms": "${{ (() => { const s = new Set(); if (item.meanings) { for (const m of item.meanings) { if (m.synonyms) { for (const syn of m.synonyms) s.add(syn); } if (m.definitions) { for (const d of m.definitions) { if (d.synonyms) { for (const syn of d.synonyms) s.add(syn); } } } } } const arr = Array.from(s); return arr.length > 0 ? arr.slice(0, 5).join(', ') : 'No synonyms found in API.'; })() }}"
|
|
2707
|
+
}
|
|
2708
|
+
},
|
|
2709
|
+
{
|
|
2710
|
+
"limit": 1
|
|
2711
|
+
}
|
|
2712
|
+
],
|
|
2713
|
+
"type": "yaml"
|
|
2714
|
+
},
|
|
2715
|
+
{
|
|
2716
|
+
"site": "discord-app",
|
|
2717
|
+
"name": "channels",
|
|
2718
|
+
"description": "List channels in the current Discord server",
|
|
2719
|
+
"strategy": "ui",
|
|
2720
|
+
"browser": true,
|
|
2721
|
+
"args": [],
|
|
2722
|
+
"type": "ts",
|
|
2723
|
+
"modulePath": "discord-app/channels.js",
|
|
2724
|
+
"domain": "localhost",
|
|
2725
|
+
"columns": [
|
|
2726
|
+
"Index",
|
|
2727
|
+
"Channel",
|
|
2728
|
+
"Type"
|
|
2729
|
+
]
|
|
2730
|
+
},
|
|
2731
|
+
{
|
|
2732
|
+
"site": "discord-app",
|
|
2733
|
+
"name": "members",
|
|
2734
|
+
"description": "List online members in the current Discord channel",
|
|
2735
|
+
"strategy": "ui",
|
|
2736
|
+
"browser": true,
|
|
2737
|
+
"args": [],
|
|
2738
|
+
"type": "ts",
|
|
2739
|
+
"modulePath": "discord-app/members.js",
|
|
2740
|
+
"domain": "localhost",
|
|
2741
|
+
"columns": [
|
|
2742
|
+
"Index",
|
|
2743
|
+
"Name",
|
|
2744
|
+
"Status"
|
|
2745
|
+
]
|
|
2746
|
+
},
|
|
2747
|
+
{
|
|
2748
|
+
"site": "discord-app",
|
|
2749
|
+
"name": "read",
|
|
2750
|
+
"description": "Read recent messages from the active Discord channel",
|
|
2751
|
+
"strategy": "ui",
|
|
2752
|
+
"browser": true,
|
|
2753
|
+
"args": [
|
|
2754
|
+
{
|
|
2755
|
+
"name": "count",
|
|
2756
|
+
"type": "str",
|
|
2757
|
+
"default": "20)",
|
|
2758
|
+
"required": false,
|
|
2759
|
+
"help": "Number of messages to read (default: 20)"
|
|
2760
|
+
}
|
|
2761
|
+
],
|
|
2762
|
+
"type": "ts",
|
|
2763
|
+
"modulePath": "discord-app/read.js",
|
|
2764
|
+
"domain": "localhost",
|
|
2765
|
+
"columns": [
|
|
2766
|
+
"Author",
|
|
2767
|
+
"Time",
|
|
2768
|
+
"Message"
|
|
2769
|
+
]
|
|
2770
|
+
},
|
|
2771
|
+
{
|
|
2772
|
+
"site": "discord-app",
|
|
2773
|
+
"name": "search",
|
|
2774
|
+
"description": "Search messages in the current Discord server/channel (Cmd+F)",
|
|
2822
2775
|
"strategy": "ui",
|
|
2823
2776
|
"browser": true,
|
|
2824
2777
|
"args": [
|
|
@@ -3394,6 +3347,472 @@
|
|
|
3394
3347
|
"Title"
|
|
3395
3348
|
]
|
|
3396
3349
|
},
|
|
3350
|
+
{
|
|
3351
|
+
"site": "douyin",
|
|
3352
|
+
"name": "activities",
|
|
3353
|
+
"description": "官方活动列表",
|
|
3354
|
+
"strategy": "cookie",
|
|
3355
|
+
"browser": true,
|
|
3356
|
+
"args": [],
|
|
3357
|
+
"type": "ts",
|
|
3358
|
+
"modulePath": "douyin/activities.js",
|
|
3359
|
+
"domain": "creator.douyin.com",
|
|
3360
|
+
"columns": [
|
|
3361
|
+
"activity_id",
|
|
3362
|
+
"title",
|
|
3363
|
+
"end_time"
|
|
3364
|
+
]
|
|
3365
|
+
},
|
|
3366
|
+
{
|
|
3367
|
+
"site": "douyin",
|
|
3368
|
+
"name": "collections",
|
|
3369
|
+
"description": "合集列表",
|
|
3370
|
+
"strategy": "cookie",
|
|
3371
|
+
"browser": true,
|
|
3372
|
+
"args": [
|
|
3373
|
+
{
|
|
3374
|
+
"name": "limit",
|
|
3375
|
+
"type": "int",
|
|
3376
|
+
"default": 20,
|
|
3377
|
+
"required": false,
|
|
3378
|
+
"help": ""
|
|
3379
|
+
}
|
|
3380
|
+
],
|
|
3381
|
+
"type": "ts",
|
|
3382
|
+
"modulePath": "douyin/collections.js",
|
|
3383
|
+
"domain": "creator.douyin.com",
|
|
3384
|
+
"columns": [
|
|
3385
|
+
"mix_id",
|
|
3386
|
+
"name",
|
|
3387
|
+
"item_count"
|
|
3388
|
+
]
|
|
3389
|
+
},
|
|
3390
|
+
{
|
|
3391
|
+
"site": "douyin",
|
|
3392
|
+
"name": "delete",
|
|
3393
|
+
"description": "删除作品",
|
|
3394
|
+
"strategy": "cookie",
|
|
3395
|
+
"browser": true,
|
|
3396
|
+
"args": [
|
|
3397
|
+
{
|
|
3398
|
+
"name": "aweme_id",
|
|
3399
|
+
"type": "str",
|
|
3400
|
+
"required": true,
|
|
3401
|
+
"positional": true,
|
|
3402
|
+
"help": "作品 ID"
|
|
3403
|
+
}
|
|
3404
|
+
],
|
|
3405
|
+
"type": "ts",
|
|
3406
|
+
"modulePath": "douyin/delete.js",
|
|
3407
|
+
"domain": "creator.douyin.com",
|
|
3408
|
+
"columns": [
|
|
3409
|
+
"status"
|
|
3410
|
+
]
|
|
3411
|
+
},
|
|
3412
|
+
{
|
|
3413
|
+
"site": "douyin",
|
|
3414
|
+
"name": "draft",
|
|
3415
|
+
"description": "上传视频并保存为草稿",
|
|
3416
|
+
"strategy": "cookie",
|
|
3417
|
+
"browser": true,
|
|
3418
|
+
"args": [
|
|
3419
|
+
{
|
|
3420
|
+
"name": "video",
|
|
3421
|
+
"type": "str",
|
|
3422
|
+
"required": true,
|
|
3423
|
+
"positional": true,
|
|
3424
|
+
"help": "视频文件路径"
|
|
3425
|
+
},
|
|
3426
|
+
{
|
|
3427
|
+
"name": "title",
|
|
3428
|
+
"type": "str",
|
|
3429
|
+
"required": true,
|
|
3430
|
+
"help": "视频标题(≤30字)"
|
|
3431
|
+
},
|
|
3432
|
+
{
|
|
3433
|
+
"name": "caption",
|
|
3434
|
+
"type": "str",
|
|
3435
|
+
"default": "",
|
|
3436
|
+
"required": false,
|
|
3437
|
+
"help": "正文内容(≤1000字,支持 #话题)"
|
|
3438
|
+
},
|
|
3439
|
+
{
|
|
3440
|
+
"name": "cover",
|
|
3441
|
+
"type": "str",
|
|
3442
|
+
"default": "",
|
|
3443
|
+
"required": false,
|
|
3444
|
+
"help": "封面图片路径"
|
|
3445
|
+
},
|
|
3446
|
+
{
|
|
3447
|
+
"name": "visibility",
|
|
3448
|
+
"type": "str",
|
|
3449
|
+
"default": "public",
|
|
3450
|
+
"required": false,
|
|
3451
|
+
"help": "",
|
|
3452
|
+
"choices": [
|
|
3453
|
+
"public",
|
|
3454
|
+
"friends",
|
|
3455
|
+
"private"
|
|
3456
|
+
]
|
|
3457
|
+
}
|
|
3458
|
+
],
|
|
3459
|
+
"type": "ts",
|
|
3460
|
+
"modulePath": "douyin/draft.js",
|
|
3461
|
+
"domain": "creator.douyin.com",
|
|
3462
|
+
"columns": [
|
|
3463
|
+
"status",
|
|
3464
|
+
"aweme_id"
|
|
3465
|
+
]
|
|
3466
|
+
},
|
|
3467
|
+
{
|
|
3468
|
+
"site": "douyin",
|
|
3469
|
+
"name": "drafts",
|
|
3470
|
+
"description": "获取草稿列表",
|
|
3471
|
+
"strategy": "cookie",
|
|
3472
|
+
"browser": true,
|
|
3473
|
+
"args": [
|
|
3474
|
+
{
|
|
3475
|
+
"name": "limit",
|
|
3476
|
+
"type": "int",
|
|
3477
|
+
"default": 20,
|
|
3478
|
+
"required": false,
|
|
3479
|
+
"help": ""
|
|
3480
|
+
}
|
|
3481
|
+
],
|
|
3482
|
+
"type": "ts",
|
|
3483
|
+
"modulePath": "douyin/drafts.js",
|
|
3484
|
+
"domain": "creator.douyin.com",
|
|
3485
|
+
"columns": [
|
|
3486
|
+
"aweme_id",
|
|
3487
|
+
"title",
|
|
3488
|
+
"create_time"
|
|
3489
|
+
]
|
|
3490
|
+
},
|
|
3491
|
+
{
|
|
3492
|
+
"site": "douyin",
|
|
3493
|
+
"name": "hashtag",
|
|
3494
|
+
"description": "话题搜索 / AI推荐 / 热点词",
|
|
3495
|
+
"strategy": "cookie",
|
|
3496
|
+
"browser": true,
|
|
3497
|
+
"args": [
|
|
3498
|
+
{
|
|
3499
|
+
"name": "action",
|
|
3500
|
+
"type": "str",
|
|
3501
|
+
"required": true,
|
|
3502
|
+
"positional": true,
|
|
3503
|
+
"help": "search=关键词搜索 suggest=AI推荐 hot=热点词",
|
|
3504
|
+
"choices": [
|
|
3505
|
+
"search",
|
|
3506
|
+
"suggest",
|
|
3507
|
+
"hot"
|
|
3508
|
+
]
|
|
3509
|
+
},
|
|
3510
|
+
{
|
|
3511
|
+
"name": "keyword",
|
|
3512
|
+
"type": "str",
|
|
3513
|
+
"default": "",
|
|
3514
|
+
"required": false,
|
|
3515
|
+
"help": "搜索关键词(search/hot 使用)"
|
|
3516
|
+
},
|
|
3517
|
+
{
|
|
3518
|
+
"name": "cover",
|
|
3519
|
+
"type": "str",
|
|
3520
|
+
"default": "",
|
|
3521
|
+
"required": false,
|
|
3522
|
+
"help": "封面 URI(suggest 使用)"
|
|
3523
|
+
},
|
|
3524
|
+
{
|
|
3525
|
+
"name": "limit",
|
|
3526
|
+
"type": "int",
|
|
3527
|
+
"default": 10,
|
|
3528
|
+
"required": false,
|
|
3529
|
+
"help": ""
|
|
3530
|
+
}
|
|
3531
|
+
],
|
|
3532
|
+
"type": "ts",
|
|
3533
|
+
"modulePath": "douyin/hashtag.js",
|
|
3534
|
+
"domain": "creator.douyin.com",
|
|
3535
|
+
"columns": [
|
|
3536
|
+
"name",
|
|
3537
|
+
"id",
|
|
3538
|
+
"view_count"
|
|
3539
|
+
]
|
|
3540
|
+
},
|
|
3541
|
+
{
|
|
3542
|
+
"site": "douyin",
|
|
3543
|
+
"name": "location",
|
|
3544
|
+
"description": "地理位置 POI 搜索",
|
|
3545
|
+
"strategy": "cookie",
|
|
3546
|
+
"browser": true,
|
|
3547
|
+
"args": [
|
|
3548
|
+
{
|
|
3549
|
+
"name": "query",
|
|
3550
|
+
"type": "str",
|
|
3551
|
+
"required": true,
|
|
3552
|
+
"positional": true,
|
|
3553
|
+
"help": "地名关键词"
|
|
3554
|
+
},
|
|
3555
|
+
{
|
|
3556
|
+
"name": "limit",
|
|
3557
|
+
"type": "int",
|
|
3558
|
+
"default": 20,
|
|
3559
|
+
"required": false,
|
|
3560
|
+
"help": ""
|
|
3561
|
+
}
|
|
3562
|
+
],
|
|
3563
|
+
"type": "ts",
|
|
3564
|
+
"modulePath": "douyin/location.js",
|
|
3565
|
+
"domain": "creator.douyin.com",
|
|
3566
|
+
"columns": [
|
|
3567
|
+
"poi_id",
|
|
3568
|
+
"name",
|
|
3569
|
+
"address",
|
|
3570
|
+
"city"
|
|
3571
|
+
]
|
|
3572
|
+
},
|
|
3573
|
+
{
|
|
3574
|
+
"site": "douyin",
|
|
3575
|
+
"name": "profile",
|
|
3576
|
+
"description": "获取账号信息",
|
|
3577
|
+
"strategy": "cookie",
|
|
3578
|
+
"browser": true,
|
|
3579
|
+
"args": [],
|
|
3580
|
+
"type": "ts",
|
|
3581
|
+
"modulePath": "douyin/profile.js",
|
|
3582
|
+
"domain": "creator.douyin.com",
|
|
3583
|
+
"columns": [
|
|
3584
|
+
"uid",
|
|
3585
|
+
"nickname",
|
|
3586
|
+
"follower_count",
|
|
3587
|
+
"following_count",
|
|
3588
|
+
"aweme_count"
|
|
3589
|
+
]
|
|
3590
|
+
},
|
|
3591
|
+
{
|
|
3592
|
+
"site": "douyin",
|
|
3593
|
+
"name": "publish",
|
|
3594
|
+
"description": "定时发布视频到抖音(必须设置 2h ~ 14天后的发布时间)",
|
|
3595
|
+
"strategy": "cookie",
|
|
3596
|
+
"browser": true,
|
|
3597
|
+
"args": [
|
|
3598
|
+
{
|
|
3599
|
+
"name": "video",
|
|
3600
|
+
"type": "str",
|
|
3601
|
+
"required": true,
|
|
3602
|
+
"positional": true,
|
|
3603
|
+
"help": "视频文件路径"
|
|
3604
|
+
},
|
|
3605
|
+
{
|
|
3606
|
+
"name": "title",
|
|
3607
|
+
"type": "str",
|
|
3608
|
+
"required": true,
|
|
3609
|
+
"help": "视频标题(≤30字)"
|
|
3610
|
+
},
|
|
3611
|
+
{
|
|
3612
|
+
"name": "schedule",
|
|
3613
|
+
"type": "str",
|
|
3614
|
+
"required": true,
|
|
3615
|
+
"help": "定时发布时间(ISO8601 或 Unix 秒,2h ~ 14天后)"
|
|
3616
|
+
},
|
|
3617
|
+
{
|
|
3618
|
+
"name": "caption",
|
|
3619
|
+
"type": "str",
|
|
3620
|
+
"default": "",
|
|
3621
|
+
"required": false,
|
|
3622
|
+
"help": "正文内容(≤1000字,支持 #话题)"
|
|
3623
|
+
},
|
|
3624
|
+
{
|
|
3625
|
+
"name": "cover",
|
|
3626
|
+
"type": "str",
|
|
3627
|
+
"default": "",
|
|
3628
|
+
"required": false,
|
|
3629
|
+
"help": "封面图片路径(不提供时使用视频截帧)"
|
|
3630
|
+
},
|
|
3631
|
+
{
|
|
3632
|
+
"name": "visibility",
|
|
3633
|
+
"type": "str",
|
|
3634
|
+
"default": "public",
|
|
3635
|
+
"required": false,
|
|
3636
|
+
"help": "",
|
|
3637
|
+
"choices": [
|
|
3638
|
+
"public",
|
|
3639
|
+
"friends",
|
|
3640
|
+
"private"
|
|
3641
|
+
]
|
|
3642
|
+
},
|
|
3643
|
+
{
|
|
3644
|
+
"name": "allow_download",
|
|
3645
|
+
"type": "bool",
|
|
3646
|
+
"default": false,
|
|
3647
|
+
"required": false,
|
|
3648
|
+
"help": "允许下载"
|
|
3649
|
+
},
|
|
3650
|
+
{
|
|
3651
|
+
"name": "collection",
|
|
3652
|
+
"type": "str",
|
|
3653
|
+
"default": "",
|
|
3654
|
+
"required": false,
|
|
3655
|
+
"help": "合集 ID"
|
|
3656
|
+
},
|
|
3657
|
+
{
|
|
3658
|
+
"name": "activity",
|
|
3659
|
+
"type": "str",
|
|
3660
|
+
"default": "",
|
|
3661
|
+
"required": false,
|
|
3662
|
+
"help": "活动 ID"
|
|
3663
|
+
},
|
|
3664
|
+
{
|
|
3665
|
+
"name": "poi_id",
|
|
3666
|
+
"type": "str",
|
|
3667
|
+
"default": "",
|
|
3668
|
+
"required": false,
|
|
3669
|
+
"help": "地理位置 ID"
|
|
3670
|
+
},
|
|
3671
|
+
{
|
|
3672
|
+
"name": "poi_name",
|
|
3673
|
+
"type": "str",
|
|
3674
|
+
"default": "",
|
|
3675
|
+
"required": false,
|
|
3676
|
+
"help": "地理位置名称"
|
|
3677
|
+
},
|
|
3678
|
+
{
|
|
3679
|
+
"name": "hotspot",
|
|
3680
|
+
"type": "str",
|
|
3681
|
+
"default": "",
|
|
3682
|
+
"required": false,
|
|
3683
|
+
"help": "关联热点词"
|
|
3684
|
+
},
|
|
3685
|
+
{
|
|
3686
|
+
"name": "no_safety_check",
|
|
3687
|
+
"type": "bool",
|
|
3688
|
+
"default": false,
|
|
3689
|
+
"required": false,
|
|
3690
|
+
"help": "跳过内容安全检测"
|
|
3691
|
+
},
|
|
3692
|
+
{
|
|
3693
|
+
"name": "sync_toutiao",
|
|
3694
|
+
"type": "bool",
|
|
3695
|
+
"default": false,
|
|
3696
|
+
"required": false,
|
|
3697
|
+
"help": "同步发布到头条"
|
|
3698
|
+
}
|
|
3699
|
+
],
|
|
3700
|
+
"type": "ts",
|
|
3701
|
+
"modulePath": "douyin/publish.js",
|
|
3702
|
+
"domain": "creator.douyin.com",
|
|
3703
|
+
"columns": [
|
|
3704
|
+
"status",
|
|
3705
|
+
"aweme_id",
|
|
3706
|
+
"url",
|
|
3707
|
+
"publish_time"
|
|
3708
|
+
]
|
|
3709
|
+
},
|
|
3710
|
+
{
|
|
3711
|
+
"site": "douyin",
|
|
3712
|
+
"name": "stats",
|
|
3713
|
+
"description": "作品数据分析",
|
|
3714
|
+
"strategy": "cookie",
|
|
3715
|
+
"browser": true,
|
|
3716
|
+
"args": [
|
|
3717
|
+
{
|
|
3718
|
+
"name": "aweme_id",
|
|
3719
|
+
"type": "str",
|
|
3720
|
+
"required": true,
|
|
3721
|
+
"positional": true,
|
|
3722
|
+
"help": ""
|
|
3723
|
+
}
|
|
3724
|
+
],
|
|
3725
|
+
"type": "ts",
|
|
3726
|
+
"modulePath": "douyin/stats.js",
|
|
3727
|
+
"domain": "creator.douyin.com",
|
|
3728
|
+
"columns": [
|
|
3729
|
+
"metric",
|
|
3730
|
+
"value"
|
|
3731
|
+
]
|
|
3732
|
+
},
|
|
3733
|
+
{
|
|
3734
|
+
"site": "douyin",
|
|
3735
|
+
"name": "update",
|
|
3736
|
+
"description": "更新视频信息",
|
|
3737
|
+
"strategy": "cookie",
|
|
3738
|
+
"browser": true,
|
|
3739
|
+
"args": [
|
|
3740
|
+
{
|
|
3741
|
+
"name": "aweme_id",
|
|
3742
|
+
"type": "str",
|
|
3743
|
+
"required": true,
|
|
3744
|
+
"positional": true,
|
|
3745
|
+
"help": ""
|
|
3746
|
+
},
|
|
3747
|
+
{
|
|
3748
|
+
"name": "reschedule",
|
|
3749
|
+
"type": "str",
|
|
3750
|
+
"default": "",
|
|
3751
|
+
"required": false,
|
|
3752
|
+
"help": "新的发布时间(ISO8601 或 Unix 秒)"
|
|
3753
|
+
},
|
|
3754
|
+
{
|
|
3755
|
+
"name": "caption",
|
|
3756
|
+
"type": "str",
|
|
3757
|
+
"default": "",
|
|
3758
|
+
"required": false,
|
|
3759
|
+
"help": "新的正文内容"
|
|
3760
|
+
}
|
|
3761
|
+
],
|
|
3762
|
+
"type": "ts",
|
|
3763
|
+
"modulePath": "douyin/update.js",
|
|
3764
|
+
"domain": "creator.douyin.com",
|
|
3765
|
+
"columns": [
|
|
3766
|
+
"status"
|
|
3767
|
+
]
|
|
3768
|
+
},
|
|
3769
|
+
{
|
|
3770
|
+
"site": "douyin",
|
|
3771
|
+
"name": "videos",
|
|
3772
|
+
"description": "获取作品列表",
|
|
3773
|
+
"strategy": "cookie",
|
|
3774
|
+
"browser": true,
|
|
3775
|
+
"args": [
|
|
3776
|
+
{
|
|
3777
|
+
"name": "limit",
|
|
3778
|
+
"type": "int",
|
|
3779
|
+
"default": 20,
|
|
3780
|
+
"required": false,
|
|
3781
|
+
"help": "每页数量"
|
|
3782
|
+
},
|
|
3783
|
+
{
|
|
3784
|
+
"name": "page",
|
|
3785
|
+
"type": "int",
|
|
3786
|
+
"default": 1,
|
|
3787
|
+
"required": false,
|
|
3788
|
+
"help": "页码"
|
|
3789
|
+
},
|
|
3790
|
+
{
|
|
3791
|
+
"name": "status",
|
|
3792
|
+
"type": "str",
|
|
3793
|
+
"default": "all",
|
|
3794
|
+
"required": false,
|
|
3795
|
+
"help": "",
|
|
3796
|
+
"choices": [
|
|
3797
|
+
"all",
|
|
3798
|
+
"published",
|
|
3799
|
+
"reviewing",
|
|
3800
|
+
"scheduled"
|
|
3801
|
+
]
|
|
3802
|
+
}
|
|
3803
|
+
],
|
|
3804
|
+
"type": "ts",
|
|
3805
|
+
"modulePath": "douyin/videos.js",
|
|
3806
|
+
"domain": "creator.douyin.com",
|
|
3807
|
+
"columns": [
|
|
3808
|
+
"aweme_id",
|
|
3809
|
+
"title",
|
|
3810
|
+
"status",
|
|
3811
|
+
"play_count",
|
|
3812
|
+
"digg_count",
|
|
3813
|
+
"create_time"
|
|
3814
|
+
]
|
|
3815
|
+
},
|
|
3397
3816
|
{
|
|
3398
3817
|
"site": "facebook",
|
|
3399
3818
|
"name": "add-friend",
|
|
@@ -4208,7 +4627,8 @@
|
|
|
4208
4627
|
"title",
|
|
4209
4628
|
"score",
|
|
4210
4629
|
"author",
|
|
4211
|
-
"comments"
|
|
4630
|
+
"comments",
|
|
4631
|
+
"url"
|
|
4212
4632
|
],
|
|
4213
4633
|
"pipeline": [
|
|
4214
4634
|
{
|
|
@@ -4807,14 +5227,15 @@
|
|
|
4807
5227
|
"username",
|
|
4808
5228
|
"name",
|
|
4809
5229
|
"verified",
|
|
4810
|
-
"private"
|
|
5230
|
+
"private",
|
|
5231
|
+
"url"
|
|
4811
5232
|
],
|
|
4812
5233
|
"pipeline": [
|
|
4813
5234
|
{
|
|
4814
5235
|
"navigate": "https://www.instagram.com"
|
|
4815
5236
|
},
|
|
4816
5237
|
{
|
|
4817
|
-
"evaluate": "(async () => {\n const query = ${{ args.query | json }};\n const limit = ${{ args.limit }};\n const res = await fetch(\n 'https://www.instagram.com/web/search/topsearch/?query=' + encodeURIComponent(query) + '&context=user',\n {\n credentials: 'include',\n headers: { 'X-IG-App-ID': '936619743392459' }\n }\n );\n if (!res.ok) throw new Error('HTTP ' + res.status + ' - make sure you are logged in to Instagram');\n const data = await res.json();\n const users = (data?.users || []).slice(0, limit);\n return users.map((item, i) => ({\n rank: i + 1,\n username: item.user?.username || '',\n name: item.user?.full_name || '',\n verified: item.user?.is_verified ? 'Yes' : 'No',\n private: item.user?.is_private ? 'Yes' : 'No',\n }));\n})()\n"
|
|
5238
|
+
"evaluate": "(async () => {\n const query = ${{ args.query | json }};\n const limit = ${{ args.limit }};\n const res = await fetch(\n 'https://www.instagram.com/web/search/topsearch/?query=' + encodeURIComponent(query) + '&context=user',\n {\n credentials: 'include',\n headers: { 'X-IG-App-ID': '936619743392459' }\n }\n );\n if (!res.ok) throw new Error('HTTP ' + res.status + ' - make sure you are logged in to Instagram');\n const data = await res.json();\n const users = (data?.users || []).slice(0, limit);\n return users.map((item, i) => ({\n rank: i + 1,\n username: item.user?.username || '',\n name: item.user?.full_name || '',\n verified: item.user?.is_verified ? 'Yes' : 'No',\n private: item.user?.is_private ? 'Yes' : 'No',\n url: 'https://www.instagram.com/' + (item.user?.username || ''),\n }));\n})()\n"
|
|
4818
5239
|
}
|
|
4819
5240
|
],
|
|
4820
5241
|
"type": "yaml"
|
|
@@ -4966,6 +5387,40 @@
|
|
|
4966
5387
|
],
|
|
4967
5388
|
"type": "yaml"
|
|
4968
5389
|
},
|
|
5390
|
+
{
|
|
5391
|
+
"site": "jd",
|
|
5392
|
+
"name": "item",
|
|
5393
|
+
"description": "京东商品详情(价格、主图、详情图、规格参数)",
|
|
5394
|
+
"strategy": "cookie",
|
|
5395
|
+
"browser": true,
|
|
5396
|
+
"args": [
|
|
5397
|
+
{
|
|
5398
|
+
"name": "sku",
|
|
5399
|
+
"type": "str",
|
|
5400
|
+
"required": true,
|
|
5401
|
+
"positional": true,
|
|
5402
|
+
"help": "商品 SKU ID(如 100291143898)"
|
|
5403
|
+
},
|
|
5404
|
+
{
|
|
5405
|
+
"name": "images",
|
|
5406
|
+
"type": "int",
|
|
5407
|
+
"default": 10,
|
|
5408
|
+
"required": false,
|
|
5409
|
+
"help": "详情图数量(默认10)"
|
|
5410
|
+
}
|
|
5411
|
+
],
|
|
5412
|
+
"type": "ts",
|
|
5413
|
+
"modulePath": "jd/item.js",
|
|
5414
|
+
"domain": "item.jd.com",
|
|
5415
|
+
"columns": [
|
|
5416
|
+
"title",
|
|
5417
|
+
"price",
|
|
5418
|
+
"shop",
|
|
5419
|
+
"specs",
|
|
5420
|
+
"mainImages",
|
|
5421
|
+
"detailImages"
|
|
5422
|
+
]
|
|
5423
|
+
},
|
|
4969
5424
|
{
|
|
4970
5425
|
"site": "jike",
|
|
4971
5426
|
"name": "comment",
|
|
@@ -5495,6 +5950,36 @@
|
|
|
5495
5950
|
"url"
|
|
5496
5951
|
]
|
|
5497
5952
|
},
|
|
5953
|
+
{
|
|
5954
|
+
"site": "linkedin",
|
|
5955
|
+
"name": "timeline",
|
|
5956
|
+
"description": "Read LinkedIn home timeline posts",
|
|
5957
|
+
"strategy": "cookie",
|
|
5958
|
+
"browser": true,
|
|
5959
|
+
"args": [
|
|
5960
|
+
{
|
|
5961
|
+
"name": "limit",
|
|
5962
|
+
"type": "int",
|
|
5963
|
+
"default": 20,
|
|
5964
|
+
"required": false,
|
|
5965
|
+
"help": "Number of posts to return (max 100)"
|
|
5966
|
+
}
|
|
5967
|
+
],
|
|
5968
|
+
"type": "ts",
|
|
5969
|
+
"modulePath": "linkedin/timeline.js",
|
|
5970
|
+
"domain": "www.linkedin.com",
|
|
5971
|
+
"columns": [
|
|
5972
|
+
"rank",
|
|
5973
|
+
"author",
|
|
5974
|
+
"author_url",
|
|
5975
|
+
"headline",
|
|
5976
|
+
"text",
|
|
5977
|
+
"posted_at",
|
|
5978
|
+
"reactions",
|
|
5979
|
+
"comments",
|
|
5980
|
+
"url"
|
|
5981
|
+
]
|
|
5982
|
+
},
|
|
5498
5983
|
{
|
|
5499
5984
|
"site": "linux-do",
|
|
5500
5985
|
"name": "categories",
|
|
@@ -5733,14 +6218,15 @@
|
|
|
5733
6218
|
"title",
|
|
5734
6219
|
"views",
|
|
5735
6220
|
"likes",
|
|
5736
|
-
"replies"
|
|
6221
|
+
"replies",
|
|
6222
|
+
"url"
|
|
5737
6223
|
],
|
|
5738
6224
|
"pipeline": [
|
|
5739
6225
|
{
|
|
5740
6226
|
"navigate": "https://linux.do"
|
|
5741
6227
|
},
|
|
5742
6228
|
{
|
|
5743
|
-
"evaluate": "(async () => {\n const keyword = ${{ args.query | json }};\n const res = await fetch('/search.json?q=' + encodeURIComponent(keyword), { credentials: 'include' });\n if (!res.ok) throw new Error('HTTP ' + res.status + ' - 请先登录 linux.do');\n let data;\n try { data = await res.json(); } catch { throw new Error('响应不是有效 JSON - 请先登录 linux.do'); }\n const topics = data?.topics || [];\n return topics.slice(0, ${{ args.limit }}).map(t => ({\n title: t.title,\n views: t.views,\n likes: t.like_count,\n replies: (t.posts_count || 1) - 1,\n }));\n})()\n"
|
|
6229
|
+
"evaluate": "(async () => {\n const keyword = ${{ args.query | json }};\n const res = await fetch('/search.json?q=' + encodeURIComponent(keyword), { credentials: 'include' });\n if (!res.ok) throw new Error('HTTP ' + res.status + ' - 请先登录 linux.do');\n let data;\n try { data = await res.json(); } catch { throw new Error('响应不是有效 JSON - 请先登录 linux.do'); }\n const topics = data?.topics || [];\n return topics.slice(0, ${{ args.limit }}).map(t => ({\n title: t.title,\n views: t.views,\n likes: t.like_count,\n replies: (t.posts_count || 1) - 1,\n url: 'https://linux.do/t/topic/' + t.id,\n }));\n})()\n"
|
|
5744
6230
|
},
|
|
5745
6231
|
{
|
|
5746
6232
|
"map": {
|
|
@@ -5748,7 +6234,8 @@
|
|
|
5748
6234
|
"title": "${{ item.title }}",
|
|
5749
6235
|
"views": "${{ item.views }}",
|
|
5750
6236
|
"likes": "${{ item.likes }}",
|
|
5751
|
-
"replies": "${{ item.replies }}"
|
|
6237
|
+
"replies": "${{ item.replies }}",
|
|
6238
|
+
"url": "${{ item.url }}"
|
|
5752
6239
|
}
|
|
5753
6240
|
},
|
|
5754
6241
|
{
|
|
@@ -6057,7 +6544,8 @@
|
|
|
6057
6544
|
"author",
|
|
6058
6545
|
"date",
|
|
6059
6546
|
"readTime",
|
|
6060
|
-
"claps"
|
|
6547
|
+
"claps",
|
|
6548
|
+
"url"
|
|
6061
6549
|
]
|
|
6062
6550
|
},
|
|
6063
6551
|
{
|
|
@@ -6246,6 +6734,275 @@
|
|
|
6246
6734
|
"Status"
|
|
6247
6735
|
]
|
|
6248
6736
|
},
|
|
6737
|
+
{
|
|
6738
|
+
"site": "pixiv",
|
|
6739
|
+
"name": "detail",
|
|
6740
|
+
"description": "View illustration details (tags, stats, URLs)",
|
|
6741
|
+
"domain": "www.pixiv.net",
|
|
6742
|
+
"strategy": "cookie",
|
|
6743
|
+
"browser": true,
|
|
6744
|
+
"args": [
|
|
6745
|
+
{
|
|
6746
|
+
"name": "id",
|
|
6747
|
+
"type": "str",
|
|
6748
|
+
"required": true,
|
|
6749
|
+
"positional": true,
|
|
6750
|
+
"help": "Illustration ID"
|
|
6751
|
+
}
|
|
6752
|
+
],
|
|
6753
|
+
"columns": [
|
|
6754
|
+
"illust_id",
|
|
6755
|
+
"title",
|
|
6756
|
+
"author",
|
|
6757
|
+
"type",
|
|
6758
|
+
"pages",
|
|
6759
|
+
"bookmarks",
|
|
6760
|
+
"likes",
|
|
6761
|
+
"views",
|
|
6762
|
+
"tags",
|
|
6763
|
+
"created",
|
|
6764
|
+
"url"
|
|
6765
|
+
],
|
|
6766
|
+
"pipeline": [
|
|
6767
|
+
{
|
|
6768
|
+
"navigate": "https://www.pixiv.net"
|
|
6769
|
+
},
|
|
6770
|
+
{
|
|
6771
|
+
"evaluate": "(async () => {\n const id = ${{ args.id | json }};\n const res = await fetch(\n 'https://www.pixiv.net/ajax/illust/' + id,\n { credentials: 'include' }\n );\n if (!res.ok) {\n if (res.status === 401 || res.status === 403) throw new Error('Authentication required — please log in to Pixiv in Chrome');\n if (res.status === 404) throw new Error('Illustration not found: ' + id);\n throw new Error('Pixiv request failed (HTTP ' + res.status + ')');\n }\n const data = await res.json();\n const b = data?.body;\n if (!b) throw new Error('Illustration not found');\n return [{\n illust_id: b.illustId,\n title: b.illustTitle,\n author: b.userName,\n user_id: b.userId,\n type: b.illustType === 0 ? 'illust' : b.illustType === 1 ? 'manga' : b.illustType === 2 ? 'ugoira' : String(b.illustType),\n pages: b.pageCount,\n bookmarks: b.bookmarkCount,\n likes: b.likeCount,\n views: b.viewCount,\n tags: (b.tags?.tags || []).map(t => t.tag).join(', '),\n created: b.createDate?.split('T')[0] || '',\n url: 'https://www.pixiv.net/artworks/' + b.illustId\n }];\n})()\n"
|
|
6772
|
+
}
|
|
6773
|
+
],
|
|
6774
|
+
"type": "yaml"
|
|
6775
|
+
},
|
|
6776
|
+
{
|
|
6777
|
+
"site": "pixiv",
|
|
6778
|
+
"name": "download",
|
|
6779
|
+
"description": "Download illustration images from Pixiv",
|
|
6780
|
+
"strategy": "cookie",
|
|
6781
|
+
"browser": true,
|
|
6782
|
+
"args": [
|
|
6783
|
+
{
|
|
6784
|
+
"name": "illust-id",
|
|
6785
|
+
"type": "str",
|
|
6786
|
+
"required": true,
|
|
6787
|
+
"positional": true,
|
|
6788
|
+
"help": "Illustration ID"
|
|
6789
|
+
},
|
|
6790
|
+
{
|
|
6791
|
+
"name": "output",
|
|
6792
|
+
"type": "str",
|
|
6793
|
+
"default": "./pixiv-downloads",
|
|
6794
|
+
"required": false,
|
|
6795
|
+
"help": "Output directory"
|
|
6796
|
+
}
|
|
6797
|
+
],
|
|
6798
|
+
"type": "ts",
|
|
6799
|
+
"modulePath": "pixiv/download.js",
|
|
6800
|
+
"domain": "www.pixiv.net",
|
|
6801
|
+
"columns": [
|
|
6802
|
+
"index",
|
|
6803
|
+
"type",
|
|
6804
|
+
"status",
|
|
6805
|
+
"size"
|
|
6806
|
+
]
|
|
6807
|
+
},
|
|
6808
|
+
{
|
|
6809
|
+
"site": "pixiv",
|
|
6810
|
+
"name": "illusts",
|
|
6811
|
+
"description": "List a Pixiv artist",
|
|
6812
|
+
"strategy": "cookie",
|
|
6813
|
+
"browser": true,
|
|
6814
|
+
"args": [
|
|
6815
|
+
{
|
|
6816
|
+
"name": "user-id",
|
|
6817
|
+
"type": "str",
|
|
6818
|
+
"required": true,
|
|
6819
|
+
"positional": true,
|
|
6820
|
+
"help": "Pixiv user ID"
|
|
6821
|
+
},
|
|
6822
|
+
{
|
|
6823
|
+
"name": "limit",
|
|
6824
|
+
"type": "int",
|
|
6825
|
+
"default": 20,
|
|
6826
|
+
"required": false,
|
|
6827
|
+
"help": "Number of results"
|
|
6828
|
+
}
|
|
6829
|
+
],
|
|
6830
|
+
"type": "ts",
|
|
6831
|
+
"modulePath": "pixiv/illusts.js",
|
|
6832
|
+
"domain": "www.pixiv.net",
|
|
6833
|
+
"columns": [
|
|
6834
|
+
"rank",
|
|
6835
|
+
"title",
|
|
6836
|
+
"illust_id",
|
|
6837
|
+
"pages",
|
|
6838
|
+
"bookmarks",
|
|
6839
|
+
"tags",
|
|
6840
|
+
"created"
|
|
6841
|
+
]
|
|
6842
|
+
},
|
|
6843
|
+
{
|
|
6844
|
+
"site": "pixiv",
|
|
6845
|
+
"name": "ranking",
|
|
6846
|
+
"description": "Pixiv illustration rankings (daily/weekly/monthly)",
|
|
6847
|
+
"domain": "www.pixiv.net",
|
|
6848
|
+
"strategy": "cookie",
|
|
6849
|
+
"browser": true,
|
|
6850
|
+
"args": [
|
|
6851
|
+
{
|
|
6852
|
+
"name": "mode",
|
|
6853
|
+
"type": "str",
|
|
6854
|
+
"default": "daily",
|
|
6855
|
+
"required": false,
|
|
6856
|
+
"help": "Ranking mode",
|
|
6857
|
+
"choices": [
|
|
6858
|
+
"daily",
|
|
6859
|
+
"weekly",
|
|
6860
|
+
"monthly",
|
|
6861
|
+
"rookie",
|
|
6862
|
+
"original",
|
|
6863
|
+
"male",
|
|
6864
|
+
"female",
|
|
6865
|
+
"daily_r18",
|
|
6866
|
+
"weekly_r18"
|
|
6867
|
+
]
|
|
6868
|
+
},
|
|
6869
|
+
{
|
|
6870
|
+
"name": "page",
|
|
6871
|
+
"type": "int",
|
|
6872
|
+
"default": 1,
|
|
6873
|
+
"required": false,
|
|
6874
|
+
"help": "Page number"
|
|
6875
|
+
},
|
|
6876
|
+
{
|
|
6877
|
+
"name": "limit",
|
|
6878
|
+
"type": "int",
|
|
6879
|
+
"default": 20,
|
|
6880
|
+
"required": false,
|
|
6881
|
+
"help": "Number of results"
|
|
6882
|
+
}
|
|
6883
|
+
],
|
|
6884
|
+
"columns": [
|
|
6885
|
+
"rank",
|
|
6886
|
+
"title",
|
|
6887
|
+
"author",
|
|
6888
|
+
"illust_id",
|
|
6889
|
+
"pages",
|
|
6890
|
+
"bookmarks"
|
|
6891
|
+
],
|
|
6892
|
+
"pipeline": [
|
|
6893
|
+
{
|
|
6894
|
+
"navigate": "https://www.pixiv.net"
|
|
6895
|
+
},
|
|
6896
|
+
{
|
|
6897
|
+
"evaluate": "(async () => {\n const mode = ${{ args.mode | json }};\n const page = ${{ args.page | json }};\n const limit = ${{ args.limit | json }};\n const res = await fetch(\n 'https://www.pixiv.net/ranking.php?mode=' + mode + '&p=' + page + '&format=json',\n { credentials: 'include' }\n );\n if (!res.ok) {\n if (res.status === 401 || res.status === 403) throw new Error('Authentication required — please log in to Pixiv in Chrome');\n throw new Error('Pixiv request failed (HTTP ' + res.status + ')');\n }\n const data = await res.json();\n const items = (data?.contents || []).slice(0, limit);\n return items.map((item, i) => ({\n rank: item.rank,\n title: item.title,\n author: item.user_name,\n user_id: item.user_id,\n illust_id: item.illust_id,\n pages: item.illust_page_count,\n bookmarks: item.illust_bookmark_count,\n url: 'https://www.pixiv.net/artworks/' + item.illust_id\n }));\n})()\n"
|
|
6898
|
+
}
|
|
6899
|
+
],
|
|
6900
|
+
"type": "yaml"
|
|
6901
|
+
},
|
|
6902
|
+
{
|
|
6903
|
+
"site": "pixiv",
|
|
6904
|
+
"name": "search",
|
|
6905
|
+
"description": "Search Pixiv illustrations by keyword",
|
|
6906
|
+
"strategy": "cookie",
|
|
6907
|
+
"browser": true,
|
|
6908
|
+
"args": [
|
|
6909
|
+
{
|
|
6910
|
+
"name": "query",
|
|
6911
|
+
"type": "str",
|
|
6912
|
+
"required": true,
|
|
6913
|
+
"positional": true,
|
|
6914
|
+
"help": "Search keyword or tag"
|
|
6915
|
+
},
|
|
6916
|
+
{
|
|
6917
|
+
"name": "limit",
|
|
6918
|
+
"type": "int",
|
|
6919
|
+
"default": 20,
|
|
6920
|
+
"required": false,
|
|
6921
|
+
"help": "Number of results"
|
|
6922
|
+
},
|
|
6923
|
+
{
|
|
6924
|
+
"name": "order",
|
|
6925
|
+
"type": "str",
|
|
6926
|
+
"default": "date_d",
|
|
6927
|
+
"required": false,
|
|
6928
|
+
"help": "Sort order",
|
|
6929
|
+
"choices": [
|
|
6930
|
+
"date_d",
|
|
6931
|
+
"date",
|
|
6932
|
+
"popular_d",
|
|
6933
|
+
"popular_male_d",
|
|
6934
|
+
"popular_female_d"
|
|
6935
|
+
]
|
|
6936
|
+
},
|
|
6937
|
+
{
|
|
6938
|
+
"name": "mode",
|
|
6939
|
+
"type": "str",
|
|
6940
|
+
"default": "all",
|
|
6941
|
+
"required": false,
|
|
6942
|
+
"help": "Search mode",
|
|
6943
|
+
"choices": [
|
|
6944
|
+
"all",
|
|
6945
|
+
"safe",
|
|
6946
|
+
"r18"
|
|
6947
|
+
]
|
|
6948
|
+
},
|
|
6949
|
+
{
|
|
6950
|
+
"name": "page",
|
|
6951
|
+
"type": "int",
|
|
6952
|
+
"default": 1,
|
|
6953
|
+
"required": false,
|
|
6954
|
+
"help": "Page number"
|
|
6955
|
+
}
|
|
6956
|
+
],
|
|
6957
|
+
"type": "ts",
|
|
6958
|
+
"modulePath": "pixiv/search.js",
|
|
6959
|
+
"domain": "www.pixiv.net",
|
|
6960
|
+
"columns": [
|
|
6961
|
+
"rank",
|
|
6962
|
+
"title",
|
|
6963
|
+
"author",
|
|
6964
|
+
"illust_id",
|
|
6965
|
+
"pages",
|
|
6966
|
+
"bookmarks",
|
|
6967
|
+
"tags"
|
|
6968
|
+
]
|
|
6969
|
+
},
|
|
6970
|
+
{
|
|
6971
|
+
"site": "pixiv",
|
|
6972
|
+
"name": "user",
|
|
6973
|
+
"description": "View Pixiv artist profile",
|
|
6974
|
+
"domain": "www.pixiv.net",
|
|
6975
|
+
"strategy": "cookie",
|
|
6976
|
+
"browser": true,
|
|
6977
|
+
"args": [
|
|
6978
|
+
{
|
|
6979
|
+
"name": "uid",
|
|
6980
|
+
"type": "str",
|
|
6981
|
+
"required": true,
|
|
6982
|
+
"positional": true,
|
|
6983
|
+
"help": "Pixiv user ID"
|
|
6984
|
+
}
|
|
6985
|
+
],
|
|
6986
|
+
"columns": [
|
|
6987
|
+
"user_id",
|
|
6988
|
+
"name",
|
|
6989
|
+
"premium",
|
|
6990
|
+
"following",
|
|
6991
|
+
"illusts",
|
|
6992
|
+
"manga",
|
|
6993
|
+
"novels",
|
|
6994
|
+
"comment"
|
|
6995
|
+
],
|
|
6996
|
+
"pipeline": [
|
|
6997
|
+
{
|
|
6998
|
+
"navigate": "https://www.pixiv.net"
|
|
6999
|
+
},
|
|
7000
|
+
{
|
|
7001
|
+
"evaluate": "(async () => {\n const uid = ${{ args.uid | json }};\n const res = await fetch(\n 'https://www.pixiv.net/ajax/user/' + uid + '?full=1',\n { credentials: 'include' }\n );\n if (!res.ok) {\n if (res.status === 401 || res.status === 403) throw new Error('Authentication required — please log in to Pixiv in Chrome');\n if (res.status === 404) throw new Error('User not found: ' + uid);\n throw new Error('Pixiv request failed (HTTP ' + res.status + ')');\n }\n const data = await res.json();\n const b = data?.body;\n if (!b) throw new Error('User not found');\n return [{\n user_id: uid,\n name: b.name,\n premium: b.premium ? 'Yes' : 'No',\n following: b.following,\n illusts: typeof b.illusts === 'object' ? Object.keys(b.illusts).length : (b.illusts || 0),\n manga: typeof b.manga === 'object' ? Object.keys(b.manga).length : (b.manga || 0),\n novels: typeof b.novels === 'object' ? Object.keys(b.novels).length : (b.novels || 0),\n comment: (b.comment || '').slice(0, 80),\n url: 'https://www.pixiv.net/users/' + uid\n }];\n})()\n"
|
|
7002
|
+
}
|
|
7003
|
+
],
|
|
7004
|
+
"type": "yaml"
|
|
7005
|
+
},
|
|
6249
7006
|
{
|
|
6250
7007
|
"site": "reddit",
|
|
6251
7008
|
"name": "comment",
|
|
@@ -7864,6 +8621,7 @@
|
|
|
7864
8621
|
"rank",
|
|
7865
8622
|
"desc",
|
|
7866
8623
|
"author",
|
|
8624
|
+
"url",
|
|
7867
8625
|
"plays",
|
|
7868
8626
|
"likes",
|
|
7869
8627
|
"comments",
|
|
@@ -7877,7 +8635,7 @@
|
|
|
7877
8635
|
}
|
|
7878
8636
|
},
|
|
7879
8637
|
{
|
|
7880
|
-
"evaluate": "(async () => {\n const query = ${{ args.query | json }};\n const limit = ${{ args.limit }};\n const res = await fetch('/api/search/general/full/?keyword=' + encodeURIComponent(query) + '&offset=0&count=' + limit + '&aid=1988', { credentials: 'include' });\n if (!res.ok) throw new Error('Search failed: HTTP ' + res.status);\n const data = await res.json();\n const items = (data.data || []).filter(function(i) { return i.type === 1 && i.item; });\n return items.slice(0, limit).map(function(i, idx) {\n var v = i.item;\n var a = v.author || {};\n var s = v.stats || {};\n return {\n rank: idx + 1,\n desc: (v.desc || '').replace(/\\n/g, ' ').substring(0, 100),\n author: a.uniqueId || '',\n plays: s.playCount || 0,\n likes: s.diggCount || 0,\n comments: s.commentCount || 0,\n shares: s.shareCount || 0,\n };\n });\n})()\n"
|
|
8638
|
+
"evaluate": "(async () => {\n const query = ${{ args.query | json }};\n const limit = ${{ args.limit }};\n const res = await fetch('/api/search/general/full/?keyword=' + encodeURIComponent(query) + '&offset=0&count=' + limit + '&aid=1988', { credentials: 'include' });\n if (!res.ok) throw new Error('Search failed: HTTP ' + res.status);\n const data = await res.json();\n const items = (data.data || []).filter(function(i) { return i.type === 1 && i.item; });\n return items.slice(0, limit).map(function(i, idx) {\n var v = i.item;\n var a = v.author || {};\n var s = v.stats || {};\n return {\n rank: idx + 1,\n desc: (v.desc || '').replace(/\\n/g, ' ').substring(0, 100),\n author: a.uniqueId || '',\n url: (a.uniqueId && v.id) ? 'https://www.tiktok.com/@' + a.uniqueId + '/video/' + v.id : '',\n plays: s.playCount || 0,\n likes: s.diggCount || 0,\n comments: s.commentCount || 0,\n shares: s.shareCount || 0,\n };\n });\n})()\n"
|
|
7881
8639
|
}
|
|
7882
8640
|
],
|
|
7883
8641
|
"type": "yaml"
|
|
@@ -8518,6 +9276,17 @@
|
|
|
8518
9276
|
"positional": true,
|
|
8519
9277
|
"help": ""
|
|
8520
9278
|
},
|
|
9279
|
+
{
|
|
9280
|
+
"name": "filter",
|
|
9281
|
+
"type": "string",
|
|
9282
|
+
"default": "top",
|
|
9283
|
+
"required": false,
|
|
9284
|
+
"help": "",
|
|
9285
|
+
"choices": [
|
|
9286
|
+
"top",
|
|
9287
|
+
"live"
|
|
9288
|
+
]
|
|
9289
|
+
},
|
|
8521
9290
|
{
|
|
8522
9291
|
"name": "limit",
|
|
8523
9292
|
"type": "int",
|
|
@@ -9140,6 +9909,114 @@
|
|
|
9140
9909
|
],
|
|
9141
9910
|
"type": "yaml"
|
|
9142
9911
|
},
|
|
9912
|
+
{
|
|
9913
|
+
"site": "web",
|
|
9914
|
+
"name": "read",
|
|
9915
|
+
"description": "Fetch any web page and export as Markdown",
|
|
9916
|
+
"strategy": "cookie",
|
|
9917
|
+
"browser": true,
|
|
9918
|
+
"args": [
|
|
9919
|
+
{
|
|
9920
|
+
"name": "url",
|
|
9921
|
+
"type": "str",
|
|
9922
|
+
"required": true,
|
|
9923
|
+
"help": "Any web page URL"
|
|
9924
|
+
},
|
|
9925
|
+
{
|
|
9926
|
+
"name": "output",
|
|
9927
|
+
"type": "str",
|
|
9928
|
+
"default": "./web-articles",
|
|
9929
|
+
"required": false,
|
|
9930
|
+
"help": "Output directory"
|
|
9931
|
+
},
|
|
9932
|
+
{
|
|
9933
|
+
"name": "download-images",
|
|
9934
|
+
"type": "boolean",
|
|
9935
|
+
"default": true,
|
|
9936
|
+
"required": false,
|
|
9937
|
+
"help": "Download images locally"
|
|
9938
|
+
},
|
|
9939
|
+
{
|
|
9940
|
+
"name": "wait",
|
|
9941
|
+
"type": "int",
|
|
9942
|
+
"default": 3,
|
|
9943
|
+
"required": false,
|
|
9944
|
+
"help": "Seconds to wait after page load"
|
|
9945
|
+
}
|
|
9946
|
+
],
|
|
9947
|
+
"type": "ts",
|
|
9948
|
+
"modulePath": "web/read.js",
|
|
9949
|
+
"columns": [
|
|
9950
|
+
"title",
|
|
9951
|
+
"author",
|
|
9952
|
+
"publish_time",
|
|
9953
|
+
"status",
|
|
9954
|
+
"size"
|
|
9955
|
+
],
|
|
9956
|
+
"navigateBefore": false
|
|
9957
|
+
},
|
|
9958
|
+
{
|
|
9959
|
+
"site": "weibo",
|
|
9960
|
+
"name": "comments",
|
|
9961
|
+
"description": "Get comments on a Weibo post",
|
|
9962
|
+
"strategy": "cookie",
|
|
9963
|
+
"browser": true,
|
|
9964
|
+
"args": [
|
|
9965
|
+
{
|
|
9966
|
+
"name": "id",
|
|
9967
|
+
"type": "str",
|
|
9968
|
+
"required": true,
|
|
9969
|
+
"positional": true,
|
|
9970
|
+
"help": "Post ID (numeric idstr)"
|
|
9971
|
+
},
|
|
9972
|
+
{
|
|
9973
|
+
"name": "limit",
|
|
9974
|
+
"type": "int",
|
|
9975
|
+
"default": 20,
|
|
9976
|
+
"required": false,
|
|
9977
|
+
"help": "Number of comments (max 50)"
|
|
9978
|
+
}
|
|
9979
|
+
],
|
|
9980
|
+
"type": "ts",
|
|
9981
|
+
"modulePath": "weibo/comments.js",
|
|
9982
|
+
"domain": "weibo.com",
|
|
9983
|
+
"columns": [
|
|
9984
|
+
"rank",
|
|
9985
|
+
"author",
|
|
9986
|
+
"text",
|
|
9987
|
+
"likes",
|
|
9988
|
+
"replies",
|
|
9989
|
+
"time"
|
|
9990
|
+
]
|
|
9991
|
+
},
|
|
9992
|
+
{
|
|
9993
|
+
"site": "weibo",
|
|
9994
|
+
"name": "feed",
|
|
9995
|
+
"description": "Weibo home timeline (posts from followed users)",
|
|
9996
|
+
"strategy": "cookie",
|
|
9997
|
+
"browser": true,
|
|
9998
|
+
"args": [
|
|
9999
|
+
{
|
|
10000
|
+
"name": "limit",
|
|
10001
|
+
"type": "int",
|
|
10002
|
+
"default": 15,
|
|
10003
|
+
"required": false,
|
|
10004
|
+
"help": "Number of posts (max 50)"
|
|
10005
|
+
}
|
|
10006
|
+
],
|
|
10007
|
+
"type": "ts",
|
|
10008
|
+
"modulePath": "weibo/feed.js",
|
|
10009
|
+
"domain": "weibo.com",
|
|
10010
|
+
"columns": [
|
|
10011
|
+
"author",
|
|
10012
|
+
"text",
|
|
10013
|
+
"reposts",
|
|
10014
|
+
"comments",
|
|
10015
|
+
"likes",
|
|
10016
|
+
"time",
|
|
10017
|
+
"url"
|
|
10018
|
+
]
|
|
10019
|
+
},
|
|
9143
10020
|
{
|
|
9144
10021
|
"site": "weibo",
|
|
9145
10022
|
"name": "hot",
|
|
@@ -9167,6 +10044,49 @@
|
|
|
9167
10044
|
"url"
|
|
9168
10045
|
]
|
|
9169
10046
|
},
|
|
10047
|
+
{
|
|
10048
|
+
"site": "weibo",
|
|
10049
|
+
"name": "me",
|
|
10050
|
+
"description": "My Weibo profile info",
|
|
10051
|
+
"strategy": "cookie",
|
|
10052
|
+
"browser": true,
|
|
10053
|
+
"args": [],
|
|
10054
|
+
"type": "ts",
|
|
10055
|
+
"modulePath": "weibo/me.js",
|
|
10056
|
+
"domain": "weibo.com",
|
|
10057
|
+
"columns": [
|
|
10058
|
+
"screen_name",
|
|
10059
|
+
"uid",
|
|
10060
|
+
"followers",
|
|
10061
|
+
"following",
|
|
10062
|
+
"statuses",
|
|
10063
|
+
"verified",
|
|
10064
|
+
"location"
|
|
10065
|
+
]
|
|
10066
|
+
},
|
|
10067
|
+
{
|
|
10068
|
+
"site": "weibo",
|
|
10069
|
+
"name": "post",
|
|
10070
|
+
"description": "Get a single Weibo post",
|
|
10071
|
+
"strategy": "cookie",
|
|
10072
|
+
"browser": true,
|
|
10073
|
+
"args": [
|
|
10074
|
+
{
|
|
10075
|
+
"name": "id",
|
|
10076
|
+
"type": "str",
|
|
10077
|
+
"required": true,
|
|
10078
|
+
"positional": true,
|
|
10079
|
+
"help": "Post ID (numeric idstr or mblogid from URL)"
|
|
10080
|
+
}
|
|
10081
|
+
],
|
|
10082
|
+
"type": "ts",
|
|
10083
|
+
"modulePath": "weibo/post.js",
|
|
10084
|
+
"domain": "weibo.com",
|
|
10085
|
+
"columns": [
|
|
10086
|
+
"field",
|
|
10087
|
+
"value"
|
|
10088
|
+
]
|
|
10089
|
+
},
|
|
9170
10090
|
{
|
|
9171
10091
|
"site": "weibo",
|
|
9172
10092
|
"name": "search",
|
|
@@ -9200,6 +10120,36 @@
|
|
|
9200
10120
|
"url"
|
|
9201
10121
|
]
|
|
9202
10122
|
},
|
|
10123
|
+
{
|
|
10124
|
+
"site": "weibo",
|
|
10125
|
+
"name": "user",
|
|
10126
|
+
"description": "Get Weibo user profile",
|
|
10127
|
+
"strategy": "cookie",
|
|
10128
|
+
"browser": true,
|
|
10129
|
+
"args": [
|
|
10130
|
+
{
|
|
10131
|
+
"name": "id",
|
|
10132
|
+
"type": "str",
|
|
10133
|
+
"required": true,
|
|
10134
|
+
"positional": true,
|
|
10135
|
+
"help": "User ID (numeric uid) or screen name"
|
|
10136
|
+
}
|
|
10137
|
+
],
|
|
10138
|
+
"type": "ts",
|
|
10139
|
+
"modulePath": "weibo/user.js",
|
|
10140
|
+
"domain": "weibo.com",
|
|
10141
|
+
"columns": [
|
|
10142
|
+
"screen_name",
|
|
10143
|
+
"uid",
|
|
10144
|
+
"followers",
|
|
10145
|
+
"following",
|
|
10146
|
+
"statuses",
|
|
10147
|
+
"verified",
|
|
10148
|
+
"description",
|
|
10149
|
+
"location",
|
|
10150
|
+
"url"
|
|
10151
|
+
]
|
|
10152
|
+
},
|
|
9203
10153
|
{
|
|
9204
10154
|
"site": "weixin",
|
|
9205
10155
|
"name": "download",
|
|
@@ -9410,7 +10360,8 @@
|
|
|
9410
10360
|
"rank",
|
|
9411
10361
|
"title",
|
|
9412
10362
|
"author",
|
|
9413
|
-
"bookId"
|
|
10363
|
+
"bookId",
|
|
10364
|
+
"url"
|
|
9414
10365
|
]
|
|
9415
10366
|
},
|
|
9416
10367
|
{
|
|
@@ -10149,6 +11100,56 @@
|
|
|
10149
11100
|
],
|
|
10150
11101
|
"type": "yaml"
|
|
10151
11102
|
},
|
|
11103
|
+
{
|
|
11104
|
+
"site": "xueqiu",
|
|
11105
|
+
"name": "fund-holdings",
|
|
11106
|
+
"description": "获取蛋卷基金持仓明细(可用 --account 按子账户过滤)",
|
|
11107
|
+
"strategy": "cookie",
|
|
11108
|
+
"browser": true,
|
|
11109
|
+
"args": [
|
|
11110
|
+
{
|
|
11111
|
+
"name": "account",
|
|
11112
|
+
"type": "str",
|
|
11113
|
+
"default": "",
|
|
11114
|
+
"required": false,
|
|
11115
|
+
"help": "按子账户名称或 ID 过滤"
|
|
11116
|
+
}
|
|
11117
|
+
],
|
|
11118
|
+
"type": "ts",
|
|
11119
|
+
"modulePath": "xueqiu/fund-holdings.js",
|
|
11120
|
+
"domain": "danjuanfunds.com",
|
|
11121
|
+
"columns": [
|
|
11122
|
+
"accountName",
|
|
11123
|
+
"fdCode",
|
|
11124
|
+
"fdName",
|
|
11125
|
+
"marketValue",
|
|
11126
|
+
"volume",
|
|
11127
|
+
"dailyGain",
|
|
11128
|
+
"holdGain",
|
|
11129
|
+
"holdGainRate",
|
|
11130
|
+
"marketPercent"
|
|
11131
|
+
],
|
|
11132
|
+
"navigateBefore": "https://danjuanfunds.com/my-money"
|
|
11133
|
+
},
|
|
11134
|
+
{
|
|
11135
|
+
"site": "xueqiu",
|
|
11136
|
+
"name": "fund-snapshot",
|
|
11137
|
+
"description": "获取蛋卷基金快照(总资产、子账户、持仓,推荐 -f json 输出)",
|
|
11138
|
+
"strategy": "cookie",
|
|
11139
|
+
"browser": true,
|
|
11140
|
+
"args": [],
|
|
11141
|
+
"type": "ts",
|
|
11142
|
+
"modulePath": "xueqiu/fund-snapshot.js",
|
|
11143
|
+
"domain": "danjuanfunds.com",
|
|
11144
|
+
"columns": [
|
|
11145
|
+
"asOf",
|
|
11146
|
+
"totalAssetAmount",
|
|
11147
|
+
"totalFundMarketValue",
|
|
11148
|
+
"accountCount",
|
|
11149
|
+
"holdingCount"
|
|
11150
|
+
],
|
|
11151
|
+
"navigateBefore": "https://danjuanfunds.com/my-money"
|
|
11152
|
+
},
|
|
10152
11153
|
{
|
|
10153
11154
|
"site": "xueqiu",
|
|
10154
11155
|
"name": "hot-stock",
|
|
@@ -10276,7 +11277,8 @@
|
|
|
10276
11277
|
"name",
|
|
10277
11278
|
"exchange",
|
|
10278
11279
|
"price",
|
|
10279
|
-
"changePercent"
|
|
11280
|
+
"changePercent",
|
|
11281
|
+
"url"
|
|
10280
11282
|
],
|
|
10281
11283
|
"pipeline": [
|
|
10282
11284
|
{
|
|
@@ -10291,7 +11293,8 @@
|
|
|
10291
11293
|
"name": "${{ item.name }}",
|
|
10292
11294
|
"exchange": "${{ item.exchange }}",
|
|
10293
11295
|
"price": "${{ item.price }}",
|
|
10294
|
-
"changePercent": "${{ item.changePercent }}"
|
|
11296
|
+
"changePercent": "${{ item.changePercent }}",
|
|
11297
|
+
"url": "${{ item.url }}"
|
|
10295
11298
|
}
|
|
10296
11299
|
},
|
|
10297
11300
|
{
|
|
@@ -10980,6 +11983,70 @@
|
|
|
10980
11983
|
"url"
|
|
10981
11984
|
]
|
|
10982
11985
|
},
|
|
11986
|
+
{
|
|
11987
|
+
"site": "youtube",
|
|
11988
|
+
"name": "channel",
|
|
11989
|
+
"description": "Get YouTube channel info and recent videos",
|
|
11990
|
+
"strategy": "cookie",
|
|
11991
|
+
"browser": true,
|
|
11992
|
+
"args": [
|
|
11993
|
+
{
|
|
11994
|
+
"name": "id",
|
|
11995
|
+
"type": "str",
|
|
11996
|
+
"required": true,
|
|
11997
|
+
"positional": true,
|
|
11998
|
+
"help": "Channel ID (UCxxxx) or handle (@name)"
|
|
11999
|
+
},
|
|
12000
|
+
{
|
|
12001
|
+
"name": "limit",
|
|
12002
|
+
"type": "int",
|
|
12003
|
+
"default": 10,
|
|
12004
|
+
"required": false,
|
|
12005
|
+
"help": "Max recent videos (max 30)"
|
|
12006
|
+
}
|
|
12007
|
+
],
|
|
12008
|
+
"type": "ts",
|
|
12009
|
+
"modulePath": "youtube/channel.js",
|
|
12010
|
+
"domain": "www.youtube.com",
|
|
12011
|
+
"columns": [
|
|
12012
|
+
"field",
|
|
12013
|
+
"value"
|
|
12014
|
+
]
|
|
12015
|
+
},
|
|
12016
|
+
{
|
|
12017
|
+
"site": "youtube",
|
|
12018
|
+
"name": "comments",
|
|
12019
|
+
"description": "Get YouTube video comments",
|
|
12020
|
+
"strategy": "cookie",
|
|
12021
|
+
"browser": true,
|
|
12022
|
+
"args": [
|
|
12023
|
+
{
|
|
12024
|
+
"name": "url",
|
|
12025
|
+
"type": "str",
|
|
12026
|
+
"required": true,
|
|
12027
|
+
"positional": true,
|
|
12028
|
+
"help": "YouTube video URL or video ID"
|
|
12029
|
+
},
|
|
12030
|
+
{
|
|
12031
|
+
"name": "limit",
|
|
12032
|
+
"type": "int",
|
|
12033
|
+
"default": 20,
|
|
12034
|
+
"required": false,
|
|
12035
|
+
"help": "Max comments (max 100)"
|
|
12036
|
+
}
|
|
12037
|
+
],
|
|
12038
|
+
"type": "ts",
|
|
12039
|
+
"modulePath": "youtube/comments.js",
|
|
12040
|
+
"domain": "www.youtube.com",
|
|
12041
|
+
"columns": [
|
|
12042
|
+
"rank",
|
|
12043
|
+
"author",
|
|
12044
|
+
"text",
|
|
12045
|
+
"likes",
|
|
12046
|
+
"replies",
|
|
12047
|
+
"time"
|
|
12048
|
+
]
|
|
12049
|
+
},
|
|
10983
12050
|
{
|
|
10984
12051
|
"site": "youtube",
|
|
10985
12052
|
"name": "search",
|
|
@@ -11212,7 +12279,8 @@
|
|
|
11212
12279
|
"title",
|
|
11213
12280
|
"type",
|
|
11214
12281
|
"author",
|
|
11215
|
-
"votes"
|
|
12282
|
+
"votes",
|
|
12283
|
+
"url"
|
|
11216
12284
|
],
|
|
11217
12285
|
"pipeline": [
|
|
11218
12286
|
{
|
|
@@ -11227,7 +12295,8 @@
|
|
|
11227
12295
|
"title": "${{ item.title }}",
|
|
11228
12296
|
"type": "${{ item.type }}",
|
|
11229
12297
|
"author": "${{ item.author }}",
|
|
11230
|
-
"votes": "${{ item.votes }}"
|
|
12298
|
+
"votes": "${{ item.votes }}",
|
|
12299
|
+
"url": "${{ item.url }}"
|
|
11231
12300
|
}
|
|
11232
12301
|
},
|
|
11233
12302
|
{
|