pixivflow 2.8.0 → 2.9.0
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/README.md +4 -0
- package/README_EN.md +4 -0
- package/dist/commands/TagsCommand.d.ts +25 -0
- package/dist/commands/TagsCommand.d.ts.map +1 -0
- package/dist/commands/TagsCommand.js +176 -0
- package/dist/commands/TagsCommand.js.map +1 -0
- package/dist/commands/index.d.ts +2 -1
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +4 -1
- package/dist/commands/index.js.map +1 -1
- package/dist/package.json +1 -1
- package/dist/pixiv/PixivClient.d.ts +4 -1
- package/dist/pixiv/PixivClient.d.ts.map +1 -1
- package/dist/pixiv/PixivClient.js +21 -0
- package/dist/pixiv/PixivClient.js.map +1 -1
- package/dist/pixiv/client/SearchService.d.ts +2 -1
- package/dist/pixiv/client/SearchService.d.ts.map +1 -1
- package/dist/pixiv/client/SearchService.js +10 -0
- package/dist/pixiv/client/SearchService.js.map +1 -1
- package/dist/pixiv/types.d.ts +8 -0
- package/dist/pixiv/types.d.ts.map +1 -1
- package/dist/tags/TagDiscoveryService.d.ts +22 -0
- package/dist/tags/TagDiscoveryService.d.ts.map +1 -0
- package/dist/tags/TagDiscoveryService.js +137 -0
- package/dist/tags/TagDiscoveryService.js.map +1 -0
- package/dist/tags/TagDiscoveryStore.d.ts +21 -0
- package/dist/tags/TagDiscoveryStore.d.ts.map +1 -0
- package/dist/tags/TagDiscoveryStore.js +67 -0
- package/dist/tags/TagDiscoveryStore.js.map +1 -0
- package/dist/tags/TagPlanApplier.d.ts +22 -0
- package/dist/tags/TagPlanApplier.d.ts.map +1 -0
- package/dist/tags/TagPlanApplier.js +86 -0
- package/dist/tags/TagPlanApplier.js.map +1 -0
- package/dist/tags/types.d.ts +36 -0
- package/dist/tags/types.d.ts.map +1 -0
- package/dist/tags/types.js +3 -0
- package/dist/tags/types.js.map +1 -0
- package/dist/webui/package.json +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -160,6 +160,10 @@ outbox 清单保留在 SQLite 数据库同级的 `delivery-outbox/`;下一次
|
|
|
160
160
|
| `pixivflow config` | 配置管理(查看 / 编辑 / 备份 / 恢复) |
|
|
161
161
|
| `pixivflow status` | 下载统计与最近记录 |
|
|
162
162
|
| `pixivflow health` | 健康检查:配置、目录可写性、连通性 |
|
|
163
|
+
| `pixivflow tags discover <词>` | 发现相关 Tag(Pixiv 联想 + 作品标签共现),只列候选不改配置 |
|
|
164
|
+
| `pixivflow tags apply <清单> --target <id> --select <tag1,tag2>` | 人工确认后把所选 Tag 原子写入配置并触发热重载 |
|
|
165
|
+
|
|
166
|
+
`tags discover` 会调用 Pixiv 标签联想接口,并抽样最近插画 / 小说统计共同出现的标签,结果缓存 7 天;它**不会**改动任何下载计划。确认候选后用 `tags apply` 显式选择,应用前会整份校验配置、自动备份并原子替换,运行中的 scheduler 经配置热重载生效。
|
|
163
167
|
|
|
164
168
|
其他用法见 [CLI_MIGRATION_SUMMARY.md](docs/CLI_MIGRATION_SUMMARY.md)。
|
|
165
169
|
|
package/README_EN.md
CHANGED
|
@@ -141,6 +141,10 @@ Interactive configuration wizard: `pixivflow setup`.
|
|
|
141
141
|
| `pixivflow config` | Manage config (view / edit / backup / restore) |
|
|
142
142
|
| `pixivflow status` | Download stats and recent records |
|
|
143
143
|
| `pixivflow health` | Health check: config, directories, connectivity |
|
|
144
|
+
| `pixivflow tags discover <seed>` | Discover related tags (Pixiv autocomplete + tag co-occurrence); lists candidates only |
|
|
145
|
+
| `pixivflow tags apply <manifest> --target <id> --select <tag1,tag2>` | Atomically write chosen tags into config after manual confirmation, then hot-reload |
|
|
146
|
+
|
|
147
|
+
`tags discover` calls the Pixiv autocomplete endpoint and samples recent illustrations/novels to count co-occurring tags, caching results for 7 days; it **never** changes active plans. After reviewing candidates, run `tags apply` to explicitly select tags: it validates the whole config, writes a backup and atomically replaces the file so a running scheduler hot-reloads it.
|
|
144
148
|
|
|
145
149
|
More commands in [CLI_MIGRATION_SUMMARY.md](docs/CLI_MIGRATION_SUMMARY.md).
|
|
146
150
|
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { BaseCommand } from './Command';
|
|
2
|
+
import { CommandCategory } from './metadata';
|
|
3
|
+
import type { CommandArgs, CommandContext, CommandResult } from './types';
|
|
4
|
+
export declare class TagsCommand extends BaseCommand {
|
|
5
|
+
readonly name = "tags";
|
|
6
|
+
readonly description = "Discover related Pixiv tags, then explicitly apply selected tags";
|
|
7
|
+
readonly aliases: string[];
|
|
8
|
+
readonly metadata: {
|
|
9
|
+
category: CommandCategory;
|
|
10
|
+
requiresAuth: boolean;
|
|
11
|
+
longRunning: boolean;
|
|
12
|
+
};
|
|
13
|
+
execute(context: CommandContext, args: CommandArgs): Promise<CommandResult>;
|
|
14
|
+
private discover;
|
|
15
|
+
private apply;
|
|
16
|
+
private createStore;
|
|
17
|
+
private parseContentTypes;
|
|
18
|
+
private printManifest;
|
|
19
|
+
private integerOption;
|
|
20
|
+
private numberOption;
|
|
21
|
+
private stringOption;
|
|
22
|
+
private booleanOption;
|
|
23
|
+
getUsage(): string;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=TagsCommand.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TagsCommand.d.ts","sourceRoot":"","sources":["../../src/commands/TagsCommand.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAS1E,qBAAa,WAAY,SAAQ,WAAW;IAC1C,QAAQ,CAAC,IAAI,UAAU;IACvB,QAAQ,CAAC,WAAW,sEAAsE;IAC1F,QAAQ,CAAC,OAAO,WAAW;IAC3B,QAAQ,CAAC,QAAQ;;;;MAIf;IAEI,OAAO,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;YAenE,QAAQ;YAgDR,KAAK;IAkCnB,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,aAAa;IAkBrB,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,aAAa;IAIrB,QAAQ,IAAI,MAAM;CAgBnB"}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TagsCommand = void 0;
|
|
4
|
+
const node_path_1 = require("node:path");
|
|
5
|
+
const Command_1 = require("./Command");
|
|
6
|
+
const metadata_1 = require("./metadata");
|
|
7
|
+
const Database_1 = require("../storage/Database");
|
|
8
|
+
const AuthClient_1 = require("../pixiv/AuthClient");
|
|
9
|
+
const PixivClient_1 = require("../pixiv/PixivClient");
|
|
10
|
+
const TagDiscoveryService_1 = require("../tags/TagDiscoveryService");
|
|
11
|
+
const TagDiscoveryStore_1 = require("../tags/TagDiscoveryStore");
|
|
12
|
+
const TagPlanApplier_1 = require("../tags/TagPlanApplier");
|
|
13
|
+
class TagsCommand extends Command_1.BaseCommand {
|
|
14
|
+
name = 'tags';
|
|
15
|
+
description = 'Discover related Pixiv tags, then explicitly apply selected tags';
|
|
16
|
+
aliases = ['tag'];
|
|
17
|
+
metadata = {
|
|
18
|
+
category: metadata_1.CommandCategory.CONFIGURATION,
|
|
19
|
+
requiresAuth: true,
|
|
20
|
+
longRunning: false,
|
|
21
|
+
};
|
|
22
|
+
async execute(context, args) {
|
|
23
|
+
const subcommand = args.positional[0];
|
|
24
|
+
try {
|
|
25
|
+
if (subcommand === 'discover')
|
|
26
|
+
return await this.discover(context, args);
|
|
27
|
+
if (subcommand === 'apply')
|
|
28
|
+
return await this.apply(context, args);
|
|
29
|
+
console.error(`\nUnknown tags subcommand: ${subcommand ? `'${subcommand}'` : '(none)'}`);
|
|
30
|
+
console.error(`\nUsage:\n${this.getUsage()}\n`);
|
|
31
|
+
return this.failure(this.getUsage());
|
|
32
|
+
}
|
|
33
|
+
catch (error) {
|
|
34
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
35
|
+
console.error(`\n✗ ${message}\n`);
|
|
36
|
+
return this.failure(message);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
async discover(context, args) {
|
|
40
|
+
const seed = args.positional.slice(1).join(' ').trim();
|
|
41
|
+
if (!seed) {
|
|
42
|
+
console.error('\nUsage: pixivflow tags discover <seed> [options]\n');
|
|
43
|
+
return this.failure('Missing seed tag for discovery');
|
|
44
|
+
}
|
|
45
|
+
const contentTypes = this.parseContentTypes(args.options.type);
|
|
46
|
+
const sampleSize = this.integerOption(args.options.sample, 60, 'sample');
|
|
47
|
+
const limit = this.integerOption(args.options.limit, 20, 'limit');
|
|
48
|
+
const cacheDays = this.numberOption(args.options['cache-days'], 7, 'cache-days');
|
|
49
|
+
const ttlMs = Math.round(cacheDays * 24 * 60 * 60_000);
|
|
50
|
+
const cacheKey = { seed, contentTypes, sampleSize, limit };
|
|
51
|
+
const store = this.createStore(context);
|
|
52
|
+
if (!this.booleanOption(args.options.refresh)) {
|
|
53
|
+
const cached = await store.loadFresh(cacheKey);
|
|
54
|
+
if (cached) {
|
|
55
|
+
this.printManifest(cached.manifest, cached.path, true, this.booleanOption(args.options.json));
|
|
56
|
+
return this.success('Fresh tag discovery cache reused', cached);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
const database = new Database_1.Database(context.config.storage.databasePath);
|
|
60
|
+
try {
|
|
61
|
+
database.migrate();
|
|
62
|
+
const auth = new AuthClient_1.PixivAuth(context.config.pixiv, context.config.network, database, context.configPath);
|
|
63
|
+
const client = new PixivClient_1.PixivClient(auth, context.config);
|
|
64
|
+
const service = new TagDiscoveryService_1.TagDiscoveryService(client);
|
|
65
|
+
const manifest = await service.discover(seed, {
|
|
66
|
+
contentTypes,
|
|
67
|
+
sampleSize,
|
|
68
|
+
limit,
|
|
69
|
+
ttlMs,
|
|
70
|
+
});
|
|
71
|
+
const path = await store.save(cacheKey, manifest);
|
|
72
|
+
this.printManifest(manifest, path, false, this.booleanOption(args.options.json));
|
|
73
|
+
return this.success('Tag discovery completed', { manifest, path, cached: false });
|
|
74
|
+
}
|
|
75
|
+
finally {
|
|
76
|
+
database.close();
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
async apply(context, args) {
|
|
80
|
+
const manifestPath = args.positional[1];
|
|
81
|
+
const targetId = this.stringOption(args.options.target);
|
|
82
|
+
const selected = this.stringOption(args.options.select)
|
|
83
|
+
?.split(',')
|
|
84
|
+
.map((value) => value.trim())
|
|
85
|
+
.filter(Boolean) ?? [];
|
|
86
|
+
const mode = this.stringOption(args.options.mode) ?? 'append';
|
|
87
|
+
if (!manifestPath || !targetId || selected.length === 0) {
|
|
88
|
+
console.error('\nUsage: pixivflow tags apply <manifest.json> --target <id> --select <tag1,tag2> [--mode append|replace]\n');
|
|
89
|
+
return this.failure('apply requires a manifest path, --target and --select');
|
|
90
|
+
}
|
|
91
|
+
if (mode !== 'append' && mode !== 'replace') {
|
|
92
|
+
console.error('\n--mode must be append or replace\n');
|
|
93
|
+
return this.failure('--mode must be append or replace');
|
|
94
|
+
}
|
|
95
|
+
const store = this.createStore(context);
|
|
96
|
+
const manifest = await store.read((0, node_path_1.resolve)(manifestPath));
|
|
97
|
+
const result = await new TagPlanApplier_1.TagPlanApplier().apply(context.configPath, manifest, {
|
|
98
|
+
targetId,
|
|
99
|
+
selectedTags: selected,
|
|
100
|
+
mode,
|
|
101
|
+
});
|
|
102
|
+
console.log(`\n✓ Target ${result.targetId} updated atomically`);
|
|
103
|
+
console.log(` Previous: ${result.previousTag ?? '(empty)'}`);
|
|
104
|
+
console.log(` Current: ${result.tag}`);
|
|
105
|
+
console.log(` Backup: ${result.backupPath}`);
|
|
106
|
+
console.log(' Scheduler: the config watcher will hot-reload this validated snapshot\n');
|
|
107
|
+
return this.success('Selected tags applied and ready for hot reload', result);
|
|
108
|
+
}
|
|
109
|
+
createStore(context) {
|
|
110
|
+
const databasePath = (0, node_path_1.resolve)(context.config.storage.databasePath);
|
|
111
|
+
return new TagDiscoveryStore_1.TagDiscoveryStore((0, node_path_1.resolve)((0, node_path_1.dirname)(databasePath), 'tag-discovery'));
|
|
112
|
+
}
|
|
113
|
+
parseContentTypes(value) {
|
|
114
|
+
const type = this.stringOption(value) ?? 'all';
|
|
115
|
+
if (type === 'all')
|
|
116
|
+
return ['illustration', 'novel'];
|
|
117
|
+
if (type === 'illustration' || type === 'novel')
|
|
118
|
+
return [type];
|
|
119
|
+
throw new Error('--type must be all, illustration or novel');
|
|
120
|
+
}
|
|
121
|
+
printManifest(manifest, path, cached, json) {
|
|
122
|
+
if (json) {
|
|
123
|
+
console.log(JSON.stringify({ cached, path, ...manifest }, null, 2));
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
console.log(`\nTag suggestions for: ${manifest.seed}${cached ? ' (cache)' : ''}`);
|
|
127
|
+
console.log(`Sampled: ${manifest.sampledWorks.illustration} illustrations, ${manifest.sampledWorks.novel} novels`);
|
|
128
|
+
console.log('');
|
|
129
|
+
manifest.candidates.forEach((candidate, index) => {
|
|
130
|
+
const translation = candidate.translatedName ? ` / ${candidate.translatedName}` : '';
|
|
131
|
+
const occurrences = candidate.occurrences.illustration + candidate.occurrences.novel;
|
|
132
|
+
console.log(`${String(index + 1).padStart(2)}. ${candidate.name}${translation} score=${candidate.score.toFixed(4)} works=${occurrences} source=${candidate.sources.join('+')}`);
|
|
133
|
+
});
|
|
134
|
+
console.log(`\nManifest: ${path}`);
|
|
135
|
+
console.log(`Apply selected candidates only:`);
|
|
136
|
+
console.log(` pixivflow tags apply "${path}" --target <target-id> --select "tag1,tag2"\n`);
|
|
137
|
+
}
|
|
138
|
+
integerOption(value, fallback, name) {
|
|
139
|
+
const number = this.numberOption(value, fallback, name);
|
|
140
|
+
if (!Number.isInteger(number))
|
|
141
|
+
throw new Error(`--${name} must be an integer`);
|
|
142
|
+
return number;
|
|
143
|
+
}
|
|
144
|
+
numberOption(value, fallback, name) {
|
|
145
|
+
if (value === undefined)
|
|
146
|
+
return fallback;
|
|
147
|
+
const number = Number(value);
|
|
148
|
+
if (!Number.isFinite(number))
|
|
149
|
+
throw new Error(`--${name} must be a number`);
|
|
150
|
+
return number;
|
|
151
|
+
}
|
|
152
|
+
stringOption(value) {
|
|
153
|
+
return typeof value === 'string' ? value.trim() : undefined;
|
|
154
|
+
}
|
|
155
|
+
booleanOption(value) {
|
|
156
|
+
return value === true || (typeof value === 'string' && ['true', '1', 'yes'].includes(value.toLowerCase()));
|
|
157
|
+
}
|
|
158
|
+
getUsage() {
|
|
159
|
+
return `tags discover <seed> [options]
|
|
160
|
+
--type all|illustration|novel Content to sample (default: all)
|
|
161
|
+
--sample <1-200> Maximum works sampled per type (default: 60)
|
|
162
|
+
--limit <1-100> Candidate count (default: 20)
|
|
163
|
+
--cache-days <days> Cache lifetime (default: 7)
|
|
164
|
+
--refresh Ignore a fresh cache
|
|
165
|
+
--json Machine-readable output
|
|
166
|
+
|
|
167
|
+
tags apply <manifest.json> --target <id> --select <tag1,tag2> [options]
|
|
168
|
+
--mode append|replace Keep the current seed or replace it (default: append)
|
|
169
|
+
|
|
170
|
+
Discovery never changes active plans. Apply accepts only names from the saved
|
|
171
|
+
manifest, validates the complete config, writes a backup, then atomically
|
|
172
|
+
replaces the config so a running scheduler can hot-reload it.`;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
exports.TagsCommand = TagsCommand;
|
|
176
|
+
//# sourceMappingURL=TagsCommand.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TagsCommand.js","sourceRoot":"","sources":["../../src/commands/TagsCommand.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/index.d.ts
CHANGED
|
@@ -22,6 +22,7 @@ import { MonitorCommand } from './MonitorCommand';
|
|
|
22
22
|
import { SetupCommand } from './SetupCommand';
|
|
23
23
|
import { DirsCommand } from './DirsCommand';
|
|
24
24
|
import { VersionCommand } from './VersionCommand';
|
|
25
|
+
import { TagsCommand } from './TagsCommand';
|
|
25
26
|
/**
|
|
26
27
|
* Create and register all commands
|
|
27
28
|
*/
|
|
@@ -29,5 +30,5 @@ export declare function registerAllCommands(registry: CommandRegistry): void;
|
|
|
29
30
|
/**
|
|
30
31
|
* Export all command classes
|
|
31
32
|
*/
|
|
32
|
-
export { HelpCommand, LoginCommand, LoginHeadlessCommand, RefreshCommand, DownloadCommand, RandomDownloadCommand, SchedulerCommand, MigrateConfigCommand, NormalizeCommand, WebUICommand, HealthCommand, StatusCommand, LogsCommand, ConfigCommand, BackupCommand, MaintainCommand, MonitorCommand, SetupCommand, DirsCommand, VersionCommand, };
|
|
33
|
+
export { HelpCommand, LoginCommand, LoginHeadlessCommand, RefreshCommand, DownloadCommand, RandomDownloadCommand, SchedulerCommand, MigrateConfigCommand, NormalizeCommand, WebUICommand, HealthCommand, StatusCommand, LogsCommand, ConfigCommand, BackupCommand, MaintainCommand, MonitorCommand, SetupCommand, DirsCommand, VersionCommand, TagsCommand, };
|
|
33
34
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI,CAsBnE;AAED;;GAEG;AACH,OAAO,EACL,WAAW,EACX,YAAY,EACZ,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,qBAAqB,EACrB,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,aAAa,EACb,WAAW,EACX,aAAa,EACb,aAAa,EACb,eAAe,EACf,cAAc,EACd,YAAY,EACZ,WAAW,EACX,cAAc,EACd,WAAW,GACZ,CAAC"}
|
package/dist/commands/index.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Command exports and registration
|
|
4
4
|
*/
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.VersionCommand = exports.DirsCommand = exports.SetupCommand = exports.MonitorCommand = exports.MaintainCommand = exports.BackupCommand = exports.ConfigCommand = exports.LogsCommand = exports.StatusCommand = exports.HealthCommand = exports.WebUICommand = exports.NormalizeCommand = exports.MigrateConfigCommand = exports.SchedulerCommand = exports.RandomDownloadCommand = exports.DownloadCommand = exports.RefreshCommand = exports.LoginHeadlessCommand = exports.LoginCommand = exports.HelpCommand = void 0;
|
|
6
|
+
exports.TagsCommand = exports.VersionCommand = exports.DirsCommand = exports.SetupCommand = exports.MonitorCommand = exports.MaintainCommand = exports.BackupCommand = exports.ConfigCommand = exports.LogsCommand = exports.StatusCommand = exports.HealthCommand = exports.WebUICommand = exports.NormalizeCommand = exports.MigrateConfigCommand = exports.SchedulerCommand = exports.RandomDownloadCommand = exports.DownloadCommand = exports.RefreshCommand = exports.LoginHeadlessCommand = exports.LoginCommand = exports.HelpCommand = void 0;
|
|
7
7
|
exports.registerAllCommands = registerAllCommands;
|
|
8
8
|
const HelpCommand_1 = require("./HelpCommand");
|
|
9
9
|
Object.defineProperty(exports, "HelpCommand", { enumerable: true, get: function () { return HelpCommand_1.HelpCommand; } });
|
|
@@ -45,6 +45,8 @@ const DirsCommand_1 = require("./DirsCommand");
|
|
|
45
45
|
Object.defineProperty(exports, "DirsCommand", { enumerable: true, get: function () { return DirsCommand_1.DirsCommand; } });
|
|
46
46
|
const VersionCommand_1 = require("./VersionCommand");
|
|
47
47
|
Object.defineProperty(exports, "VersionCommand", { enumerable: true, get: function () { return VersionCommand_1.VersionCommand; } });
|
|
48
|
+
const TagsCommand_1 = require("./TagsCommand");
|
|
49
|
+
Object.defineProperty(exports, "TagsCommand", { enumerable: true, get: function () { return TagsCommand_1.TagsCommand; } });
|
|
48
50
|
/**
|
|
49
51
|
* Create and register all commands
|
|
50
52
|
*/
|
|
@@ -69,5 +71,6 @@ function registerAllCommands(registry) {
|
|
|
69
71
|
registry.register(new SetupCommand_1.SetupCommand());
|
|
70
72
|
registry.register(new DirsCommand_1.DirsCommand());
|
|
71
73
|
registry.register(new VersionCommand_1.VersionCommand());
|
|
74
|
+
registry.register(new TagsCommand_1.TagsCommand());
|
|
72
75
|
}
|
|
73
76
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AA4BH,kDAsBC;AA/CD,+CAA4C;AAqD1C,4FArDO,yBAAW,OAqDP;AApDb,iDAA8C;AAqD5C,6FArDO,2BAAY,OAqDP;AApDd,iEAA8D;AAqD5D,qGArDO,2CAAoB,OAqDP;AApDtB,qDAAkD;AAqDhD,+FArDO,+BAAc,OAqDP;AApDhB,uDAAoD;AAqDlD,gGArDO,iCAAe,OAqDP;AApDjB,mEAAgE;AAqD9D,sGArDO,6CAAqB,OAqDP;AApDvB,yDAAsD;AAqDpD,iGArDO,mCAAgB,OAqDP;AApDlB,iEAA8D;AAqD5D,qGArDO,2CAAoB,OAqDP;AApDtB,yDAAsD;AAqDpD,iGArDO,mCAAgB,OAqDP;AApDlB,iDAA8C;AAqD5C,6FArDO,2BAAY,OAqDP;AApDd,mDAAgD;AAqD9C,8FArDO,6BAAa,OAqDP;AApDf,mDAAgD;AAqD9C,8FArDO,6BAAa,OAqDP;AApDf,+CAA4C;AAqD1C,4FArDO,yBAAW,OAqDP;AApDb,mDAAgD;AAqD9C,8FArDO,6BAAa,OAqDP;AApDf,mDAAgD;AAqD9C,8FArDO,6BAAa,OAqDP;AApDf,uDAAoD;AAqDlD,gGArDO,iCAAe,OAqDP;AApDjB,qDAAkD;AAqDhD,+FArDO,+BAAc,OAqDP;AApDhB,iDAA8C;AAqD5C,6FArDO,2BAAY,OAqDP;AApDd,+CAA4C;AAqD1C,4FArDO,yBAAW,OAqDP;AApDb,qDAAkD;AAqDhD,+FArDO,+BAAc,OAqDP;AApDhB,+CAA4C;AAqD1C,4FArDO,yBAAW,OAqDP;AAnDb;;GAEG;AACH,SAAgB,mBAAmB,CAAC,QAAyB;IAC3D,QAAQ,CAAC,QAAQ,CAAC,IAAI,yBAAW,EAAE,CAAC,CAAC;IACrC,QAAQ,CAAC,QAAQ,CAAC,IAAI,2BAAY,EAAE,CAAC,CAAC;IACtC,QAAQ,CAAC,QAAQ,CAAC,IAAI,2CAAoB,EAAE,CAAC,CAAC;IAC9C,QAAQ,CAAC,QAAQ,CAAC,IAAI,+BAAc,EAAE,CAAC,CAAC;IACxC,QAAQ,CAAC,QAAQ,CAAC,IAAI,iCAAe,EAAE,CAAC,CAAC;IACzC,QAAQ,CAAC,QAAQ,CAAC,IAAI,6CAAqB,EAAE,CAAC,CAAC;IAC/C,QAAQ,CAAC,QAAQ,CAAC,IAAI,mCAAgB,EAAE,CAAC,CAAC;IAC1C,QAAQ,CAAC,QAAQ,CAAC,IAAI,2CAAoB,EAAE,CAAC,CAAC;IAC9C,QAAQ,CAAC,QAAQ,CAAC,IAAI,mCAAgB,EAAE,CAAC,CAAC;IAC1C,QAAQ,CAAC,QAAQ,CAAC,IAAI,2BAAY,EAAE,CAAC,CAAC;IACtC,QAAQ,CAAC,QAAQ,CAAC,IAAI,6BAAa,EAAE,CAAC,CAAC;IACvC,QAAQ,CAAC,QAAQ,CAAC,IAAI,6BAAa,EAAE,CAAC,CAAC;IACvC,QAAQ,CAAC,QAAQ,CAAC,IAAI,yBAAW,EAAE,CAAC,CAAC;IACrC,QAAQ,CAAC,QAAQ,CAAC,IAAI,6BAAa,EAAE,CAAC,CAAC;IACvC,QAAQ,CAAC,QAAQ,CAAC,IAAI,6BAAa,EAAE,CAAC,CAAC;IACvC,QAAQ,CAAC,QAAQ,CAAC,IAAI,iCAAe,EAAE,CAAC,CAAC;IACzC,QAAQ,CAAC,QAAQ,CAAC,IAAI,+BAAc,EAAE,CAAC,CAAC;IACxC,QAAQ,CAAC,QAAQ,CAAC,IAAI,2BAAY,EAAE,CAAC,CAAC;IACtC,QAAQ,CAAC,QAAQ,CAAC,IAAI,yBAAW,EAAE,CAAC,CAAC;IACrC,QAAQ,CAAC,QAAQ,CAAC,IAAI,+BAAc,EAAE,CAAC,CAAC;IACxC,QAAQ,CAAC,QAAQ,CAAC,IAAI,yBAAW,EAAE,CAAC,CAAC;AACvC,CAAC"}
|
package/dist/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { StandaloneConfig, TargetConfig } from '../config';
|
|
2
2
|
import { PixivAuth } from './AuthClient';
|
|
3
3
|
import { IPixivClient } from '../interfaces/IPixivClient';
|
|
4
|
-
import type { PixivUser, PixivIllust, PixivNovel, PixivNovelTextResponse } from './types';
|
|
4
|
+
import type { PixivUser, PixivIllust, PixivNovel, PixivNovelTextResponse, PixivTag } from './types';
|
|
5
5
|
export type { PixivUser, PixivIllust, PixivNovel, PixivIllustPage, PixivNovelTextResponse } from './types';
|
|
6
6
|
export declare class PixivClient implements IPixivClient {
|
|
7
7
|
private readonly auth;
|
|
@@ -36,6 +36,9 @@ export declare class PixivClient implements IPixivClient {
|
|
|
36
36
|
* Implements IPixivClient interface
|
|
37
37
|
*/
|
|
38
38
|
searchIllustrations(target: TargetConfig): Promise<PixivIllust[]>;
|
|
39
|
+
getTagAutocomplete(seed: string): Promise<PixivTag[]>;
|
|
40
|
+
searchIllustrationsForTags(seed: string, limit: number): Promise<PixivIllust[]>;
|
|
41
|
+
searchNovelsForTags(seed: string, limit: number): Promise<PixivNovel[]>;
|
|
39
42
|
/**
|
|
40
43
|
* Get current user information
|
|
41
44
|
* Implements IPixivClient interface
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PixivClient.d.ts","sourceRoot":"","sources":["../../src/pixiv/PixivClient.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAM3D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAmB,sBAAsB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"PixivClient.d.ts","sourceRoot":"","sources":["../../src/pixiv/PixivClient.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAM3D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAmB,sBAAsB,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAQrH,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAE3G,qBAAa,WAAY,YAAW,YAAY;IASlC,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAa,OAAO,CAAC,QAAQ,CAAC,MAAM;IARrE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgC;IACxD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAa;IACzC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAuB;IACpD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;gBAEjB,IAAI,EAAE,SAAS,EAAmB,MAAM,EAAE,gBAAgB;IAmEvF;;;;OAIG;IACH,OAAO,CAAC,SAAS;IAIjB;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAItB;;;OAGG;IACH,OAAO,CAAC,aAAa;IAMrB;;;OAGG;IACU,mBAAmB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAKjE,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAIrD,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAU/E,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAUpF;;;OAGG;IACU,OAAO,IAAI,OAAO,CAAC,SAAS,CAAC;IAY1C;;;OAGG;IACU,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAI9D;;;OAGG;IACU,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAItD;;;OAGG;IACU,oBAAoB,CAC/B,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GACA,OAAO,CAAC,WAAW,EAAE,CAAC;IAIzB;;;OAGG;IACU,aAAa,CACxB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GACA,OAAO,CAAC,UAAU,EAAE,CAAC;IAIxB;;OAEG;IAGH;;;OAGG;IACU,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAKtE;;OAEG;IAGH;;;;;OAKG;IACU,uBAAuB,CAClC,IAAI,GAAE,MAAc,EACpB,IAAI,CAAC,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,WAAW,EAAE,CAAC;IAQzB;;;;;OAKG;IACU,gBAAgB,CAC3B,IAAI,GAAE,MAAc,EACpB,IAAI,CAAC,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,UAAU,EAAE,CAAC;IAQxB;;OAEG;IACU,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;QAC9D,MAAM,EAAE,WAAW,CAAC;QACpB,IAAI,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,eAAe,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACzD,CAAC;IAIF;;OAEG;IACU,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAC5D,KAAK,EAAE,UAAU,CAAC;QAClB,IAAI,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,eAAe,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACzD,CAAC;IAIW,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAIvD,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAIjE;;;OAGG;IACU,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAI9D,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;QACrD,QAAQ,EAAE;YAAE,MAAM,CAAC,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QACjD,MAAM,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAC/C,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;IAQF;;OAEG;IACU,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAIvD,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAMrE,OAAO,CAAC,gBAAgB;YAMV,OAAO;CAWtB"}
|
|
@@ -117,6 +117,27 @@ class PixivClient {
|
|
|
117
117
|
const requestDelay = this.config.download?.requestDelay ?? 3000;
|
|
118
118
|
return this.searchService.searchIllustrations(target, requestDelay);
|
|
119
119
|
}
|
|
120
|
+
async getTagAutocomplete(seed) {
|
|
121
|
+
return this.searchService.getTagAutocomplete(seed);
|
|
122
|
+
}
|
|
123
|
+
async searchIllustrationsForTags(seed, limit) {
|
|
124
|
+
return this.searchIllustrations({
|
|
125
|
+
type: 'illustration',
|
|
126
|
+
tag: seed,
|
|
127
|
+
searchTarget: 'partial_match_for_tags',
|
|
128
|
+
sort: 'date_desc',
|
|
129
|
+
limit,
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
async searchNovelsForTags(seed, limit) {
|
|
133
|
+
return this.searchNovels({
|
|
134
|
+
type: 'novel',
|
|
135
|
+
tag: seed,
|
|
136
|
+
searchTarget: 'partial_match_for_tags',
|
|
137
|
+
sort: 'date_desc',
|
|
138
|
+
limit,
|
|
139
|
+
});
|
|
140
|
+
}
|
|
120
141
|
/**
|
|
121
142
|
* Get current user information
|
|
122
143
|
* Implements IPixivClient interface
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PixivClient.js","sourceRoot":"","sources":["../../src/pixiv/PixivClient.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"PixivClient.js","sourceRoot":"","sources":["../../src/pixiv/PixivClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { PixivApiCore } from './PixivApiCore';
|
|
2
|
-
import type { PixivIllust, PixivNovel } from '../types';
|
|
2
|
+
import type { PixivIllust, PixivNovel, PixivTag } from '../types';
|
|
3
3
|
import type { TargetConfig } from '../../config';
|
|
4
4
|
/**
|
|
5
5
|
* Search service for illustrations and novels with pagination, filtering and sorting.
|
|
@@ -8,6 +8,7 @@ import type { TargetConfig } from '../../config';
|
|
|
8
8
|
export declare class SearchService {
|
|
9
9
|
private readonly api;
|
|
10
10
|
constructor(api: PixivApiCore);
|
|
11
|
+
getTagAutocomplete(seed: string): Promise<PixivTag[]>;
|
|
11
12
|
searchIllustrations(target: TargetConfig, requestDelayMs: number): Promise<PixivIllust[]>;
|
|
12
13
|
searchNovels(target: TargetConfig, requestDelayMs: number): Promise<PixivNovel[]>;
|
|
13
14
|
private searchIllustrationsSingleTag;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchService.d.ts","sourceRoot":"","sources":["../../../src/pixiv/client/SearchService.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"SearchService.d.ts","sourceRoot":"","sources":["../../../src/pixiv/client/SearchService.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAGlE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAGjD;;;GAGG;AACH,qBAAa,aAAa;IACZ,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAAH,GAAG,EAAE,YAAY;IAExC,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAcrD,mBAAmB,CAAC,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IA6CzF,YAAY,CAAC,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;YA6CzE,4BAA4B;YA6C5B,qBAAqB;IA2CnC;;OAEG;YACW,oBAAoB;CAsEnC"}
|
|
@@ -14,6 +14,16 @@ class SearchService {
|
|
|
14
14
|
constructor(api) {
|
|
15
15
|
this.api = api;
|
|
16
16
|
}
|
|
17
|
+
async getTagAutocomplete(seed) {
|
|
18
|
+
const params = new URLSearchParams({
|
|
19
|
+
word: seed,
|
|
20
|
+
merge_plain_keyword_results: 'true',
|
|
21
|
+
});
|
|
22
|
+
const response = await this.api.request(`/v2/search/autocomplete?${params.toString()}`, { method: 'GET' });
|
|
23
|
+
if (Array.isArray(response.tags))
|
|
24
|
+
return response.tags;
|
|
25
|
+
return (response.search_auto_complete_keywords ?? []).map((name) => ({ name }));
|
|
26
|
+
}
|
|
17
27
|
async searchIllustrations(target, requestDelayMs) {
|
|
18
28
|
if (!target.tag) {
|
|
19
29
|
throw new Error('tag is required for illustration search');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchService.js","sourceRoot":"","sources":["../../../src/pixiv/client/SearchService.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"SearchService.js","sourceRoot":"","sources":["../../../src/pixiv/client/SearchService.ts"],"names":[],"mappings":"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"}
|
package/dist/pixiv/types.d.ts
CHANGED
|
@@ -5,6 +5,10 @@ export interface PixivUser {
|
|
|
5
5
|
id: string;
|
|
6
6
|
name: string;
|
|
7
7
|
}
|
|
8
|
+
export interface PixivTag {
|
|
9
|
+
name: string;
|
|
10
|
+
translated_name?: string;
|
|
11
|
+
}
|
|
8
12
|
export interface PixivIllust {
|
|
9
13
|
id: number;
|
|
10
14
|
title: string;
|
|
@@ -37,6 +41,8 @@ export interface PixivIllust {
|
|
|
37
41
|
total_view?: number;
|
|
38
42
|
bookmark_count?: number;
|
|
39
43
|
view_count?: number;
|
|
44
|
+
/** Search responses usually include enough tag metadata for discovery. */
|
|
45
|
+
tags?: PixivTag[];
|
|
40
46
|
}
|
|
41
47
|
export type PixivIllustPage = NonNullable<PixivIllust['meta_pages']>[number];
|
|
42
48
|
export interface PixivNovel {
|
|
@@ -48,6 +54,8 @@ export interface PixivNovel {
|
|
|
48
54
|
total_view?: number;
|
|
49
55
|
bookmark_count?: number;
|
|
50
56
|
view_count?: number;
|
|
57
|
+
/** Search responses usually include enough tag metadata for discovery. */
|
|
58
|
+
tags?: PixivTag[];
|
|
51
59
|
}
|
|
52
60
|
export interface PixivNovelTextResponse {
|
|
53
61
|
novel_text: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/pixiv/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,WAAW,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC5C,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;IACrC,IAAI,EAAE,SAAS,CAAC;IAChB,UAAU,EAAE;QACV,aAAa,EAAE,MAAM,CAAC;QACtB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,gBAAgB,CAAC,EAAE;QACjB,kBAAkB,CAAC,EAAE,MAAM,CAAC;KAC7B,CAAC;IACF,UAAU,CAAC,EAAE,KAAK,CAAC;QACjB,UAAU,EAAE;YACV,aAAa,EAAE,MAAM,CAAC;YACtB,MAAM,EAAE,MAAM,CAAC;YACf,KAAK,EAAE,MAAM,CAAC;YACd,QAAQ,CAAC,EAAE,MAAM,CAAC;SACnB,CAAC;QACF,gBAAgB,CAAC,EAAE;YACjB,kBAAkB,CAAC,EAAE,MAAM,CAAC;SAC7B,CAAC;KACH,CAAC,CAAC;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/pixiv/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,WAAW,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC5C,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;IACrC,IAAI,EAAE,SAAS,CAAC;IAChB,UAAU,EAAE;QACV,aAAa,EAAE,MAAM,CAAC;QACtB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,gBAAgB,CAAC,EAAE;QACjB,kBAAkB,CAAC,EAAE,MAAM,CAAC;KAC7B,CAAC;IACF,UAAU,CAAC,EAAE,KAAK,CAAC;QACjB,UAAU,EAAE;YACV,aAAa,EAAE,MAAM,CAAC;YACtB,MAAM,EAAE,MAAM,CAAC;YACf,KAAK,EAAE,MAAM,CAAC;YACd,QAAQ,CAAC,EAAE,MAAM,CAAC;SACnB,CAAC;QACF,gBAAgB,CAAC,EAAE;YACjB,kBAAkB,CAAC,EAAE,MAAM,CAAC;SAC7B,CAAC;KACH,CAAC,CAAC;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0EAA0E;IAC1E,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC;CACnB;AAED,MAAM,MAAM,eAAe,GAAG,WAAW,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7E,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,SAAS,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IAEpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0EAA0E;IAC1E,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,CAAC;CACpB"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { TagDiscoveryClient, TagDiscoveryContentType, TagDiscoveryManifest } from './types';
|
|
2
|
+
export interface TagDiscoveryOptions {
|
|
3
|
+
contentTypes?: TagDiscoveryContentType[];
|
|
4
|
+
sampleSize?: number;
|
|
5
|
+
limit?: number;
|
|
6
|
+
ttlMs?: number;
|
|
7
|
+
now?: () => number;
|
|
8
|
+
}
|
|
9
|
+
/** Combines Pixiv autocomplete with bounded tag co-occurrence sampling. */
|
|
10
|
+
export declare class TagDiscoveryService {
|
|
11
|
+
private readonly client;
|
|
12
|
+
constructor(client: TagDiscoveryClient);
|
|
13
|
+
discover(seed: string, options?: TagDiscoveryOptions): Promise<TagDiscoveryManifest>;
|
|
14
|
+
private normalizeContentTypes;
|
|
15
|
+
private boundedInteger;
|
|
16
|
+
private accumulateWorks;
|
|
17
|
+
private accumulate;
|
|
18
|
+
private toCandidate;
|
|
19
|
+
private key;
|
|
20
|
+
private totalOccurrences;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=TagDiscoveryService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TagDiscoveryService.d.ts","sourceRoot":"","sources":["../../src/tags/TagDiscoveryService.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,kBAAkB,EAClB,uBAAuB,EACvB,oBAAoB,EACrB,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,mBAAmB;IAClC,YAAY,CAAC,EAAE,uBAAuB,EAAE,CAAC;IACzC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AAUD,2EAA2E;AAC3E,qBAAa,mBAAmB;IAClB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,kBAAkB;IAEjD,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAgD9F,OAAO,CAAC,qBAAqB;IAM7B,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,eAAe;IAmBvB,OAAO,CAAC,UAAU;IAmBlB,OAAO,CAAC,WAAW;IAiCnB,OAAO,CAAC,GAAG;IAIX,OAAO,CAAC,gBAAgB;CAGzB"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TagDiscoveryService = void 0;
|
|
4
|
+
/** Combines Pixiv autocomplete with bounded tag co-occurrence sampling. */
|
|
5
|
+
class TagDiscoveryService {
|
|
6
|
+
client;
|
|
7
|
+
constructor(client) {
|
|
8
|
+
this.client = client;
|
|
9
|
+
}
|
|
10
|
+
async discover(seed, options = {}) {
|
|
11
|
+
const normalizedSeed = seed.trim();
|
|
12
|
+
if (!normalizedSeed)
|
|
13
|
+
throw new Error('Tag discovery seed must not be empty');
|
|
14
|
+
const contentTypes = this.normalizeContentTypes(options.contentTypes);
|
|
15
|
+
const sampleSize = this.boundedInteger(options.sampleSize, 60, 1, 200, 'sampleSize');
|
|
16
|
+
const limit = this.boundedInteger(options.limit, 20, 1, 100, 'limit');
|
|
17
|
+
const ttlMs = this.boundedInteger(options.ttlMs, 7 * 24 * 60 * 60_000, 60_000, 30 * 24 * 60 * 60_000, 'ttlMs');
|
|
18
|
+
const accumulators = new Map();
|
|
19
|
+
const autocomplete = await this.client.getTagAutocomplete(normalizedSeed);
|
|
20
|
+
autocomplete.forEach((tag, index) => {
|
|
21
|
+
const entry = this.accumulate(accumulators, tag);
|
|
22
|
+
if (entry)
|
|
23
|
+
entry.autocompleteRank = Math.min(entry.autocompleteRank ?? index, index);
|
|
24
|
+
});
|
|
25
|
+
const sampledWorks = { illustration: 0, novel: 0 };
|
|
26
|
+
if (contentTypes.includes('illustration')) {
|
|
27
|
+
const works = await this.client.searchIllustrationsForTags(normalizedSeed, sampleSize);
|
|
28
|
+
sampledWorks.illustration = works.length;
|
|
29
|
+
this.accumulateWorks(accumulators, works, 'illustration');
|
|
30
|
+
}
|
|
31
|
+
if (contentTypes.includes('novel')) {
|
|
32
|
+
const works = await this.client.searchNovelsForTags(normalizedSeed, sampleSize);
|
|
33
|
+
sampledWorks.novel = works.length;
|
|
34
|
+
this.accumulateWorks(accumulators, works, 'novel');
|
|
35
|
+
}
|
|
36
|
+
const seedKey = this.key(normalizedSeed);
|
|
37
|
+
const candidates = [...accumulators.values()]
|
|
38
|
+
.filter((candidate) => this.key(candidate.name) !== seedKey && this.key(candidate.translatedName ?? '') !== seedKey)
|
|
39
|
+
.map((candidate) => this.toCandidate(candidate, autocomplete.length, sampledWorks))
|
|
40
|
+
.sort((left, right) => right.score - left.score || this.totalOccurrences(right) - this.totalOccurrences(left) || left.name.localeCompare(right.name))
|
|
41
|
+
.slice(0, limit);
|
|
42
|
+
const now = options.now?.() ?? Date.now();
|
|
43
|
+
return {
|
|
44
|
+
version: 1,
|
|
45
|
+
seed: normalizedSeed,
|
|
46
|
+
createdAt: new Date(now).toISOString(),
|
|
47
|
+
expiresAt: new Date(now + ttlMs).toISOString(),
|
|
48
|
+
contentTypes,
|
|
49
|
+
sampleSize,
|
|
50
|
+
sampledWorks,
|
|
51
|
+
candidates,
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
normalizeContentTypes(types) {
|
|
55
|
+
const fallback = ['illustration', 'novel'];
|
|
56
|
+
const resolved = types && types.length ? types : fallback;
|
|
57
|
+
return [...new Set(resolved)];
|
|
58
|
+
}
|
|
59
|
+
boundedInteger(value, fallback, minimum, maximum, name) {
|
|
60
|
+
const resolved = value ?? fallback;
|
|
61
|
+
if (!Number.isInteger(resolved) || resolved < minimum || resolved > maximum) {
|
|
62
|
+
throw new Error(`${name} must be an integer between ${minimum} and ${maximum}`);
|
|
63
|
+
}
|
|
64
|
+
return resolved;
|
|
65
|
+
}
|
|
66
|
+
accumulateWorks(accumulators, works, type) {
|
|
67
|
+
works.forEach((work, workIndex) => {
|
|
68
|
+
const seen = new Set();
|
|
69
|
+
for (const tag of work.tags ?? []) {
|
|
70
|
+
const key = this.key(tag.name);
|
|
71
|
+
if (!key || seen.has(key))
|
|
72
|
+
continue;
|
|
73
|
+
seen.add(key);
|
|
74
|
+
const entry = this.accumulate(accumulators, tag);
|
|
75
|
+
if (entry) {
|
|
76
|
+
(type === 'illustration' ? entry.illustrationWorks : entry.novelWorks).add(workIndex);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
accumulate(accumulators, tag) {
|
|
82
|
+
const name = tag.name?.trim();
|
|
83
|
+
const key = this.key(name ?? '');
|
|
84
|
+
if (!key)
|
|
85
|
+
return undefined;
|
|
86
|
+
let entry = accumulators.get(key);
|
|
87
|
+
if (!entry) {
|
|
88
|
+
entry = {
|
|
89
|
+
name,
|
|
90
|
+
translatedName: tag.translated_name?.trim() || undefined,
|
|
91
|
+
illustrationWorks: new Set(),
|
|
92
|
+
novelWorks: new Set(),
|
|
93
|
+
};
|
|
94
|
+
accumulators.set(key, entry);
|
|
95
|
+
}
|
|
96
|
+
else if (!entry.translatedName && tag.translated_name?.trim()) {
|
|
97
|
+
entry.translatedName = tag.translated_name.trim();
|
|
98
|
+
}
|
|
99
|
+
return entry;
|
|
100
|
+
}
|
|
101
|
+
toCandidate(candidate, autocompleteCount, sampledWorks) {
|
|
102
|
+
const autocompleteScore = candidate.autocompleteRank === undefined
|
|
103
|
+
? 0
|
|
104
|
+
: Math.max(0.5, 1 - candidate.autocompleteRank / Math.max(autocompleteCount * 2, 1));
|
|
105
|
+
const cooccurrenceScore = Math.max(sampledWorks.illustration ? candidate.illustrationWorks.size / sampledWorks.illustration : 0, sampledWorks.novel ? candidate.novelWorks.size / sampledWorks.novel : 0);
|
|
106
|
+
const score = 1 - (1 - autocompleteScore) * (1 - cooccurrenceScore);
|
|
107
|
+
const sources = [];
|
|
108
|
+
if (candidate.autocompleteRank !== undefined)
|
|
109
|
+
sources.push('autocomplete');
|
|
110
|
+
if (candidate.illustrationWorks.size || candidate.novelWorks.size)
|
|
111
|
+
sources.push('cooccurrence');
|
|
112
|
+
const types = [];
|
|
113
|
+
if (candidate.illustrationWorks.size)
|
|
114
|
+
types.push('illustration');
|
|
115
|
+
if (candidate.novelWorks.size)
|
|
116
|
+
types.push('novel');
|
|
117
|
+
return {
|
|
118
|
+
name: candidate.name,
|
|
119
|
+
translatedName: candidate.translatedName,
|
|
120
|
+
sources,
|
|
121
|
+
types,
|
|
122
|
+
occurrences: {
|
|
123
|
+
illustration: candidate.illustrationWorks.size,
|
|
124
|
+
novel: candidate.novelWorks.size,
|
|
125
|
+
},
|
|
126
|
+
score: Number(score.toFixed(4)),
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
key(value) {
|
|
130
|
+
return value.trim().normalize('NFKC').toLocaleLowerCase();
|
|
131
|
+
}
|
|
132
|
+
totalOccurrences(candidate) {
|
|
133
|
+
return candidate.occurrences.illustration + candidate.occurrences.novel;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
exports.TagDiscoveryService = TagDiscoveryService;
|
|
137
|
+
//# sourceMappingURL=TagDiscoveryService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TagDiscoveryService.js","sourceRoot":"","sources":["../../src/tags/TagDiscoveryService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { TagDiscoveryContentType, TagDiscoveryManifest } from './types';
|
|
2
|
+
export interface TagDiscoveryCacheKey {
|
|
3
|
+
seed: string;
|
|
4
|
+
contentTypes: TagDiscoveryContentType[];
|
|
5
|
+
sampleSize: number;
|
|
6
|
+
limit: number;
|
|
7
|
+
}
|
|
8
|
+
/** Small, durable cache stored beside PixivFlow's database. */
|
|
9
|
+
export declare class TagDiscoveryStore {
|
|
10
|
+
private readonly directory;
|
|
11
|
+
private readonly now;
|
|
12
|
+
constructor(directory: string, now?: () => number);
|
|
13
|
+
pathFor(key: TagDiscoveryCacheKey): string;
|
|
14
|
+
loadFresh(key: TagDiscoveryCacheKey): Promise<{
|
|
15
|
+
manifest: TagDiscoveryManifest;
|
|
16
|
+
path: string;
|
|
17
|
+
} | undefined>;
|
|
18
|
+
save(key: TagDiscoveryCacheKey, manifest: TagDiscoveryManifest): Promise<string>;
|
|
19
|
+
read(path: string): Promise<TagDiscoveryManifest>;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=TagDiscoveryStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TagDiscoveryStore.d.ts","sourceRoot":"","sources":["../../src/tags/TagDiscoveryStore.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAE7E,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,uBAAuB,EAAE,CAAC;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,+DAA+D;AAC/D,qBAAa,iBAAiB;IAE1B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,GAAG;gBADH,SAAS,EAAE,MAAM,EACjB,GAAG,GAAE,MAAM,MAAiB;IAG/C,OAAO,CAAC,GAAG,EAAE,oBAAoB,GAAG,MAAM;IAapC,SAAS,CAAC,GAAG,EAAE,oBAAoB,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,oBAAoB,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;IAc3G,IAAI,CAAC,GAAG,EAAE,oBAAoB,EAAE,QAAQ,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC;IAchF,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;CAOxD"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TagDiscoveryStore = void 0;
|
|
4
|
+
const node_crypto_1 = require("node:crypto");
|
|
5
|
+
const node_fs_1 = require("node:fs");
|
|
6
|
+
const node_path_1 = require("node:path");
|
|
7
|
+
/** Small, durable cache stored beside PixivFlow's database. */
|
|
8
|
+
class TagDiscoveryStore {
|
|
9
|
+
directory;
|
|
10
|
+
now;
|
|
11
|
+
constructor(directory, now = Date.now) {
|
|
12
|
+
this.directory = directory;
|
|
13
|
+
this.now = now;
|
|
14
|
+
}
|
|
15
|
+
pathFor(key) {
|
|
16
|
+
const digest = (0, node_crypto_1.createHash)('sha256')
|
|
17
|
+
.update(JSON.stringify({
|
|
18
|
+
seed: key.seed.trim().normalize('NFKC').toLocaleLowerCase(),
|
|
19
|
+
contentTypes: [...key.contentTypes].sort(),
|
|
20
|
+
sampleSize: key.sampleSize,
|
|
21
|
+
limit: key.limit,
|
|
22
|
+
}))
|
|
23
|
+
.digest('hex')
|
|
24
|
+
.slice(0, 16);
|
|
25
|
+
return (0, node_path_1.join)(this.directory, `tag-discovery-${digest}.json`);
|
|
26
|
+
}
|
|
27
|
+
async loadFresh(key) {
|
|
28
|
+
const path = this.pathFor(key);
|
|
29
|
+
try {
|
|
30
|
+
const manifest = JSON.parse(await node_fs_1.promises.readFile(path, 'utf8'));
|
|
31
|
+
if (manifest.version !== 1 || !Array.isArray(manifest.candidates))
|
|
32
|
+
return undefined;
|
|
33
|
+
const expiresAt = Date.parse(manifest.expiresAt);
|
|
34
|
+
if (!Number.isFinite(expiresAt) || expiresAt <= this.now())
|
|
35
|
+
return undefined;
|
|
36
|
+
return { manifest, path };
|
|
37
|
+
}
|
|
38
|
+
catch (error) {
|
|
39
|
+
if (error.code === 'ENOENT' || error instanceof SyntaxError)
|
|
40
|
+
return undefined;
|
|
41
|
+
throw error;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
async save(key, manifest) {
|
|
45
|
+
await node_fs_1.promises.mkdir(this.directory, { recursive: true });
|
|
46
|
+
const path = this.pathFor(key);
|
|
47
|
+
const temporaryPath = `${path}.${process.pid}.${(0, node_crypto_1.randomUUID)()}.tmp`;
|
|
48
|
+
try {
|
|
49
|
+
await node_fs_1.promises.writeFile(temporaryPath, `${JSON.stringify(manifest, null, 2)}\n`, 'utf8');
|
|
50
|
+
await node_fs_1.promises.rename(temporaryPath, path);
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
await node_fs_1.promises.unlink(temporaryPath).catch(() => undefined);
|
|
54
|
+
throw error;
|
|
55
|
+
}
|
|
56
|
+
return path;
|
|
57
|
+
}
|
|
58
|
+
async read(path) {
|
|
59
|
+
const manifest = JSON.parse(await node_fs_1.promises.readFile(path, 'utf8'));
|
|
60
|
+
if (manifest.version !== 1 || !manifest.seed || !Array.isArray(manifest.candidates)) {
|
|
61
|
+
throw new Error(`Invalid tag discovery manifest: ${path}`);
|
|
62
|
+
}
|
|
63
|
+
return manifest;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
exports.TagDiscoveryStore = TagDiscoveryStore;
|
|
67
|
+
//# sourceMappingURL=TagDiscoveryStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TagDiscoveryStore.js","sourceRoot":"","sources":["../../src/tags/TagDiscoveryStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { TagDiscoveryManifest } from './types';
|
|
2
|
+
export interface TagPlanApplyOptions {
|
|
3
|
+
targetId: string;
|
|
4
|
+
selectedTags: string[];
|
|
5
|
+
mode?: 'append' | 'replace';
|
|
6
|
+
}
|
|
7
|
+
export interface TagPlanApplyResult {
|
|
8
|
+
targetId: string;
|
|
9
|
+
previousTag?: string;
|
|
10
|
+
tag: string;
|
|
11
|
+
selectedTags: string[];
|
|
12
|
+
backupPath: string;
|
|
13
|
+
}
|
|
14
|
+
/** Applies an explicitly selected subset and atomically publishes the config. */
|
|
15
|
+
export declare class TagPlanApplier {
|
|
16
|
+
apply(configPath: string, manifest: TagDiscoveryManifest, options: TagPlanApplyOptions): Promise<TagPlanApplyResult>;
|
|
17
|
+
private resolveSelectedTags;
|
|
18
|
+
private existingTags;
|
|
19
|
+
private unique;
|
|
20
|
+
private key;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=TagPlanApplier.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TagPlanApplier.d.ts","sourceRoot":"","sources":["../../src/tags/TagPlanApplier.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAEpD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,IAAI,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC7B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,iFAAiF;AACjF,qBAAa,cAAc;IACnB,KAAK,CACT,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,oBAAoB,EAC9B,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,kBAAkB,CAAC;IA8C9B,OAAO,CAAC,mBAAmB;IAW3B,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,MAAM;IAUd,OAAO,CAAC,GAAG;CAGZ"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TagPlanApplier = void 0;
|
|
4
|
+
const node_crypto_1 = require("node:crypto");
|
|
5
|
+
const node_fs_1 = require("node:fs");
|
|
6
|
+
const node_path_1 = require("node:path");
|
|
7
|
+
const validation_1 = require("../config/validation");
|
|
8
|
+
/** Applies an explicitly selected subset and atomically publishes the config. */
|
|
9
|
+
class TagPlanApplier {
|
|
10
|
+
async apply(configPath, manifest, options) {
|
|
11
|
+
const selectedTags = this.resolveSelectedTags(manifest, options.selectedTags);
|
|
12
|
+
if (selectedTags.length === 0)
|
|
13
|
+
throw new Error('At least one candidate tag must be selected');
|
|
14
|
+
if (selectedTags.some((tag) => /\s/u.test(tag))) {
|
|
15
|
+
throw new Error('Selected Pixiv tags containing whitespace cannot be represented by the current OR-tag config format');
|
|
16
|
+
}
|
|
17
|
+
const raw = await node_fs_1.promises.readFile(configPath, 'utf8');
|
|
18
|
+
const config = JSON.parse(raw);
|
|
19
|
+
const target = config.targets.find((item) => item.id === options.targetId);
|
|
20
|
+
if (!target)
|
|
21
|
+
throw new Error(`Target id not found: ${options.targetId}`);
|
|
22
|
+
if (target.mode === 'ranking' && target.filterTag) {
|
|
23
|
+
throw new Error(`Target ${options.targetId} uses ranking.filterTag; tag discovery apply supports search targets only`);
|
|
24
|
+
}
|
|
25
|
+
const previousTag = target.tag;
|
|
26
|
+
const existing = options.mode === 'replace' ? [] : this.existingTags(target);
|
|
27
|
+
const nextTags = this.unique([...existing, ...selectedTags]);
|
|
28
|
+
target.tag = nextTags.join(' ');
|
|
29
|
+
target.tagRelation = 'or';
|
|
30
|
+
target.searchTarget = target.searchTarget ?? 'partial_match_for_tags';
|
|
31
|
+
(0, validation_1.validateConfig)(config, configPath, config.storage?.databasePath);
|
|
32
|
+
const temporaryPath = `${configPath}.${process.pid}.${(0, node_crypto_1.randomUUID)()}.tmp`;
|
|
33
|
+
const backupPath = `${configPath}.tag-apply.bak`;
|
|
34
|
+
const mode = (await node_fs_1.promises.stat(configPath)).mode;
|
|
35
|
+
await node_fs_1.promises.mkdir((0, node_path_1.dirname)(configPath), { recursive: true });
|
|
36
|
+
await node_fs_1.promises.copyFile(configPath, backupPath);
|
|
37
|
+
try {
|
|
38
|
+
await node_fs_1.promises.writeFile(temporaryPath, `${JSON.stringify(config, null, 2)}\n`, 'utf8');
|
|
39
|
+
await node_fs_1.promises.chmod(temporaryPath, mode);
|
|
40
|
+
await node_fs_1.promises.rename(temporaryPath, configPath);
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
await node_fs_1.promises.unlink(temporaryPath).catch(() => undefined);
|
|
44
|
+
throw error;
|
|
45
|
+
}
|
|
46
|
+
return {
|
|
47
|
+
targetId: options.targetId,
|
|
48
|
+
previousTag,
|
|
49
|
+
tag: target.tag,
|
|
50
|
+
selectedTags,
|
|
51
|
+
backupPath,
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
resolveSelectedTags(manifest, requested) {
|
|
55
|
+
const candidates = new Map(manifest.candidates.map((candidate) => [this.key(candidate.name), candidate.name]));
|
|
56
|
+
return this.unique(requested.map((value) => {
|
|
57
|
+
const candidate = candidates.get(this.key(value));
|
|
58
|
+
if (!candidate)
|
|
59
|
+
throw new Error(`Tag is not in the discovery manifest: ${value}`);
|
|
60
|
+
return candidate;
|
|
61
|
+
}));
|
|
62
|
+
}
|
|
63
|
+
existingTags(target) {
|
|
64
|
+
const current = target.tag?.trim();
|
|
65
|
+
if (!current)
|
|
66
|
+
return [];
|
|
67
|
+
if (target.tagRelation !== 'or')
|
|
68
|
+
return [current];
|
|
69
|
+
return current.split(/\s+/u).filter(Boolean);
|
|
70
|
+
}
|
|
71
|
+
unique(values) {
|
|
72
|
+
const seen = new Set();
|
|
73
|
+
return values.filter((value) => {
|
|
74
|
+
const key = this.key(value);
|
|
75
|
+
if (!key || seen.has(key))
|
|
76
|
+
return false;
|
|
77
|
+
seen.add(key);
|
|
78
|
+
return true;
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
key(value) {
|
|
82
|
+
return value.trim().normalize('NFKC').toLocaleLowerCase();
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
exports.TagPlanApplier = TagPlanApplier;
|
|
86
|
+
//# sourceMappingURL=TagPlanApplier.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TagPlanApplier.js","sourceRoot":"","sources":["../../src/tags/TagPlanApplier.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { PixivTag } from '../pixiv/types';
|
|
2
|
+
export type TagDiscoveryContentType = 'illustration' | 'novel';
|
|
3
|
+
export interface TagDiscoveryCandidate {
|
|
4
|
+
name: string;
|
|
5
|
+
translatedName?: string;
|
|
6
|
+
sources: Array<'autocomplete' | 'cooccurrence'>;
|
|
7
|
+
types: TagDiscoveryContentType[];
|
|
8
|
+
occurrences: {
|
|
9
|
+
illustration: number;
|
|
10
|
+
novel: number;
|
|
11
|
+
};
|
|
12
|
+
score: number;
|
|
13
|
+
}
|
|
14
|
+
export interface TagDiscoveryManifest {
|
|
15
|
+
version: 1;
|
|
16
|
+
seed: string;
|
|
17
|
+
createdAt: string;
|
|
18
|
+
expiresAt: string;
|
|
19
|
+
contentTypes: TagDiscoveryContentType[];
|
|
20
|
+
sampleSize: number;
|
|
21
|
+
sampledWorks: {
|
|
22
|
+
illustration: number;
|
|
23
|
+
novel: number;
|
|
24
|
+
};
|
|
25
|
+
candidates: TagDiscoveryCandidate[];
|
|
26
|
+
}
|
|
27
|
+
export interface TagDiscoveryClient {
|
|
28
|
+
getTagAutocomplete(seed: string): Promise<PixivTag[]>;
|
|
29
|
+
searchIllustrationsForTags(seed: string, limit: number): Promise<Array<{
|
|
30
|
+
tags?: PixivTag[];
|
|
31
|
+
}>>;
|
|
32
|
+
searchNovelsForTags(seed: string, limit: number): Promise<Array<{
|
|
33
|
+
tags?: PixivTag[];
|
|
34
|
+
}>>;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tags/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,MAAM,MAAM,uBAAuB,GAAG,cAAc,GAAG,OAAO,CAAC;AAE/D,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,KAAK,CAAC,cAAc,GAAG,cAAc,CAAC,CAAC;IAChD,KAAK,EAAE,uBAAuB,EAAE,CAAC;IACjC,WAAW,EAAE;QACX,YAAY,EAAE,MAAM,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,CAAC,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,uBAAuB,EAAE,CAAC;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE;QACZ,YAAY,EAAE,MAAM,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,UAAU,EAAE,qBAAqB,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,kBAAkB;IACjC,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IACtD,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAA;KAAE,CAAC,CAAC,CAAC;IAC/F,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAA;KAAE,CAAC,CAAC,CAAC;CACzF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/tags/types.ts"],"names":[],"mappings":""}
|
package/dist/webui/package.json
CHANGED
package/package.json
CHANGED