@zenalexa/unicli 0.225.2 → 0.225.3
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/AGENTS.md +2 -2
- package/README.md +3 -3
- package/README.zh-CN.md +3 -3
- package/dist/adapters/acl-anthology/papers.d.ts +16 -9
- package/dist/adapters/acl-anthology/papers.d.ts.map +1 -1
- package/dist/adapters/acl-anthology/papers.js +322 -58
- package/dist/adapters/acl-anthology/papers.js.map +1 -1
- package/dist/adapters/arxiv/papers.d.ts +22 -4
- package/dist/adapters/arxiv/papers.d.ts.map +1 -1
- package/dist/adapters/arxiv/papers.js +202 -4
- package/dist/adapters/arxiv/papers.js.map +1 -1
- package/dist/adapters/baidu-scholar/search.d.ts +15 -1
- package/dist/adapters/baidu-scholar/search.d.ts.map +1 -1
- package/dist/adapters/baidu-scholar/search.js +72 -8
- package/dist/adapters/baidu-scholar/search.js.map +1 -1
- package/dist/adapters/biorxiv/preprints.d.ts +9 -0
- package/dist/adapters/biorxiv/preprints.d.ts.map +1 -0
- package/dist/adapters/biorxiv/preprints.js +78 -0
- package/dist/adapters/biorxiv/preprints.js.map +1 -0
- package/dist/adapters/cnki/search.d.ts +82 -0
- package/dist/adapters/cnki/search.d.ts.map +1 -0
- package/dist/adapters/cnki/search.js +236 -0
- package/dist/adapters/cnki/search.js.map +1 -0
- package/dist/adapters/cvf/papers.d.ts +12 -7
- package/dist/adapters/cvf/papers.d.ts.map +1 -1
- package/dist/adapters/cvf/papers.js +210 -27
- package/dist/adapters/cvf/papers.js.map +1 -1
- package/dist/adapters/dblp/publications.d.ts +12 -5
- package/dist/adapters/dblp/publications.d.ts.map +1 -1
- package/dist/adapters/dblp/publications.js +31 -8
- package/dist/adapters/dblp/publications.js.map +1 -1
- package/dist/adapters/google-scholar/search.d.ts +22 -1
- package/dist/adapters/google-scholar/search.d.ts.map +1 -1
- package/dist/adapters/google-scholar/search.js +129 -14
- package/dist/adapters/google-scholar/search.js.map +1 -1
- package/dist/adapters/hf/paper.d.ts +12 -3
- package/dist/adapters/hf/paper.d.ts.map +1 -1
- package/dist/adapters/hf/paper.js +65 -5
- package/dist/adapters/hf/paper.js.map +1 -1
- package/dist/adapters/medrxiv/preprints.d.ts +9 -0
- package/dist/adapters/medrxiv/preprints.d.ts.map +1 -0
- package/dist/adapters/medrxiv/preprints.js +78 -0
- package/dist/adapters/medrxiv/preprints.js.map +1 -0
- package/dist/adapters/neurips/proceedings.d.ts +8 -7
- package/dist/adapters/neurips/proceedings.d.ts.map +1 -1
- package/dist/adapters/neurips/proceedings.js +209 -21
- package/dist/adapters/neurips/proceedings.js.map +1 -1
- package/dist/adapters/openalex/works.d.ts +21 -5
- package/dist/adapters/openalex/works.d.ts.map +1 -1
- package/dist/adapters/openalex/works.js +108 -8
- package/dist/adapters/openalex/works.js.map +1 -1
- package/dist/adapters/openreview/papers.d.ts +10 -4
- package/dist/adapters/openreview/papers.d.ts.map +1 -1
- package/dist/adapters/openreview/papers.js +351 -24
- package/dist/adapters/openreview/papers.js.map +1 -1
- package/dist/adapters/pmlr/proceedings.d.ts +6 -6
- package/dist/adapters/pmlr/proceedings.d.ts.map +1 -1
- package/dist/adapters/pmlr/proceedings.js +92 -12
- package/dist/adapters/pmlr/proceedings.js.map +1 -1
- package/dist/adapters/pubmed/articles.d.ts +8 -4
- package/dist/adapters/pubmed/articles.d.ts.map +1 -1
- package/dist/adapters/pubmed/articles.js +272 -39
- package/dist/adapters/pubmed/articles.js.map +1 -1
- package/dist/adapters/rxiv/preprints.d.ts +75 -0
- package/dist/adapters/rxiv/preprints.d.ts.map +1 -0
- package/dist/adapters/rxiv/preprints.js +651 -0
- package/dist/adapters/rxiv/preprints.js.map +1 -0
- package/dist/adapters/scholar-artifacts/pdf-read.d.ts +49 -0
- package/dist/adapters/scholar-artifacts/pdf-read.d.ts.map +1 -0
- package/dist/adapters/scholar-artifacts/pdf-read.js +204 -0
- package/dist/adapters/scholar-artifacts/pdf-read.js.map +1 -0
- package/dist/adapters/scholar-artifacts/pdf.d.ts +16 -0
- package/dist/adapters/scholar-artifacts/pdf.d.ts.map +1 -0
- package/dist/adapters/scholar-artifacts/pdf.js +122 -0
- package/dist/adapters/scholar-artifacts/pdf.js.map +1 -0
- package/dist/adapters/semantic-scholar/papers.d.ts +6 -6
- package/dist/adapters/semantic-scholar/papers.d.ts.map +1 -1
- package/dist/adapters/semantic-scholar/papers.js +80 -6
- package/dist/adapters/semantic-scholar/papers.js.map +1 -1
- package/dist/adapters/unpaywall/works.d.ts +7 -7
- package/dist/adapters/unpaywall/works.d.ts.map +1 -1
- package/dist/adapters/unpaywall/works.js +104 -12
- package/dist/adapters/unpaywall/works.js.map +1 -1
- package/dist/adapters/wanfang/search.d.ts +14 -0
- package/dist/adapters/wanfang/search.d.ts.map +1 -1
- package/dist/adapters/wanfang/search.js +56 -7
- package/dist/adapters/wanfang/search.js.map +1 -1
- package/dist/browser/page.d.ts +2 -0
- package/dist/browser/page.d.ts.map +1 -1
- package/dist/browser/page.js +12 -0
- package/dist/browser/page.js.map +1 -1
- package/dist/commands/browser/actions.d.ts.map +1 -1
- package/dist/commands/browser/actions.js +59 -3
- package/dist/commands/browser/actions.js.map +1 -1
- package/dist/commands/scholar.d.ts +77 -5
- package/dist/commands/scholar.d.ts.map +1 -1
- package/dist/commands/scholar.js +2945 -83
- package/dist/commands/scholar.js.map +1 -1
- package/dist/core/command-contract.d.ts.map +1 -1
- package/dist/core/command-contract.js +5 -0
- package/dist/core/command-contract.js.map +1 -1
- package/dist/core/schema-v2.d.ts +1 -0
- package/dist/core/schema-v2.d.ts.map +1 -1
- package/dist/core/schema-v2.js +1 -0
- package/dist/core/schema-v2.js.map +1 -1
- package/dist/discovery/aliases.d.ts.map +1 -1
- package/dist/discovery/aliases.js +208 -0
- package/dist/discovery/aliases.js.map +1 -1
- package/dist/discovery/core-catalog.d.ts +2 -0
- package/dist/discovery/core-catalog.d.ts.map +1 -1
- package/dist/discovery/core-catalog.js +487 -0
- package/dist/discovery/core-catalog.js.map +1 -1
- package/dist/discovery/intents.d.ts.map +1 -1
- package/dist/discovery/intents.js +273 -2
- package/dist/discovery/intents.js.map +1 -1
- package/dist/discovery/loader.d.ts.map +1 -1
- package/dist/discovery/loader.js +3 -0
- package/dist/discovery/loader.js.map +1 -1
- package/dist/engine/capability-policy.d.ts.map +1 -1
- package/dist/engine/capability-policy.js +30 -4
- package/dist/engine/capability-policy.js.map +1 -1
- package/dist/engine/kernel/stages.d.ts.map +1 -1
- package/dist/engine/kernel/stages.js +3 -0
- package/dist/engine/kernel/stages.js.map +1 -1
- package/dist/engine/operation-policy.d.ts +4 -1
- package/dist/engine/operation-policy.d.ts.map +1 -1
- package/dist/engine/operation-policy.js +23 -0
- package/dist/engine/operation-policy.js.map +1 -1
- package/dist/fast-path/manifest.d.ts +3 -0
- package/dist/fast-path/manifest.d.ts.map +1 -1
- package/dist/fast-path/manifest.js.map +1 -1
- package/dist/fast-path/policy.d.ts.map +1 -1
- package/dist/fast-path/policy.js +3 -0
- package/dist/fast-path/policy.js.map +1 -1
- package/dist/manifest-compact.txt +1 -1
- package/dist/manifest.json +6804 -1002
- package/dist/registry.d.ts +2 -0
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +1 -0
- package/dist/registry.js.map +1 -1
- package/dist/types/scholarly.d.ts +19 -4
- package/dist/types/scholarly.d.ts.map +1 -1
- package/dist/types/scholarly.js +4 -4
- package/dist/types.d.ts +8 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +1 -1
- package/server.json +2 -2
- package/skills/unicli/SKILL.md +1 -1
- package/skills/unicli-claude-code/SKILL.md +1 -1
- package/skills/unicli-hermes/SKILL.md +1 -1
- package/src/adapters/acl-anthology/papers.test.ts +111 -0
- package/src/adapters/acl-anthology/papers.ts +379 -71
- package/src/adapters/arxiv/papers.test.ts +46 -0
- package/src/adapters/arxiv/papers.ts +251 -4
- package/src/adapters/baidu-scholar/search.ts +74 -11
- package/src/adapters/biorxiv/preprints.ts +112 -0
- package/src/adapters/cnki/search.ts +357 -0
- package/src/adapters/cvf/papers.ts +260 -27
- package/src/adapters/dblp/publications.test.ts +9 -0
- package/src/adapters/dblp/publications.ts +31 -8
- package/src/adapters/google-scholar/search.ts +165 -17
- package/src/adapters/hf/paper.test.ts +23 -0
- package/src/adapters/hf/paper.ts +89 -5
- package/src/adapters/hf/top.yaml +34 -2
- package/src/adapters/huggingface-papers/daily.yaml +37 -3
- package/src/adapters/huggingface-papers/search.yaml +43 -9
- package/src/adapters/medrxiv/preprints.ts +112 -0
- package/src/adapters/neurips/proceedings.ts +266 -22
- package/src/adapters/openalex/works.test.ts +15 -4
- package/src/adapters/openalex/works.ts +136 -8
- package/src/adapters/openreview/papers.test.ts +31 -0
- package/src/adapters/openreview/papers.ts +407 -29
- package/src/adapters/pmlr/proceedings.ts +102 -12
- package/src/adapters/pubmed/articles.test.ts +88 -1
- package/src/adapters/pubmed/articles.ts +343 -44
- package/src/adapters/rxiv/preprints.test.ts +233 -0
- package/src/adapters/rxiv/preprints.ts +849 -0
- package/src/adapters/scholar-artifacts/pdf-read.ts +277 -0
- package/src/adapters/scholar-artifacts/pdf.ts +133 -0
- package/src/adapters/semantic-scholar/papers.ts +98 -6
- package/src/adapters/unpaywall/works.ts +141 -12
- package/src/adapters/wanfang/search.ts +57 -7
- package/src/adapters/cnki/search.yaml +0 -49
|
@@ -1,13 +1,25 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @owner src/adapters/arxiv/papers.ts
|
|
3
|
-
* @does Register agent-facing arXiv author
|
|
4
|
-
* @needs export.arxiv.org Atom API, category validation, conservative XML parsing.
|
|
5
|
-
* @feeds surface coverage ledger, scholarly search workflow, arXiv category monitoring.
|
|
6
|
-
* @breaks arXiv Atom shape drift, weak category parsing, or silent empty feeds hide paper discovery failures.
|
|
3
|
+
* @does Register agent-facing arXiv author, recent category, and PDF text-read commands.
|
|
4
|
+
* @needs export.arxiv.org Atom API, arxiv.org PDF URLs, category/id validation, conservative XML parsing, pdftotext.
|
|
5
|
+
* @feeds surface coverage ledger, scholarly search/read workflow, arXiv category monitoring.
|
|
6
|
+
* @breaks arXiv Atom/PDF shape drift, weak category/id parsing, denied PDF downloads, missing pdftotext, or silent empty feeds hide paper discovery/read failures.
|
|
7
|
+
* @invariants arXiv ids are normalized before URL construction; read returns PDF-derived text only and labels `text_source=pdf`.
|
|
8
|
+
* @side-effects HTTPS egress to export.arxiv.org and arxiv.org; read writes PDFs under the requested output directory and executes pdftotext.
|
|
9
|
+
* @perf O(limit) for Atom discovery; O(PDF bytes + extracted pages) for read.
|
|
10
|
+
* @concurrency safe - per-command local state only
|
|
11
|
+
* @test src/adapters/arxiv/papers.test.ts, tests/unit/commands/scholar.test.ts
|
|
12
|
+
* @stability experimental
|
|
13
|
+
* @since 0.225.2
|
|
7
14
|
*/
|
|
15
|
+
import { execFile } from "node:child_process";
|
|
16
|
+
import { join, resolve } from "node:path";
|
|
17
|
+
import { promisify } from "node:util";
|
|
8
18
|
import { cli, Strategy } from "../../registry.js";
|
|
19
|
+
import { httpDownload, sanitizeFilename } from "../../engine/download.js";
|
|
9
20
|
const ARXIV_BASE = "https://export.arxiv.org/api/query";
|
|
10
21
|
const CATEGORY_RE = /^[a-z]+(?:-[a-z]+)*(?:\.[A-Za-z0-9]+(?:-[A-Za-z0-9]+)*)?$/;
|
|
22
|
+
const execFileAsync = promisify(execFile);
|
|
11
23
|
export function requireArxivLimit(value, fallback, max = 50) {
|
|
12
24
|
if (value === undefined || value === null || value === "")
|
|
13
25
|
return fallback;
|
|
@@ -23,6 +35,17 @@ export function requireArxivAuthor(value) {
|
|
|
23
35
|
throw new Error("arxiv author cannot be empty.");
|
|
24
36
|
return author;
|
|
25
37
|
}
|
|
38
|
+
export function normalizeArxivId(value) {
|
|
39
|
+
const id = String(value ?? "")
|
|
40
|
+
.trim()
|
|
41
|
+
.replace(/^arxiv:/i, "")
|
|
42
|
+
.replace(/^https?:\/\/(?:www\.)?arxiv\.org\/(?:abs|pdf)\//i, "")
|
|
43
|
+
.replace(/\.pdf$/i, "");
|
|
44
|
+
if (!/^(?:\d{4}\.\d{4,5}|[a-z-]+(?:\.[A-Z]{2})?\/\d{7})(?:v\d+)?$/i.test(id)) {
|
|
45
|
+
throw new Error(`Invalid arXiv id "${String(value ?? "")}".`);
|
|
46
|
+
}
|
|
47
|
+
return id;
|
|
48
|
+
}
|
|
26
49
|
export function requireArxivCategory(value) {
|
|
27
50
|
const category = String(value ?? "").trim();
|
|
28
51
|
if (!CATEGORY_RE.test(category)) {
|
|
@@ -124,6 +147,116 @@ function compactRows(entries) {
|
|
|
124
147
|
url: entry.url,
|
|
125
148
|
}));
|
|
126
149
|
}
|
|
150
|
+
function arxivPdfUrl(id) {
|
|
151
|
+
return `https://arxiv.org/pdf/${id}`;
|
|
152
|
+
}
|
|
153
|
+
function arxivAbsUrl(id) {
|
|
154
|
+
return `https://arxiv.org/abs/${id.replace(/v\d+$/i, "")}`;
|
|
155
|
+
}
|
|
156
|
+
export function arxivArtifactFilename(input) {
|
|
157
|
+
const title = String(input.title ?? "")
|
|
158
|
+
.replace(/\s+/g, " ")
|
|
159
|
+
.trim()
|
|
160
|
+
.replace(/[^A-Za-z0-9._-]+/g, "-")
|
|
161
|
+
.replace(/^-+|-+$/g, "")
|
|
162
|
+
.slice(0, 96);
|
|
163
|
+
return sanitizeFilename(`${input.id}${title ? `-${title}` : ""}.pdf`);
|
|
164
|
+
}
|
|
165
|
+
export function requireArxivPageRange(firstPage, lastPage) {
|
|
166
|
+
const first = Number(firstPage ?? 1);
|
|
167
|
+
const last = Number(lastPage ?? 20);
|
|
168
|
+
if (!Number.isInteger(first) || first < 1) {
|
|
169
|
+
throw new Error("arxiv first-page must be an integer >= 1.");
|
|
170
|
+
}
|
|
171
|
+
if (!Number.isInteger(last) || last < first) {
|
|
172
|
+
throw new Error("arxiv last-page must be an integer >= first-page.");
|
|
173
|
+
}
|
|
174
|
+
return { firstPage: first, lastPage: last };
|
|
175
|
+
}
|
|
176
|
+
export function requireArxivMaxChars(value, fallback = 40_000) {
|
|
177
|
+
if (value === undefined || value === null || value === "")
|
|
178
|
+
return fallback;
|
|
179
|
+
const n = Number(value);
|
|
180
|
+
if (!Number.isInteger(n) || n < 1_000 || n > 1_000_000) {
|
|
181
|
+
throw new Error(`arxiv max-chars must be an integer in [1000, 1000000]. Got: ${String(value)}`);
|
|
182
|
+
}
|
|
183
|
+
return n;
|
|
184
|
+
}
|
|
185
|
+
function truncateText(text, maxChars) {
|
|
186
|
+
if (text.length <= maxChars) {
|
|
187
|
+
return { text, truncated: false, originalChars: text.length };
|
|
188
|
+
}
|
|
189
|
+
return {
|
|
190
|
+
text: `${text.slice(0, maxChars).trimEnd()}\n\n[truncated at ${maxChars} characters]`,
|
|
191
|
+
truncated: true,
|
|
192
|
+
originalChars: text.length,
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
async function fetchArxivEntryById(id) {
|
|
196
|
+
const params = new URLSearchParams({ id_list: id });
|
|
197
|
+
const rows = parseArxivEntries(await fetchArxiv(params));
|
|
198
|
+
const row = rows[0];
|
|
199
|
+
if (!row)
|
|
200
|
+
throw new Error(`No arXiv paper found for ${id}.`);
|
|
201
|
+
return row;
|
|
202
|
+
}
|
|
203
|
+
export async function readArxivPaper(kwargs) {
|
|
204
|
+
const id = normalizeArxivId(kwargs.id ?? kwargs.arxiv_id ?? kwargs.ref);
|
|
205
|
+
const entry = await fetchArxivEntryById(id);
|
|
206
|
+
const canonicalId = entry.id || id.replace(/v\d+$/i, "");
|
|
207
|
+
const pdfUrl = arxivPdfUrl(id);
|
|
208
|
+
const outputDir = resolve(String(kwargs.output ?? "./arxiv-downloads"));
|
|
209
|
+
const path = join(outputDir, arxivArtifactFilename({ id, title: entry.title }));
|
|
210
|
+
const download = await httpDownload(pdfUrl, path, {
|
|
211
|
+
Accept: "application/pdf,*/*",
|
|
212
|
+
Referer: arxivAbsUrl(canonicalId),
|
|
213
|
+
"User-Agent": "unicli-arxiv/1.0 (https://github.com/olo-dot-io/Uni-CLI)",
|
|
214
|
+
});
|
|
215
|
+
if (download.status === "failed" || !download.path) {
|
|
216
|
+
throw new Error(`arXiv PDF download failed for ${id}: ${download.error ?? "no path"}.`);
|
|
217
|
+
}
|
|
218
|
+
const { firstPage, lastPage } = requireArxivPageRange(kwargs["first-page"] ?? kwargs.firstPage, kwargs["last-page"] ?? kwargs.lastPage);
|
|
219
|
+
const maxChars = requireArxivMaxChars(kwargs["max-chars"] ?? kwargs.maxChars, 40_000);
|
|
220
|
+
const { stdout } = await execFileAsync("pdftotext", [
|
|
221
|
+
"-layout",
|
|
222
|
+
"-enc",
|
|
223
|
+
"UTF-8",
|
|
224
|
+
"-f",
|
|
225
|
+
String(firstPage),
|
|
226
|
+
"-l",
|
|
227
|
+
String(lastPage),
|
|
228
|
+
download.path,
|
|
229
|
+
"-",
|
|
230
|
+
], { timeout: 60_000, maxBuffer: 10 * 1024 * 1024 });
|
|
231
|
+
const text = stdout.trim();
|
|
232
|
+
if (!text) {
|
|
233
|
+
throw new Error(`pdftotext returned no text for arXiv ${id} pages ${firstPage}-${lastPage}.`);
|
|
234
|
+
}
|
|
235
|
+
const truncated = truncateText(text, maxChars);
|
|
236
|
+
return {
|
|
237
|
+
id: canonicalId,
|
|
238
|
+
title: entry.title,
|
|
239
|
+
authors: entry.authors
|
|
240
|
+
.split(/\s*,\s*/)
|
|
241
|
+
.map((author) => author.trim())
|
|
242
|
+
.filter(Boolean),
|
|
243
|
+
year: Number(entry.published.slice(0, 4)) || undefined,
|
|
244
|
+
date: entry.published,
|
|
245
|
+
venue: "arXiv",
|
|
246
|
+
type: "preprint",
|
|
247
|
+
abstract: entry.abstract,
|
|
248
|
+
arxiv_id: canonicalId,
|
|
249
|
+
source_adapter: "arxiv",
|
|
250
|
+
source_url: arxivAbsUrl(canonicalId),
|
|
251
|
+
pdf_url: pdfUrl,
|
|
252
|
+
path: download.path,
|
|
253
|
+
text: truncated.text,
|
|
254
|
+
text_chars: truncated.originalChars,
|
|
255
|
+
text_truncated: truncated.truncated,
|
|
256
|
+
text_source: "pdf",
|
|
257
|
+
retrieved_at: new Date().toISOString(),
|
|
258
|
+
};
|
|
259
|
+
}
|
|
127
260
|
cli({
|
|
128
261
|
site: "arxiv",
|
|
129
262
|
name: "author",
|
|
@@ -158,6 +291,71 @@ cli({
|
|
|
158
291
|
return rows;
|
|
159
292
|
},
|
|
160
293
|
});
|
|
294
|
+
cli({
|
|
295
|
+
site: "arxiv",
|
|
296
|
+
name: "read",
|
|
297
|
+
description: "Download an arXiv PDF by ID and extract text with pdftotext",
|
|
298
|
+
domain: "arxiv.org",
|
|
299
|
+
strategy: Strategy.PUBLIC,
|
|
300
|
+
args: [
|
|
301
|
+
{
|
|
302
|
+
name: "id",
|
|
303
|
+
type: "str",
|
|
304
|
+
required: true,
|
|
305
|
+
positional: true,
|
|
306
|
+
description: "arXiv paper ID (e.g. 1706.03762)",
|
|
307
|
+
"x-unicli-kind": "id",
|
|
308
|
+
"x-unicli-accepts": ["url"],
|
|
309
|
+
},
|
|
310
|
+
{
|
|
311
|
+
name: "output",
|
|
312
|
+
type: "str",
|
|
313
|
+
default: "./arxiv-downloads",
|
|
314
|
+
description: "Output directory",
|
|
315
|
+
"x-unicli-kind": "path",
|
|
316
|
+
},
|
|
317
|
+
{
|
|
318
|
+
name: "first-page",
|
|
319
|
+
type: "int",
|
|
320
|
+
default: 1,
|
|
321
|
+
description: "First PDF page to extract",
|
|
322
|
+
},
|
|
323
|
+
{
|
|
324
|
+
name: "last-page",
|
|
325
|
+
type: "int",
|
|
326
|
+
default: 20,
|
|
327
|
+
description: "Last PDF page to extract",
|
|
328
|
+
},
|
|
329
|
+
{
|
|
330
|
+
name: "max-chars",
|
|
331
|
+
type: "int",
|
|
332
|
+
default: 40000,
|
|
333
|
+
description: "Maximum extracted text characters",
|
|
334
|
+
},
|
|
335
|
+
],
|
|
336
|
+
columns: [
|
|
337
|
+
"id",
|
|
338
|
+
"title",
|
|
339
|
+
"source_adapter",
|
|
340
|
+
"source_url",
|
|
341
|
+
"pdf_url",
|
|
342
|
+
"path",
|
|
343
|
+
"text_source",
|
|
344
|
+
"text",
|
|
345
|
+
"text_chars",
|
|
346
|
+
"text_truncated",
|
|
347
|
+
],
|
|
348
|
+
capabilities: [
|
|
349
|
+
"http.fetch",
|
|
350
|
+
"http.download",
|
|
351
|
+
"subprocess.exec",
|
|
352
|
+
"scholar.fulltext",
|
|
353
|
+
"scholar.pdf",
|
|
354
|
+
],
|
|
355
|
+
executables: ["pdftotext"],
|
|
356
|
+
minimum_capability: "subprocess.exec",
|
|
357
|
+
func: async (_page, kwargs) => [await readArxivPaper(kwargs)],
|
|
358
|
+
});
|
|
161
359
|
cli({
|
|
162
360
|
site: "arxiv",
|
|
163
361
|
name: "recent",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"papers.js","sourceRoot":"","sources":["../../../src/adapters/arxiv/papers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"papers.js","sourceRoot":"","sources":["../../../src/adapters/arxiv/papers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,16 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* @owner src::adapters::baidu-scholar::search
|
|
3
|
+
* @does Registers Baidu Scholar public browser search as a discovery-only scholarly source.
|
|
4
|
+
* @needs xueshu.baidu.com current `/ndscholar/browse/search` result DOM, src/registry.ts, src/types.ts, browser tools
|
|
5
|
+
* @feeds src/commands/scholar.ts capability discovery, `unicli baidu-scholar search`, `unicli scholar coverage/doctor`
|
|
6
|
+
* @breaks Baidu Scholar route or result-card DOM drift can return empty rows or navigation errors.
|
|
7
|
+
* @invariants Search is discovery-only; source/provider links are hints, not PDF/full-text proof.
|
|
8
|
+
* @side-effects Navigates a Uni-CLI managed browser page to Baidu Scholar public search.
|
|
9
|
+
* @perf O(limit) DOM extraction after one page navigation.
|
|
10
|
+
* @concurrency safe — command state is page-local
|
|
11
|
+
* @test live smoke via `unicli baidu-scholar search <query>`; URL contract in tests/unit/adapters/scholar-sources.test.ts
|
|
12
|
+
* @stability experimental
|
|
13
|
+
* @since 2026-06-27
|
|
14
|
+
*/
|
|
15
|
+
export declare function buildBaiduScholarSearchUrl(query: string): string;
|
|
2
16
|
//# sourceMappingURL=search.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../src/adapters/baidu-scholar/search.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../src/adapters/baidu-scholar/search.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAMH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhE"}
|
|
@@ -1,5 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @owner src::adapters::baidu-scholar::search
|
|
3
|
+
* @does Registers Baidu Scholar public browser search as a discovery-only scholarly source.
|
|
4
|
+
* @needs xueshu.baidu.com current `/ndscholar/browse/search` result DOM, src/registry.ts, src/types.ts, browser tools
|
|
5
|
+
* @feeds src/commands/scholar.ts capability discovery, `unicli baidu-scholar search`, `unicli scholar coverage/doctor`
|
|
6
|
+
* @breaks Baidu Scholar route or result-card DOM drift can return empty rows or navigation errors.
|
|
7
|
+
* @invariants Search is discovery-only; source/provider links are hints, not PDF/full-text proof.
|
|
8
|
+
* @side-effects Navigates a Uni-CLI managed browser page to Baidu Scholar public search.
|
|
9
|
+
* @perf O(limit) DOM extraction after one page navigation.
|
|
10
|
+
* @concurrency safe — command state is page-local
|
|
11
|
+
* @test live smoke via `unicli baidu-scholar search <query>`; URL contract in tests/unit/adapters/scholar-sources.test.ts
|
|
12
|
+
* @stability experimental
|
|
13
|
+
* @since 2026-06-27
|
|
14
|
+
*/
|
|
1
15
|
import { cli, Strategy } from "../../registry.js";
|
|
2
16
|
import { intArg, js, str } from "../_shared/browser-tools.js";
|
|
17
|
+
export function buildBaiduScholarSearchUrl(query) {
|
|
18
|
+
return `https://xueshu.baidu.com/ndscholar/browse/search?wd=${encodeURIComponent(query)}`;
|
|
19
|
+
}
|
|
3
20
|
cli({
|
|
4
21
|
site: "baidu-scholar",
|
|
5
22
|
name: "search",
|
|
@@ -11,7 +28,15 @@ cli({
|
|
|
11
28
|
{ name: "query", type: "str", required: true, positional: true },
|
|
12
29
|
{ name: "limit", type: "int", default: 10 },
|
|
13
30
|
],
|
|
14
|
-
columns: [
|
|
31
|
+
columns: [
|
|
32
|
+
"id",
|
|
33
|
+
"title",
|
|
34
|
+
"authors",
|
|
35
|
+
"source",
|
|
36
|
+
"year",
|
|
37
|
+
"cited_by_count",
|
|
38
|
+
"source_url",
|
|
39
|
+
],
|
|
15
40
|
capabilities: [
|
|
16
41
|
"mcp-browser.navigate",
|
|
17
42
|
"mcp-browser.evaluate",
|
|
@@ -20,16 +45,55 @@ cli({
|
|
|
20
45
|
func: async (page, kwargs) => {
|
|
21
46
|
const p = page;
|
|
22
47
|
const limit = intArg(kwargs.limit, 10, 50);
|
|
23
|
-
await p.goto(
|
|
48
|
+
await p.goto(buildBaiduScholarSearchUrl(str(kwargs.query)), {
|
|
49
|
+
settleMs: 3000,
|
|
50
|
+
});
|
|
24
51
|
const rows = await p.evaluate(`(() => {
|
|
25
|
-
const
|
|
52
|
+
const normalize = (value) => (value || '').replace(/\\s+/g, ' ').trim();
|
|
53
|
+
const cleanAuthor = (value) => normalize(value).replace(/[,,]+$/g, '');
|
|
54
|
+
const paperId = (url) => {
|
|
55
|
+
try {
|
|
56
|
+
return new URL(url, location.href).searchParams.get('paperid') || '';
|
|
57
|
+
} catch {
|
|
58
|
+
return '';
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
const cards = [...document.querySelectorAll('.paper-wrap.result, .result, .sc_content, .result-item')];
|
|
26
62
|
return cards.map((card) => {
|
|
27
|
-
const link = card.querySelector('h3 a, .t a, a[href]');
|
|
63
|
+
const link = card.querySelector('.paper-title a[href], h3 a[href], .t a[href], a[href]');
|
|
64
|
+
const url = link ? new URL(link.getAttribute('href') || '', location.href).href : '';
|
|
65
|
+
const info = card.querySelector('.paper-info');
|
|
66
|
+
const infoText = normalize(info?.textContent);
|
|
67
|
+
const authors = [...(info?.querySelectorAll('a[href*="author"]') || [])]
|
|
68
|
+
.map((node) => cleanAuthor(node.textContent))
|
|
69
|
+
.filter(Boolean);
|
|
70
|
+
const source = normalize(
|
|
71
|
+
[...(info?.querySelectorAll('a[href]') || [])]
|
|
72
|
+
.find((node) => {
|
|
73
|
+
const href = node.getAttribute('href') || '';
|
|
74
|
+
return !href.includes('author%3A') && !href.includes('refpaperuri');
|
|
75
|
+
})?.textContent
|
|
76
|
+
).replace(/^《|》$/g, '');
|
|
77
|
+
const sourceLinks = [...card.querySelectorAll('.paper-source a[href]')]
|
|
78
|
+
.map((node) => ({
|
|
79
|
+
label: normalize(node.textContent),
|
|
80
|
+
url: new URL(node.getAttribute('href') || '', location.href).href
|
|
81
|
+
}))
|
|
82
|
+
.filter((item) => item.label && item.url && !item.url.startsWith('javascript:'));
|
|
83
|
+
const citedText = normalize(card.querySelector('.paper-info a[href*="refpaperuri"]')?.textContent);
|
|
28
84
|
return {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
85
|
+
id: paperId(url) || url || normalize(link?.textContent),
|
|
86
|
+
title: normalize(link?.textContent),
|
|
87
|
+
authors: authors.join(', '),
|
|
88
|
+
source,
|
|
89
|
+
venue: source,
|
|
90
|
+
type: normalize(card.querySelector('.paper-type')?.textContent),
|
|
91
|
+
year: (infoText.match(/(19|20)\\d{2}/) || [])[0] || '',
|
|
92
|
+
abstract: normalize(card.querySelector('.paper-abstract')?.textContent).replace(/\\s*查看全部>>$/, ''),
|
|
93
|
+
cited_by_count: citedText.match(/\\d+/)?.[0] || '',
|
|
94
|
+
source_url: url,
|
|
95
|
+
url,
|
|
96
|
+
source_links: sourceLinks
|
|
33
97
|
};
|
|
34
98
|
}).filter((row) => row.title).slice(0, ${js(limit)});
|
|
35
99
|
})()`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../../src/adapters/baidu-scholar/search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,6BAA6B,CAAC;AAE9D,GAAG,CAAC;IACF,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,6BAA6B;IAC1C,MAAM,EAAE,kBAAkB;IAC1B,QAAQ,EAAE,QAAQ,CAAC,MAAM;IACzB,OAAO,EAAE,IAAI;IACb,IAAI,EAAE;QACJ,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE;QAChE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE;KAC5C;IACD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../../src/adapters/baidu-scholar/search.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,6BAA6B,CAAC;AAE9D,MAAM,UAAU,0BAA0B,CAAC,KAAa;IACtD,OAAO,uDAAuD,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;AAC5F,CAAC;AAED,GAAG,CAAC;IACF,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,6BAA6B;IAC1C,MAAM,EAAE,kBAAkB;IAC1B,QAAQ,EAAE,QAAQ,CAAC,MAAM;IACzB,OAAO,EAAE,IAAI;IACb,IAAI,EAAE;QACJ,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE;QAChE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE;KAC5C;IACD,OAAO,EAAE;QACP,IAAI;QACJ,OAAO;QACP,SAAS;QACT,QAAQ;QACR,MAAM;QACN,gBAAgB;QAChB,YAAY;KACb;IACD,YAAY,EAAE;QACZ,sBAAsB;QACtB,sBAAsB;QACtB,gBAAgB;KACjB;IACD,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;QAC3B,MAAM,CAAC,GAAG,IAAa,CAAC;QACxB,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAC3C,MAAM,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE;YAC1D,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,QAAQ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+CA+Ca,EAAE,CAAC,KAAK,CAAC;SAC/C,CAAC,CAAC;QACP,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,IAAkC,CAAC,CAAC,CAAC,EAAE,CAAC;IACxE,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @owner src::adapters::biorxiv::preprints
|
|
3
|
+
* @does Registers bioRxiv recent/search, DOI metadata, PDF download, and read commands backed by the official xRxiv API helpers.
|
|
4
|
+
* @needs src/adapters/rxiv/preprints.ts, api.biorxiv.org, bioRxiv PDF/JATS asset URLs.
|
|
5
|
+
* @feeds surface coverage ledger, scholarly preprint discovery/search, scholar DOI read/download routing.
|
|
6
|
+
* @breaks bioRxiv API drift, date-window search exhaustion, Cloudflare denial on source assets, or missing pdftotext stops read/download rather than fabricating text.
|
|
7
|
+
*/
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=preprints.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"preprints.d.ts","sourceRoot":"","sources":["../../../src/adapters/biorxiv/preprints.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @owner src::adapters::biorxiv::preprints
|
|
3
|
+
* @does Registers bioRxiv recent/search, DOI metadata, PDF download, and read commands backed by the official xRxiv API helpers.
|
|
4
|
+
* @needs src/adapters/rxiv/preprints.ts, api.biorxiv.org, bioRxiv PDF/JATS asset URLs.
|
|
5
|
+
* @feeds surface coverage ledger, scholarly preprint discovery/search, scholar DOI read/download routing.
|
|
6
|
+
* @breaks bioRxiv API drift, date-window search exhaustion, Cloudflare denial on source assets, or missing pdftotext stops read/download rather than fabricating text.
|
|
7
|
+
*/
|
|
8
|
+
import { cli, Strategy } from "../../registry.js";
|
|
9
|
+
import { downloadRxivPdf, fetchPaperRow, fetchRecentRows, fetchSearchRows, readRxivPaper, RXIV_DOWNLOAD_ARGS, RXIV_DOWNLOAD_CAPABILITIES, RXIV_DOWNLOAD_COLUMNS, RXIV_PAPER_ARGS, RXIV_PAPER_CAPABILITIES, RXIV_PAPER_COLUMNS, RXIV_READ_ARGS, RXIV_READ_CAPABILITIES, RXIV_READ_COLUMNS, RXIV_RECENT_ARGS, RXIV_RECENT_CAPABILITIES, RXIV_RECENT_COLUMNS, RXIV_SEARCH_ARGS, RXIV_SEARCH_CAPABILITIES, RXIV_SEARCH_COLUMNS, } from "../rxiv/preprints.js";
|
|
10
|
+
const CONFIG = {
|
|
11
|
+
site: "biorxiv",
|
|
12
|
+
label: "bioRxiv",
|
|
13
|
+
apiServer: "biorxiv",
|
|
14
|
+
webOrigin: "https://www.biorxiv.org",
|
|
15
|
+
};
|
|
16
|
+
const DOMAIN = "api.biorxiv.org";
|
|
17
|
+
cli({
|
|
18
|
+
site: "biorxiv",
|
|
19
|
+
name: "recent",
|
|
20
|
+
description: "List recent bioRxiv preprints from the official API",
|
|
21
|
+
domain: DOMAIN,
|
|
22
|
+
strategy: Strategy.PUBLIC,
|
|
23
|
+
args: RXIV_RECENT_ARGS,
|
|
24
|
+
columns: RXIV_RECENT_COLUMNS,
|
|
25
|
+
capabilities: RXIV_RECENT_CAPABILITIES,
|
|
26
|
+
func: async (_page, kwargs) => fetchRecentRows(CONFIG, kwargs),
|
|
27
|
+
});
|
|
28
|
+
cli({
|
|
29
|
+
site: "biorxiv",
|
|
30
|
+
name: "search",
|
|
31
|
+
description: "Search bioRxiv official API metadata within a bounded date window",
|
|
32
|
+
domain: DOMAIN,
|
|
33
|
+
strategy: Strategy.PUBLIC,
|
|
34
|
+
args: RXIV_SEARCH_ARGS,
|
|
35
|
+
columns: RXIV_SEARCH_COLUMNS,
|
|
36
|
+
capabilities: RXIV_SEARCH_CAPABILITIES,
|
|
37
|
+
func: async (_page, kwargs) => fetchSearchRows(CONFIG, kwargs),
|
|
38
|
+
});
|
|
39
|
+
cli({
|
|
40
|
+
site: "biorxiv",
|
|
41
|
+
name: "paper",
|
|
42
|
+
description: "Fetch bioRxiv preprint metadata by DOI",
|
|
43
|
+
domain: DOMAIN,
|
|
44
|
+
strategy: Strategy.PUBLIC,
|
|
45
|
+
args: RXIV_PAPER_ARGS,
|
|
46
|
+
columns: RXIV_PAPER_COLUMNS,
|
|
47
|
+
capabilities: RXIV_PAPER_CAPABILITIES,
|
|
48
|
+
func: async (_page, kwargs) => [
|
|
49
|
+
await fetchPaperRow(CONFIG, kwargs.doi ?? kwargs.id ?? kwargs.ref),
|
|
50
|
+
],
|
|
51
|
+
});
|
|
52
|
+
cli({
|
|
53
|
+
site: "biorxiv",
|
|
54
|
+
name: "download",
|
|
55
|
+
description: "Download a bioRxiv preprint PDF by DOI",
|
|
56
|
+
domain: DOMAIN,
|
|
57
|
+
strategy: Strategy.PUBLIC,
|
|
58
|
+
args: RXIV_DOWNLOAD_ARGS,
|
|
59
|
+
columns: RXIV_DOWNLOAD_COLUMNS,
|
|
60
|
+
capabilities: RXIV_DOWNLOAD_CAPABILITIES,
|
|
61
|
+
minimum_capability: "http.download",
|
|
62
|
+
func: async (_page, kwargs) => [
|
|
63
|
+
await downloadRxivPdf(CONFIG, await fetchPaperRow(CONFIG, kwargs.doi ?? kwargs.id ?? kwargs.ref), kwargs.output),
|
|
64
|
+
],
|
|
65
|
+
});
|
|
66
|
+
cli({
|
|
67
|
+
site: "biorxiv",
|
|
68
|
+
name: "read",
|
|
69
|
+
description: "Read bioRxiv preprint text by DOI, preferring JATS XML before PDF extraction",
|
|
70
|
+
domain: DOMAIN,
|
|
71
|
+
strategy: Strategy.PUBLIC,
|
|
72
|
+
args: RXIV_READ_ARGS,
|
|
73
|
+
columns: RXIV_READ_COLUMNS,
|
|
74
|
+
capabilities: RXIV_READ_CAPABILITIES,
|
|
75
|
+
minimum_capability: "subprocess.exec",
|
|
76
|
+
func: async (_page, kwargs) => [await readRxivPaper(CONFIG, kwargs)],
|
|
77
|
+
});
|
|
78
|
+
//# sourceMappingURL=preprints.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"preprints.js","sourceRoot":"","sources":["../../../src/adapters/biorxiv/preprints.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @owner src::adapters::cnki::search
|
|
3
|
+
* @does Registers CNKI Scholar title search against the current public KNS criteria endpoint.
|
|
4
|
+
* @needs scholar.cnki.net KNS criteria API, node:crypto, src/registry.ts, src/types/scholarly.ts
|
|
5
|
+
* @feeds `unicli cnki search`, src/commands/scholar.ts via scholar.search, scholar doctor live probes
|
|
6
|
+
* @breaks CNKI token/request-shape drift surfaces as upstream_error; access-controlled PDF/order URLs are exposed as relation hints, not as a scholar.pdf guarantee.
|
|
7
|
+
* @invariants Search uses CNKI's current all-database class id; rows must carry source-local id/title/source_adapter/retrieved_at; no stale API fallback is kept.
|
|
8
|
+
* @side-effects HTTPS egress to scholar.cnki.net only
|
|
9
|
+
* @perf O(limit) JSON mapping after one POST request.
|
|
10
|
+
* @concurrency safe
|
|
11
|
+
* @test tests/unit/adapters/scholar-sources.test.ts; live smoke via `unicli cnki search <query>` and `unicli scholar doctor --sources cnki --live`
|
|
12
|
+
* @stability experimental
|
|
13
|
+
* @since 2026-06-27
|
|
14
|
+
*/
|
|
15
|
+
import type { ScholarlyWorkRecord } from "../../types/scholarly.js";
|
|
16
|
+
interface CnkiMetadataEntry {
|
|
17
|
+
name?: unknown;
|
|
18
|
+
value?: unknown;
|
|
19
|
+
}
|
|
20
|
+
interface CnkiRelation {
|
|
21
|
+
scope?: unknown;
|
|
22
|
+
url?: unknown;
|
|
23
|
+
}
|
|
24
|
+
interface CnkiAuthor {
|
|
25
|
+
title?: unknown;
|
|
26
|
+
}
|
|
27
|
+
interface CnkiSource {
|
|
28
|
+
title?: unknown;
|
|
29
|
+
type?: unknown;
|
|
30
|
+
year?: unknown;
|
|
31
|
+
relations?: CnkiRelation[];
|
|
32
|
+
}
|
|
33
|
+
export interface CnkiSearchRow {
|
|
34
|
+
metadata?: CnkiMetadataEntry[];
|
|
35
|
+
relations?: CnkiRelation[];
|
|
36
|
+
authors?: CnkiAuthor[];
|
|
37
|
+
source?: CnkiSource;
|
|
38
|
+
}
|
|
39
|
+
interface CnkiSearchPayload {
|
|
40
|
+
Resource: string;
|
|
41
|
+
Classid: string;
|
|
42
|
+
Products: string;
|
|
43
|
+
KuaKuCode: string;
|
|
44
|
+
QNode: {
|
|
45
|
+
QGroup: Array<{
|
|
46
|
+
Key: string;
|
|
47
|
+
Title: string;
|
|
48
|
+
Logic: number;
|
|
49
|
+
Items: unknown[];
|
|
50
|
+
ChildItems: Array<{
|
|
51
|
+
Key: string;
|
|
52
|
+
Title: string;
|
|
53
|
+
Logic: number;
|
|
54
|
+
Items: Array<{
|
|
55
|
+
Key: string;
|
|
56
|
+
Title: string;
|
|
57
|
+
Logic: number;
|
|
58
|
+
Field: string;
|
|
59
|
+
Operator: string;
|
|
60
|
+
Value: string;
|
|
61
|
+
}>;
|
|
62
|
+
ChildItems: unknown[];
|
|
63
|
+
}>;
|
|
64
|
+
}>;
|
|
65
|
+
};
|
|
66
|
+
ExScope: string;
|
|
67
|
+
SearchType: number;
|
|
68
|
+
SearchFrom: number;
|
|
69
|
+
Rlang: string;
|
|
70
|
+
sort: string;
|
|
71
|
+
sortType: string;
|
|
72
|
+
pageNum: number;
|
|
73
|
+
pageSize: number;
|
|
74
|
+
}
|
|
75
|
+
export declare function createCnkiVvToken(timestamp?: number): string;
|
|
76
|
+
export declare function buildCnkiSearchPayload(query: string, limit: number): CnkiSearchPayload;
|
|
77
|
+
export declare function mapCnkiSearchRow(row: CnkiSearchRow, rank: number): ScholarlyWorkRecord & {
|
|
78
|
+
rank: number;
|
|
79
|
+
pdf_url?: string;
|
|
80
|
+
};
|
|
81
|
+
export {};
|
|
82
|
+
//# sourceMappingURL=search.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../src/adapters/cnki/search.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAKH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAUpE,UAAU,iBAAiB;IACzB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,UAAU,YAAY;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,UAAU,UAAU;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,UAAU,UAAU;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC/B,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC;IAC3B,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC;IACvB,MAAM,CAAC,EAAE,UAAU,CAAC;CACrB;AAWD,UAAU,iBAAiB;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE;QACL,MAAM,EAAE,KAAK,CAAC;YACZ,GAAG,EAAE,MAAM,CAAC;YACZ,KAAK,EAAE,MAAM,CAAC;YACd,KAAK,EAAE,MAAM,CAAC;YACd,KAAK,EAAE,OAAO,EAAE,CAAC;YACjB,UAAU,EAAE,KAAK,CAAC;gBAChB,GAAG,EAAE,MAAM,CAAC;gBACZ,KAAK,EAAE,MAAM,CAAC;gBACd,KAAK,EAAE,MAAM,CAAC;gBACd,KAAK,EAAE,KAAK,CAAC;oBACX,GAAG,EAAE,MAAM,CAAC;oBACZ,KAAK,EAAE,MAAM,CAAC;oBACd,KAAK,EAAE,MAAM,CAAC;oBACd,KAAK,EAAE,MAAM,CAAC;oBACd,QAAQ,EAAE,MAAM,CAAC;oBACjB,KAAK,EAAE,MAAM,CAAC;iBACf,CAAC,CAAC;gBACH,UAAU,EAAE,OAAO,EAAE,CAAC;aACvB,CAAC,CAAC;SACJ,CAAC,CAAC;KACJ,CAAC;IACF,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAyED,wBAAgB,iBAAiB,CAAC,SAAS,SAAa,GAAG,MAAM,CAWhE;AAED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,GACZ,iBAAiB,CA2CnB;AAED,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,aAAa,EAClB,IAAI,EAAE,MAAM,GACX,mBAAmB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAwC1D"}
|