feat(cli): add command access metadata (#1296)
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -183,6 +183,7 @@ export async function extractAssetsForInput(page, input) {
|
||||
cli({
|
||||
site: '1688',
|
||||
name: 'assets',
|
||||
access: 'read',
|
||||
description: '列出 1688 商品页可提取的图片/视频素材',
|
||||
domain: 'www.1688.com',
|
||||
strategy: Strategy.COOKIE,
|
||||
|
||||
@@ -42,6 +42,7 @@ function toDownloadItems(offerId, assets) {
|
||||
cli({
|
||||
site: '1688',
|
||||
name: 'download',
|
||||
access: 'read',
|
||||
description: '批量下载 1688 商品页可提取的图片和视频素材',
|
||||
domain: 'www.1688.com',
|
||||
strategy: Strategy.COOKIE,
|
||||
|
||||
@@ -156,6 +156,7 @@ async function readItemPayload(page, itemUrl) {
|
||||
cli({
|
||||
site: '1688',
|
||||
name: 'item',
|
||||
access: 'read',
|
||||
description: '1688 商品详情(公开商品字段、价格阶梯、卖家基础信息)',
|
||||
domain: 'www.1688.com',
|
||||
strategy: Strategy.COOKIE,
|
||||
|
||||
@@ -275,6 +275,7 @@ async function collectSearchRows(page, query, limit) {
|
||||
cli({
|
||||
site: '1688',
|
||||
name: 'search',
|
||||
access: 'read',
|
||||
description: '1688 商品搜索(结果候选、卖家链接、价格/MOQ/销量文本)',
|
||||
domain: 'www.1688.com',
|
||||
strategy: Strategy.COOKIE,
|
||||
|
||||
@@ -167,6 +167,7 @@ function hasAnyEvidence(storePayload, contactPayload, seed) {
|
||||
cli({
|
||||
site: '1688',
|
||||
name: 'store',
|
||||
access: 'read',
|
||||
description: '1688 店铺/供应商公开信息(联系方式、主营、入驻年限、公开服务信号)',
|
||||
domain: 'www.1688.com',
|
||||
strategy: Strategy.COOKIE,
|
||||
|
||||
@@ -13,6 +13,7 @@ function parseArticleId(input) {
|
||||
cli({
|
||||
site: '36kr',
|
||||
name: 'article',
|
||||
access: 'read',
|
||||
description: '获取36氪文章正文内容',
|
||||
domain: 'www.36kr.com',
|
||||
strategy: Strategy.INTERCEPT,
|
||||
|
||||
@@ -26,6 +26,7 @@ function buildHotListUrl(listType, date = new Date()) {
|
||||
cli({
|
||||
site: '36kr',
|
||||
name: 'hot',
|
||||
access: 'read',
|
||||
description: '36氪热榜 — trending articles (renqi/zonghe/shoucang/catalog)',
|
||||
domain: 'www.36kr.com',
|
||||
strategy: Strategy.PUBLIC,
|
||||
|
||||
@@ -5,6 +5,7 @@ import { cli, Strategy } from '@jackwener/opencli/registry';
|
||||
cli({
|
||||
site: '36kr',
|
||||
name: 'news',
|
||||
access: 'read',
|
||||
description: 'Latest tech/startup news from 36kr (36氪)',
|
||||
domain: 'www.36kr.com',
|
||||
strategy: Strategy.PUBLIC,
|
||||
|
||||
@@ -8,6 +8,7 @@ import { CliError } from '@jackwener/opencli/errors';
|
||||
cli({
|
||||
site: '36kr',
|
||||
name: 'search',
|
||||
access: 'read',
|
||||
description: '搜索36氪文章',
|
||||
domain: 'www.36kr.com',
|
||||
strategy: Strategy.PUBLIC,
|
||||
|
||||
@@ -13,6 +13,7 @@ import { JOBS_ORIGIN, requirePage, navigateTo, parseCompanyJobCard } from './uti
|
||||
cli({
|
||||
site: '51job',
|
||||
name: 'company',
|
||||
access: 'read',
|
||||
description: '51job 公司简介 + 在招职位(按 encCoId)',
|
||||
domain: 'jobs.51job.com',
|
||||
strategy: Strategy.COOKIE,
|
||||
|
||||
@@ -13,6 +13,7 @@ import { JOBS_ORIGIN, requirePage, navigateTo } from './utils.js';
|
||||
cli({
|
||||
site: '51job',
|
||||
name: 'detail',
|
||||
access: 'read',
|
||||
description: '51job 职位详情(按 jobId)',
|
||||
domain: 'jobs.51job.com',
|
||||
strategy: Strategy.COOKIE,
|
||||
|
||||
@@ -16,6 +16,7 @@ import {
|
||||
cli({
|
||||
site: '51job',
|
||||
name: 'hot',
|
||||
access: 'read',
|
||||
description: '51job 推荐职位(按城市/行业/排序浏览)',
|
||||
domain: 'we.51job.com',
|
||||
strategy: Strategy.COOKIE,
|
||||
|
||||
@@ -20,6 +20,7 @@ import {
|
||||
cli({
|
||||
site: '51job',
|
||||
name: 'search',
|
||||
access: 'read',
|
||||
description: '51job 前程无忧关键词职位搜索',
|
||||
domain: 'we.51job.com',
|
||||
strategy: Strategy.COOKIE,
|
||||
|
||||
@@ -2,6 +2,7 @@ import { cli } from '@jackwener/opencli/registry';
|
||||
import { createRankingCliOptions } from './rankings.js';
|
||||
cli(createRankingCliOptions({
|
||||
commandName: 'bestsellers',
|
||||
access: 'read',
|
||||
listType: 'bestsellers',
|
||||
description: 'Amazon Best Sellers pages for category candidate discovery',
|
||||
}));
|
||||
|
||||
@@ -85,6 +85,7 @@ async function readDiscussionPayload(page, input, limit) {
|
||||
cli({
|
||||
site: 'amazon',
|
||||
name: 'discussion',
|
||||
access: 'read',
|
||||
description: 'Amazon review summary and sample customer discussion from product review pages',
|
||||
domain: 'amazon.com',
|
||||
strategy: Strategy.COOKIE,
|
||||
|
||||
@@ -2,6 +2,7 @@ import { cli } from '@jackwener/opencli/registry';
|
||||
import { createRankingCliOptions } from './rankings.js';
|
||||
cli(createRankingCliOptions({
|
||||
commandName: 'movers-shakers',
|
||||
access: 'read',
|
||||
listType: 'movers_shakers',
|
||||
description: 'Amazon Movers & Shakers pages for short-term growth signals',
|
||||
}));
|
||||
|
||||
@@ -2,6 +2,7 @@ import { cli } from '@jackwener/opencli/registry';
|
||||
import { createRankingCliOptions } from './rankings.js';
|
||||
cli(createRankingCliOptions({
|
||||
commandName: 'new-releases',
|
||||
access: 'read',
|
||||
listType: 'new_releases',
|
||||
description: 'Amazon New Releases pages for early momentum discovery',
|
||||
}));
|
||||
|
||||
@@ -106,6 +106,7 @@ async function readOfferPayload(page, input) {
|
||||
cli({
|
||||
site: 'amazon',
|
||||
name: 'offer',
|
||||
access: 'read',
|
||||
description: 'Amazon seller, buy box, and fulfillment facts from the product page',
|
||||
domain: 'amazon.com',
|
||||
strategy: Strategy.COOKIE,
|
||||
|
||||
@@ -65,6 +65,7 @@ async function readProductPayload(page, input) {
|
||||
cli({
|
||||
site: 'amazon',
|
||||
name: 'product',
|
||||
access: 'read',
|
||||
description: 'Amazon product page facts for candidate validation',
|
||||
domain: 'amazon.com',
|
||||
strategy: Strategy.COOKIE,
|
||||
|
||||
@@ -142,6 +142,7 @@ export function createRankingCliOptions(definition) {
|
||||
return {
|
||||
site: 'amazon',
|
||||
name: definition.commandName,
|
||||
access: definition.access ?? 'read',
|
||||
description: definition.description,
|
||||
domain: 'amazon.com',
|
||||
strategy: Strategy.COOKIE,
|
||||
|
||||
@@ -49,6 +49,7 @@ async function readSearchPayload(page, query) {
|
||||
cli({
|
||||
site: 'amazon',
|
||||
name: 'search',
|
||||
access: 'read',
|
||||
description: 'Amazon search results for product discovery and coarse filtering',
|
||||
domain: 'amazon.com',
|
||||
strategy: Strategy.COOKIE,
|
||||
|
||||
@@ -3,6 +3,7 @@ import * as fs from 'node:fs';
|
||||
export const dumpCommand = cli({
|
||||
site: 'antigravity',
|
||||
name: 'dump',
|
||||
access: 'read',
|
||||
description: 'Dump the DOM to help AI understand the UI',
|
||||
domain: 'localhost',
|
||||
strategy: Strategy.UI,
|
||||
|
||||
@@ -2,6 +2,7 @@ import { cli, Strategy } from '@jackwener/opencli/registry';
|
||||
export const extractCodeCommand = cli({
|
||||
site: 'antigravity',
|
||||
name: 'extract-code',
|
||||
access: 'read',
|
||||
description: 'Extract multi-line code blocks from the current Antigravity conversation',
|
||||
domain: 'localhost',
|
||||
strategy: Strategy.UI,
|
||||
|
||||
@@ -2,6 +2,7 @@ import { cli, Strategy } from '@jackwener/opencli/registry';
|
||||
export const modelCommand = cli({
|
||||
site: 'antigravity',
|
||||
name: 'model',
|
||||
access: 'read',
|
||||
description: 'Switch the active LLM model in Antigravity',
|
||||
domain: 'localhost',
|
||||
strategy: Strategy.UI,
|
||||
|
||||
@@ -2,6 +2,7 @@ import { cli, Strategy } from '@jackwener/opencli/registry';
|
||||
export const newCommand = cli({
|
||||
site: 'antigravity',
|
||||
name: 'new',
|
||||
access: 'read',
|
||||
description: 'Start a new conversation / clear context in Antigravity',
|
||||
domain: 'localhost',
|
||||
strategy: Strategy.UI,
|
||||
|
||||
@@ -2,6 +2,7 @@ import { cli, Strategy } from '@jackwener/opencli/registry';
|
||||
export const readCommand = cli({
|
||||
site: 'antigravity',
|
||||
name: 'read',
|
||||
access: 'read',
|
||||
description: 'Read the latest chat messages from Antigravity AI',
|
||||
domain: 'localhost',
|
||||
strategy: Strategy.UI,
|
||||
|
||||
@@ -2,6 +2,7 @@ import { cli, Strategy } from '@jackwener/opencli/registry';
|
||||
export const sendCommand = cli({
|
||||
site: 'antigravity',
|
||||
name: 'send',
|
||||
access: 'write',
|
||||
description: 'Send a message to Antigravity AI via the internal Lexical editor',
|
||||
domain: 'localhost',
|
||||
strategy: Strategy.UI,
|
||||
|
||||
@@ -2,6 +2,7 @@ import { cli, Strategy } from '@jackwener/opencli/registry';
|
||||
export const statusCommand = cli({
|
||||
site: 'antigravity',
|
||||
name: 'status',
|
||||
access: 'read',
|
||||
description: 'Check Antigravity CDP connection and get current page state',
|
||||
domain: 'localhost',
|
||||
strategy: Strategy.UI,
|
||||
|
||||
@@ -2,6 +2,7 @@ import { cli, Strategy } from '@jackwener/opencli/registry';
|
||||
export const watchCommand = cli({
|
||||
site: 'antigravity',
|
||||
name: 'watch',
|
||||
access: 'read',
|
||||
description: 'Stream new chat messages from Antigravity in real-time',
|
||||
domain: 'localhost',
|
||||
strategy: Strategy.UI,
|
||||
|
||||
@@ -4,6 +4,7 @@ import { itunesFetch, formatDuration, formatDate } from './utils.js';
|
||||
cli({
|
||||
site: 'apple-podcasts',
|
||||
name: 'episodes',
|
||||
access: 'read',
|
||||
description: 'List recent episodes of an Apple Podcast (use ID from search)',
|
||||
strategy: Strategy.PUBLIC,
|
||||
browser: false,
|
||||
|
||||
@@ -4,6 +4,7 @@ import { itunesFetch } from './utils.js';
|
||||
cli({
|
||||
site: 'apple-podcasts',
|
||||
name: 'search',
|
||||
access: 'read',
|
||||
description: 'Search Apple Podcasts',
|
||||
strategy: Strategy.PUBLIC,
|
||||
browser: false,
|
||||
|
||||
@@ -6,6 +6,7 @@ const CHARTS_TIMEOUT_MS = 15_000;
|
||||
cli({
|
||||
site: 'apple-podcasts',
|
||||
name: 'top',
|
||||
access: 'read',
|
||||
description: 'Top podcasts chart on Apple Podcasts',
|
||||
strategy: Strategy.PUBLIC,
|
||||
browser: false,
|
||||
|
||||
@@ -4,6 +4,7 @@ import { arxivFetch, parseEntries } from './utils.js';
|
||||
cli({
|
||||
site: 'arxiv',
|
||||
name: 'paper',
|
||||
access: 'read',
|
||||
description: 'Get arXiv paper details by ID',
|
||||
strategy: Strategy.PUBLIC,
|
||||
browser: false,
|
||||
|
||||
@@ -4,6 +4,7 @@ import { arxivFetch, normalizeArxivCategory, normalizeArxivLimit, parseEntries }
|
||||
cli({
|
||||
site: 'arxiv',
|
||||
name: 'recent',
|
||||
access: 'read',
|
||||
description: 'List recent arXiv submissions in a category',
|
||||
strategy: Strategy.PUBLIC,
|
||||
browser: false,
|
||||
|
||||
@@ -4,6 +4,7 @@ import { arxivFetch, normalizeArxivLimit, parseEntries } from './utils.js';
|
||||
cli({
|
||||
site: 'arxiv',
|
||||
name: 'search',
|
||||
access: 'read',
|
||||
description: 'Search arXiv papers',
|
||||
strategy: Strategy.PUBLIC,
|
||||
browser: false,
|
||||
|
||||
@@ -4,6 +4,7 @@ import { clampInt, requireNonEmptyQuery } from '../_shared/common.js';
|
||||
cli({
|
||||
site: 'baidu-scholar',
|
||||
name: 'search',
|
||||
access: 'read',
|
||||
description: '百度学术搜索',
|
||||
domain: 'xueshu.baidu.com',
|
||||
strategy: Strategy.PUBLIC,
|
||||
|
||||
@@ -13,6 +13,7 @@ import { cli, Strategy } from '@jackwener/opencli/registry';
|
||||
cli({
|
||||
site: 'band',
|
||||
name: 'bands',
|
||||
access: 'read',
|
||||
description: 'List all Bands you belong to',
|
||||
domain: 'www.band.us',
|
||||
strategy: Strategy.COOKIE,
|
||||
|
||||
@@ -12,6 +12,7 @@ import { cli, Strategy } from '@jackwener/opencli/registry';
|
||||
cli({
|
||||
site: 'band',
|
||||
name: 'mentions',
|
||||
access: 'read',
|
||||
description: 'Show Band notifications where you are @mentioned',
|
||||
domain: 'www.band.us',
|
||||
strategy: Strategy.INTERCEPT,
|
||||
|
||||
@@ -18,6 +18,7 @@ import { cli, Strategy } from '@jackwener/opencli/registry';
|
||||
cli({
|
||||
site: 'band',
|
||||
name: 'post',
|
||||
access: 'read',
|
||||
description: 'Export full content of a post including comments',
|
||||
domain: 'www.band.us',
|
||||
strategy: Strategy.COOKIE,
|
||||
|
||||
@@ -10,6 +10,7 @@ import { cli, Strategy } from '@jackwener/opencli/registry';
|
||||
cli({
|
||||
site: 'band',
|
||||
name: 'posts',
|
||||
access: 'read',
|
||||
description: 'List posts from a Band',
|
||||
domain: 'www.band.us',
|
||||
strategy: Strategy.COOKIE,
|
||||
|
||||
@@ -7,6 +7,7 @@ import { cli, Strategy } from '@jackwener/opencli/registry';
|
||||
cli({
|
||||
site: 'barchart',
|
||||
name: 'flow',
|
||||
access: 'read',
|
||||
description: 'Barchart unusual options activity / options flow',
|
||||
domain: 'www.barchart.com',
|
||||
strategy: Strategy.COOKIE,
|
||||
|
||||
@@ -7,6 +7,7 @@ import { cli, Strategy } from '@jackwener/opencli/registry';
|
||||
cli({
|
||||
site: 'barchart',
|
||||
name: 'greeks',
|
||||
access: 'read',
|
||||
description: 'Barchart options greeks overview (IV, delta, gamma, theta, vega)',
|
||||
domain: 'www.barchart.com',
|
||||
strategy: Strategy.COOKIE,
|
||||
|
||||
@@ -6,6 +6,7 @@ import { cli, Strategy } from '@jackwener/opencli/registry';
|
||||
cli({
|
||||
site: 'barchart',
|
||||
name: 'options',
|
||||
access: 'read',
|
||||
description: 'Barchart options chain with greeks, IV, volume, and open interest',
|
||||
domain: 'www.barchart.com',
|
||||
strategy: Strategy.COOKIE,
|
||||
|
||||
@@ -7,6 +7,7 @@ import { CommandExecutionError } from '@jackwener/opencli/errors';
|
||||
cli({
|
||||
site: 'barchart',
|
||||
name: 'quote',
|
||||
access: 'read',
|
||||
description: 'Barchart stock quote with price, volume, and key metrics',
|
||||
domain: 'www.barchart.com',
|
||||
strategy: Strategy.COOKIE,
|
||||
|
||||
@@ -5,6 +5,7 @@ import { cli, Strategy } from '@jackwener/opencli/registry';
|
||||
cli({
|
||||
site: 'bbc',
|
||||
name: 'news',
|
||||
access: 'read',
|
||||
description: 'BBC News headlines (RSS)',
|
||||
domain: 'www.bbc.com',
|
||||
strategy: Strategy.PUBLIC,
|
||||
|
||||
@@ -7,6 +7,7 @@ import { apiGet, resolveBvid } from './utils.js';
|
||||
cli({
|
||||
site: 'bilibili',
|
||||
name: 'comments',
|
||||
access: 'read',
|
||||
description: '获取 B站视频评论(使用官方 API + WBI 签名)',
|
||||
domain: 'www.bilibili.com',
|
||||
strategy: Strategy.COOKIE,
|
||||
|
||||
@@ -14,6 +14,7 @@ import { resolveBvid } from './utils.js';
|
||||
cli({
|
||||
site: 'bilibili',
|
||||
name: 'download',
|
||||
access: 'read',
|
||||
description: '下载B站视频(需要 yt-dlp)',
|
||||
domain: 'www.bilibili.com',
|
||||
strategy: Strategy.COOKIE,
|
||||
|
||||
@@ -3,6 +3,7 @@ import { apiGet } from './utils.js';
|
||||
cli({
|
||||
site: 'bilibili',
|
||||
name: 'dynamic',
|
||||
access: 'read',
|
||||
description: 'Get Bilibili user dynamic feed',
|
||||
domain: 'www.bilibili.com',
|
||||
strategy: Strategy.COOKIE,
|
||||
|
||||
@@ -3,6 +3,7 @@ import { apiGet, payloadData, getSelfUid } from './utils.js';
|
||||
cli({
|
||||
site: 'bilibili',
|
||||
name: 'favorite',
|
||||
access: 'write',
|
||||
description: '我的收藏夹',
|
||||
domain: 'www.bilibili.com',
|
||||
strategy: Strategy.COOKIE,
|
||||
|
||||
@@ -65,6 +65,7 @@ function parseItem(item) {
|
||||
cli({
|
||||
site: 'bilibili',
|
||||
name: 'feed',
|
||||
access: 'read',
|
||||
description: '动态时间线(不传 uid 查关注时间线,传 uid 查指定用户动态)',
|
||||
domain: 'www.bilibili.com',
|
||||
strategy: Strategy.COOKIE,
|
||||
@@ -134,6 +135,7 @@ cli({
|
||||
cli({
|
||||
site: 'bilibili',
|
||||
name: 'feed-detail',
|
||||
access: 'read',
|
||||
description: '查看 Bilibili 动态详情(支持充电专属内容)',
|
||||
domain: 'www.bilibili.com',
|
||||
strategy: Strategy.COOKIE,
|
||||
|
||||
@@ -4,6 +4,7 @@ import { fetchJson, getSelfUid, resolveUid } from './utils.js';
|
||||
cli({
|
||||
site: 'bilibili',
|
||||
name: 'following',
|
||||
access: 'read',
|
||||
description: '获取 Bilibili 用户的关注列表',
|
||||
domain: 'www.bilibili.com',
|
||||
strategy: Strategy.COOKIE,
|
||||
|
||||
@@ -3,6 +3,7 @@ import { apiGet, payloadData } from './utils.js';
|
||||
cli({
|
||||
site: 'bilibili',
|
||||
name: 'history',
|
||||
access: 'read',
|
||||
description: '我的观看历史',
|
||||
domain: 'www.bilibili.com',
|
||||
strategy: Strategy.COOKIE,
|
||||
|
||||
@@ -2,6 +2,7 @@ import { cli } from '@jackwener/opencli/registry';
|
||||
cli({
|
||||
site: 'bilibili',
|
||||
name: 'hot',
|
||||
access: 'read',
|
||||
description: 'B站热门视频',
|
||||
domain: 'www.bilibili.com',
|
||||
args: [
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
import { cli, Strategy } from '@jackwener/opencli/registry';
|
||||
import { apiGet, getSelfUid } from './utils.js';
|
||||
cli({
|
||||
site: 'bilibili', name: 'me', description: 'My Bilibili profile info', domain: 'www.bilibili.com', strategy: Strategy.COOKIE,
|
||||
site: 'bilibili', name: 'me', access: 'read', description: 'My Bilibili profile info', domain: 'www.bilibili.com', strategy: Strategy.COOKIE,
|
||||
args: [],
|
||||
columns: ['name', 'uid', 'level', 'coins', 'followers', 'following'],
|
||||
func: async (page) => {
|
||||
|
||||
@@ -3,6 +3,7 @@ import { apiGet } from './utils.js';
|
||||
cli({
|
||||
site: 'bilibili',
|
||||
name: 'ranking',
|
||||
access: 'read',
|
||||
description: 'Get Bilibili video ranking board',
|
||||
domain: 'www.bilibili.com',
|
||||
strategy: Strategy.COOKIE,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { cli, Strategy } from '@jackwener/opencli/registry';
|
||||
import { apiGet, stripHtml } from './utils.js';
|
||||
cli({
|
||||
site: 'bilibili', name: 'search', description: 'Search Bilibili videos or users', domain: 'www.bilibili.com', strategy: Strategy.COOKIE,
|
||||
site: 'bilibili', name: 'search', access: 'read', description: 'Search Bilibili videos or users', domain: 'www.bilibili.com', strategy: Strategy.COOKIE,
|
||||
args: [
|
||||
{ name: 'query', required: true, positional: true, help: 'Search keyword' },
|
||||
{ name: 'type', default: 'video', help: 'video or user' },
|
||||
|
||||
@@ -4,6 +4,7 @@ import { apiGet, resolveBvid } from './utils.js';
|
||||
cli({
|
||||
site: 'bilibili',
|
||||
name: 'subtitle',
|
||||
access: 'read',
|
||||
description: '获取 Bilibili 视频的字幕',
|
||||
strategy: Strategy.COOKIE,
|
||||
args: [
|
||||
|
||||
@@ -3,6 +3,7 @@ import { apiGet, payloadData, resolveUid } from './utils.js';
|
||||
cli({
|
||||
site: 'bilibili',
|
||||
name: 'user-videos',
|
||||
access: 'read',
|
||||
description: '查看指定用户的投稿视频',
|
||||
domain: 'www.bilibili.com',
|
||||
strategy: Strategy.COOKIE,
|
||||
|
||||
@@ -5,6 +5,7 @@ import { apiGet, resolveBvid } from './utils.js';
|
||||
cli({
|
||||
site: 'bilibili',
|
||||
name: 'video',
|
||||
access: 'read',
|
||||
description: 'Get Bilibili video metadata (title, author, duration, stats, etc.)',
|
||||
strategy: Strategy.COOKIE,
|
||||
args: [
|
||||
|
||||
@@ -3,6 +3,7 @@ import { cli, Strategy } from '@jackwener/opencli/registry';
|
||||
cli({
|
||||
site: 'binance',
|
||||
name: 'asks',
|
||||
access: 'read',
|
||||
description: 'Order book ask prices for a trading pair',
|
||||
domain: 'data-api.binance.vision',
|
||||
strategy: Strategy.PUBLIC,
|
||||
|
||||
@@ -3,6 +3,7 @@ import { cli, Strategy } from '@jackwener/opencli/registry';
|
||||
cli({
|
||||
site: 'binance',
|
||||
name: 'depth',
|
||||
access: 'read',
|
||||
description: 'Order book bid and ask prices for a trading pair',
|
||||
domain: 'data-api.binance.vision',
|
||||
strategy: Strategy.PUBLIC,
|
||||
|
||||
@@ -3,6 +3,7 @@ import { cli, Strategy } from '@jackwener/opencli/registry';
|
||||
cli({
|
||||
site: 'binance',
|
||||
name: 'gainers',
|
||||
access: 'read',
|
||||
description: 'Top gaining trading pairs by 24h price change',
|
||||
domain: 'data-api.binance.vision',
|
||||
strategy: Strategy.PUBLIC,
|
||||
|
||||
@@ -3,6 +3,7 @@ import { cli, Strategy } from '@jackwener/opencli/registry';
|
||||
cli({
|
||||
site: 'binance',
|
||||
name: 'klines',
|
||||
access: 'read',
|
||||
description: 'Candlestick/kline data for a trading pair',
|
||||
domain: 'data-api.binance.vision',
|
||||
strategy: Strategy.PUBLIC,
|
||||
|
||||
@@ -3,6 +3,7 @@ import { cli, Strategy } from '@jackwener/opencli/registry';
|
||||
cli({
|
||||
site: 'binance',
|
||||
name: 'losers',
|
||||
access: 'read',
|
||||
description: 'Top losing trading pairs by 24h price change',
|
||||
domain: 'data-api.binance.vision',
|
||||
strategy: Strategy.PUBLIC,
|
||||
|
||||
@@ -3,6 +3,7 @@ import { cli, Strategy } from '@jackwener/opencli/registry';
|
||||
cli({
|
||||
site: 'binance',
|
||||
name: 'pairs',
|
||||
access: 'read',
|
||||
description: 'List active trading pairs on Binance',
|
||||
domain: 'data-api.binance.vision',
|
||||
strategy: Strategy.PUBLIC,
|
||||
|
||||
@@ -3,6 +3,7 @@ import { cli, Strategy } from '@jackwener/opencli/registry';
|
||||
cli({
|
||||
site: 'binance',
|
||||
name: 'price',
|
||||
access: 'read',
|
||||
description: 'Quick price check for a trading pair',
|
||||
domain: 'data-api.binance.vision',
|
||||
strategy: Strategy.PUBLIC,
|
||||
|
||||
@@ -3,6 +3,7 @@ import { cli, Strategy } from '@jackwener/opencli/registry';
|
||||
cli({
|
||||
site: 'binance',
|
||||
name: 'prices',
|
||||
access: 'read',
|
||||
description: 'Latest prices for all trading pairs',
|
||||
domain: 'data-api.binance.vision',
|
||||
strategy: Strategy.PUBLIC,
|
||||
|
||||
@@ -3,6 +3,7 @@ import { cli, Strategy } from '@jackwener/opencli/registry';
|
||||
cli({
|
||||
site: 'binance',
|
||||
name: 'ticker',
|
||||
access: 'read',
|
||||
description: '24h ticker statistics for top trading pairs by volume',
|
||||
domain: 'data-api.binance.vision',
|
||||
strategy: Strategy.PUBLIC,
|
||||
|
||||
@@ -3,6 +3,7 @@ import { cli, Strategy } from '@jackwener/opencli/registry';
|
||||
cli({
|
||||
site: 'binance',
|
||||
name: 'top',
|
||||
access: 'read',
|
||||
description: 'Top trading pairs by 24h volume on Binance',
|
||||
domain: 'data-api.binance.vision',
|
||||
strategy: Strategy.PUBLIC,
|
||||
|
||||
@@ -3,6 +3,7 @@ import { cli, Strategy } from '@jackwener/opencli/registry';
|
||||
cli({
|
||||
site: 'binance',
|
||||
name: 'trades',
|
||||
access: 'read',
|
||||
description: 'Recent trades for a trading pair',
|
||||
domain: 'data-api.binance.vision',
|
||||
strategy: Strategy.PUBLIC,
|
||||
|
||||
@@ -3,6 +3,7 @@ import { fetchBloombergFeed } from './utils.js';
|
||||
cli({
|
||||
site: 'bloomberg',
|
||||
name: 'businessweek',
|
||||
access: 'read',
|
||||
description: 'Bloomberg Businessweek top stories (RSS)',
|
||||
domain: 'feeds.bloomberg.com',
|
||||
strategy: Strategy.PUBLIC,
|
||||
|
||||
@@ -3,6 +3,7 @@ import { fetchBloombergFeed } from './utils.js';
|
||||
cli({
|
||||
site: 'bloomberg',
|
||||
name: 'economics',
|
||||
access: 'read',
|
||||
description: 'Bloomberg Economics top stories (RSS)',
|
||||
domain: 'feeds.bloomberg.com',
|
||||
strategy: Strategy.PUBLIC,
|
||||
|
||||
@@ -3,6 +3,7 @@ import { BLOOMBERG_FEEDS } from './utils.js';
|
||||
cli({
|
||||
site: 'bloomberg',
|
||||
name: 'feeds',
|
||||
access: 'read',
|
||||
description: 'List the Bloomberg RSS feed aliases used by the adapter',
|
||||
domain: 'feeds.bloomberg.com',
|
||||
strategy: Strategy.PUBLIC,
|
||||
|
||||
@@ -3,6 +3,7 @@ import { fetchBloombergFeed } from './utils.js';
|
||||
cli({
|
||||
site: 'bloomberg',
|
||||
name: 'industries',
|
||||
access: 'read',
|
||||
description: 'Bloomberg Industries top stories (RSS)',
|
||||
domain: 'feeds.bloomberg.com',
|
||||
strategy: Strategy.PUBLIC,
|
||||
|
||||
@@ -3,6 +3,7 @@ import { fetchBloombergFeed } from './utils.js';
|
||||
cli({
|
||||
site: 'bloomberg',
|
||||
name: 'main',
|
||||
access: 'read',
|
||||
description: 'Bloomberg homepage top stories (RSS)',
|
||||
domain: 'feeds.bloomberg.com',
|
||||
strategy: Strategy.PUBLIC,
|
||||
|
||||
@@ -3,6 +3,7 @@ import { fetchBloombergFeed } from './utils.js';
|
||||
cli({
|
||||
site: 'bloomberg',
|
||||
name: 'markets',
|
||||
access: 'read',
|
||||
description: 'Bloomberg Markets top stories (RSS)',
|
||||
domain: 'feeds.bloomberg.com',
|
||||
strategy: Strategy.PUBLIC,
|
||||
|
||||
@@ -4,6 +4,7 @@ import { extractStoryMediaLinks, renderStoryBody, validateBloombergLink, } from
|
||||
cli({
|
||||
site: 'bloomberg',
|
||||
name: 'news',
|
||||
access: 'read',
|
||||
description: 'Read a Bloomberg story/article page and return title, full content, and media links',
|
||||
domain: 'www.bloomberg.com',
|
||||
strategy: Strategy.COOKIE,
|
||||
|
||||
@@ -3,6 +3,7 @@ import { fetchBloombergFeed } from './utils.js';
|
||||
cli({
|
||||
site: 'bloomberg',
|
||||
name: 'opinions',
|
||||
access: 'read',
|
||||
description: 'Bloomberg Opinion top stories (RSS)',
|
||||
domain: 'feeds.bloomberg.com',
|
||||
strategy: Strategy.PUBLIC,
|
||||
|
||||
@@ -3,6 +3,7 @@ import { fetchBloombergFeed } from './utils.js';
|
||||
cli({
|
||||
site: 'bloomberg',
|
||||
name: 'politics',
|
||||
access: 'read',
|
||||
description: 'Bloomberg Politics top stories (RSS)',
|
||||
domain: 'feeds.bloomberg.com',
|
||||
strategy: Strategy.PUBLIC,
|
||||
|
||||
@@ -3,6 +3,7 @@ import { fetchBloombergFeed } from './utils.js';
|
||||
cli({
|
||||
site: 'bloomberg',
|
||||
name: 'tech',
|
||||
access: 'read',
|
||||
description: 'Bloomberg Tech top stories (RSS)',
|
||||
domain: 'feeds.bloomberg.com',
|
||||
strategy: Strategy.PUBLIC,
|
||||
|
||||
@@ -2,6 +2,7 @@ import { cli, Strategy } from '@jackwener/opencli/registry';
|
||||
cli({
|
||||
site: 'bluesky',
|
||||
name: 'feeds',
|
||||
access: 'read',
|
||||
description: 'Popular Bluesky feed generators',
|
||||
domain: 'public.api.bsky.app',
|
||||
strategy: Strategy.PUBLIC,
|
||||
|
||||
@@ -2,6 +2,7 @@ import { cli, Strategy } from '@jackwener/opencli/registry';
|
||||
cli({
|
||||
site: 'bluesky',
|
||||
name: 'followers',
|
||||
access: 'read',
|
||||
description: 'List followers of a Bluesky user',
|
||||
domain: 'public.api.bsky.app',
|
||||
strategy: Strategy.PUBLIC,
|
||||
|
||||
@@ -2,6 +2,7 @@ import { cli, Strategy } from '@jackwener/opencli/registry';
|
||||
cli({
|
||||
site: 'bluesky',
|
||||
name: 'following',
|
||||
access: 'read',
|
||||
description: 'List accounts a Bluesky user is following',
|
||||
domain: 'public.api.bsky.app',
|
||||
strategy: Strategy.PUBLIC,
|
||||
|
||||
@@ -2,6 +2,7 @@ import { cli, Strategy } from '@jackwener/opencli/registry';
|
||||
cli({
|
||||
site: 'bluesky',
|
||||
name: 'profile',
|
||||
access: 'read',
|
||||
description: 'Get Bluesky user profile info',
|
||||
domain: 'public.api.bsky.app',
|
||||
strategy: Strategy.PUBLIC,
|
||||
|
||||
@@ -2,6 +2,7 @@ import { cli, Strategy } from '@jackwener/opencli/registry';
|
||||
cli({
|
||||
site: 'bluesky',
|
||||
name: 'search',
|
||||
access: 'read',
|
||||
description: 'Search Bluesky users',
|
||||
domain: 'public.api.bsky.app',
|
||||
strategy: Strategy.PUBLIC,
|
||||
|
||||
@@ -2,6 +2,7 @@ import { cli, Strategy } from '@jackwener/opencli/registry';
|
||||
cli({
|
||||
site: 'bluesky',
|
||||
name: 'starter-packs',
|
||||
access: 'read',
|
||||
description: 'Get starter packs created by a Bluesky user',
|
||||
domain: 'public.api.bsky.app',
|
||||
strategy: Strategy.PUBLIC,
|
||||
|
||||
@@ -2,6 +2,7 @@ import { cli, Strategy } from '@jackwener/opencli/registry';
|
||||
cli({
|
||||
site: 'bluesky',
|
||||
name: 'thread',
|
||||
access: 'read',
|
||||
description: 'Get a Bluesky post thread with replies',
|
||||
domain: 'public.api.bsky.app',
|
||||
strategy: Strategy.PUBLIC,
|
||||
|
||||
@@ -2,6 +2,7 @@ import { cli, Strategy } from '@jackwener/opencli/registry';
|
||||
cli({
|
||||
site: 'bluesky',
|
||||
name: 'trending',
|
||||
access: 'read',
|
||||
description: 'Trending topics on Bluesky',
|
||||
domain: 'public.api.bsky.app',
|
||||
strategy: Strategy.PUBLIC,
|
||||
|
||||
@@ -2,6 +2,7 @@ import { cli, Strategy } from '@jackwener/opencli/registry';
|
||||
cli({
|
||||
site: 'bluesky',
|
||||
name: 'user',
|
||||
access: 'read',
|
||||
description: 'Get recent posts from a Bluesky user',
|
||||
domain: 'public.api.bsky.app',
|
||||
strategy: Strategy.PUBLIC,
|
||||
|
||||
@@ -6,6 +6,7 @@ import { requirePage, navigateToChat, fetchRecommendList, clickCandidateInList,
|
||||
cli({
|
||||
site: 'boss',
|
||||
name: 'batchgreet',
|
||||
access: 'write',
|
||||
description: 'BOSS直聘批量向推荐候选人发送招呼',
|
||||
domain: 'www.zhipin.com',
|
||||
strategy: Strategy.COOKIE,
|
||||
|
||||
@@ -3,6 +3,7 @@ import { requirePage, navigateToChat, fetchFriendList } from './utils.js';
|
||||
cli({
|
||||
site: 'boss',
|
||||
name: 'chatlist',
|
||||
access: 'read',
|
||||
description: 'BOSS直聘查看聊天列表(招聘端)',
|
||||
domain: 'www.zhipin.com',
|
||||
strategy: Strategy.COOKIE,
|
||||
|
||||
@@ -3,6 +3,7 @@ import { requirePage, navigateToChat, bossFetch, findFriendByUid } from './utils
|
||||
cli({
|
||||
site: 'boss',
|
||||
name: 'chatmsg',
|
||||
access: 'read',
|
||||
description: 'BOSS直聘查看与候选人的聊天消息',
|
||||
domain: 'www.zhipin.com',
|
||||
strategy: Strategy.COOKIE,
|
||||
|
||||
@@ -6,6 +6,7 @@ import { requirePage, navigateTo, bossFetch, verbose } from './utils.js';
|
||||
cli({
|
||||
site: 'boss',
|
||||
name: 'detail',
|
||||
access: 'read',
|
||||
description: 'BOSS直聘查看职位详情',
|
||||
domain: 'www.zhipin.com',
|
||||
strategy: Strategy.COOKIE,
|
||||
|
||||
@@ -6,6 +6,7 @@ import { requirePage, navigateToChat, bossFetch, findFriendByUid, verbose } from
|
||||
cli({
|
||||
site: 'boss',
|
||||
name: 'exchange',
|
||||
access: 'write',
|
||||
description: 'BOSS直聘交换联系方式(请求手机/微信)',
|
||||
domain: 'www.zhipin.com',
|
||||
strategy: Strategy.COOKIE,
|
||||
|
||||
@@ -6,6 +6,7 @@ import { requirePage, navigateToChat, findFriendByUid, clickCandidateInList, typ
|
||||
cli({
|
||||
site: 'boss',
|
||||
name: 'greet',
|
||||
access: 'write',
|
||||
description: 'BOSS直聘向新候选人发送招呼(开始聊天)',
|
||||
domain: 'www.zhipin.com',
|
||||
strategy: Strategy.COOKIE,
|
||||
|
||||
@@ -6,6 +6,7 @@ import { requirePage, navigateToChat, bossFetch, findFriendByUid, verbose } from
|
||||
cli({
|
||||
site: 'boss',
|
||||
name: 'invite',
|
||||
access: 'write',
|
||||
description: 'BOSS直聘发送面试邀请',
|
||||
domain: 'www.zhipin.com',
|
||||
strategy: Strategy.COOKIE,
|
||||
|
||||
@@ -6,6 +6,7 @@ import { requirePage, navigateToChat, bossFetch, verbose } from './utils.js';
|
||||
cli({
|
||||
site: 'boss',
|
||||
name: 'joblist',
|
||||
access: 'read',
|
||||
description: 'BOSS直聘查看我发布的职位列表',
|
||||
domain: 'www.zhipin.com',
|
||||
strategy: Strategy.COOKIE,
|
||||
|
||||
@@ -15,6 +15,7 @@ const LABEL_MAP = {
|
||||
cli({
|
||||
site: 'boss',
|
||||
name: 'mark',
|
||||
access: 'write',
|
||||
description: 'BOSS直聘给候选人添加标签',
|
||||
domain: 'www.zhipin.com',
|
||||
strategy: Strategy.COOKIE,
|
||||
|
||||
@@ -6,6 +6,7 @@ import { requirePage, navigateToChat, bossFetch, fetchRecommendList, verbose } f
|
||||
cli({
|
||||
site: 'boss',
|
||||
name: 'recommend',
|
||||
access: 'read',
|
||||
description: 'BOSS直聘查看推荐候选人(新招呼列表)',
|
||||
domain: 'www.zhipin.com',
|
||||
strategy: Strategy.COOKIE,
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user