@nocoo/zhe 1.24.0 → 1.24.2
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 +6 -2
- package/dist/api/client.d.ts +3 -10
- package/dist/api/client.d.ts.map +1 -1
- package/dist/api/client.js +9 -5
- package/dist/api/client.js.map +1 -1
- package/dist/commands/connector.d.ts.map +1 -1
- package/dist/commands/connector.js +16 -6
- package/dist/commands/connector.js.map +1 -1
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +2 -2
- package/dist/commands/login.js.map +1 -1
- package/dist/connector/download.d.ts +1 -1
- package/dist/connector/download.d.ts.map +1 -1
- package/dist/connector/download.js +8 -1
- package/dist/connector/download.js.map +1 -1
- package/dist/connector/log.d.ts +24 -0
- package/dist/connector/log.d.ts.map +1 -0
- package/dist/connector/log.js +145 -0
- package/dist/connector/log.js.map +1 -0
- package/dist/connector/runtime.d.ts +5 -3
- package/dist/connector/runtime.d.ts.map +1 -1
- package/dist/connector/runtime.js +84 -22
- package/dist/connector/runtime.js.map +1 -1
- package/dist/connector/types.d.ts +17 -0
- package/dist/connector/types.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -59,7 +59,7 @@ Save a link through the website, Webhook, API, or `zhe create`. The Connector pi
|
|
|
59
59
|
|
|
60
60
|
Use Node.js ≥ 22.16. OpenCLI is included as a pinned dependency; install its [browser extension](https://github.com/jackwener/opencli), sign in to X in that browser, and install FFmpeg with `ffprobe` on PATH (`brew install ffmpeg` on macOS).
|
|
61
61
|
|
|
62
|
-
On Zhe's API Keys page, create
|
|
62
|
+
On Zhe's API Keys page, create a key with `connector:write`; that is the only scope the Connector needs. Login accepts any valid key, including keys with a single read or write scope. Other commands enforce their own permissions: add `links:read` to list links and `links:write` to create them. Then:
|
|
63
63
|
|
|
64
64
|
```bash
|
|
65
65
|
zhe login
|
|
@@ -69,7 +69,11 @@ zhe connector start
|
|
|
69
69
|
|
|
70
70
|
The Connector reads the same login configuration on every poll. Its permission expires 30 days after key creation; rotate the key through the API Keys page, then run `zhe logout` and `zhe login`. Revoking the key stops further Connector mutations. The background service contains no key or X cookies.
|
|
71
71
|
|
|
72
|
-
On Linux or Windows, run `zhe connector watch` under your normal process supervisor. Keep the browser extension connected and the machine awake. Failed media does not prevent saving the post text; retry is available
|
|
72
|
+
On Linux or Windows, run `zhe connector watch` under your normal process supervisor. Keep the browser extension connected and the machine awake. Failed media does not prevent saving the post text; retry is available in the post details. The current limits are 64 MiB per video and 10 MiB per image. Protected accounts and browser challenges are not supported.
|
|
73
|
+
|
|
74
|
+
`watch` shows timestamped queue counts, the current link/post and retry attempt, text capture, media download percentages, verification, uploads, and poster generation. Slow stages continue to report activity every 10 seconds. Results include elapsed time and session totals for complete/partial/failed jobs, archived/skipped media, and confirmed upload bytes. Processing is serial, with a 20-second wait after each poll finishes. `Ctrl+C` prints the final totals and stops.
|
|
75
|
+
|
|
76
|
+
Use `zhe connector watch --json` for newline-delimited JSON events, or `zhe connector once` for a single job. `once --json` and `status --json` also support scripted use. Background logs contain no ANSI animation, API keys, browser cookies, post text, or raw upstream errors.
|
|
73
77
|
|
|
74
78
|
Archived files use Zhe's existing R2 file-sharing behavior. Delete a video to remove its poster too; delete a bookmark to remove all of its archived attachments. Removing an attachment explicitly prevents a later retry from restoring it.
|
|
75
79
|
|
package/dist/api/client.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* HTTP client for zhe.to API v1
|
|
3
3
|
*/
|
|
4
|
-
import type { DownloadedMedia, MediaReservation, XJob } from "../connector/types.js";
|
|
4
|
+
import type { ConnectorStatus, DownloadedMedia, MediaReservation, XJob } from "../connector/types.js";
|
|
5
5
|
import type { CreateFolderRequest, CreateIdeaRequest, CreateLinkRequest, CreateTagRequest, FolderResponse, FoldersResponse, IdeaResponse, IdeasResponse, LinkResponse, LinksResponse, ListIdeasParams, ListLinksParams, TagResponse, TagsResponse, UpdateFolderRequest, UpdateIdeaRequest, UpdateLinkRequest, UpdateTagRequest } from "./types.js";
|
|
6
6
|
export declare class ApiClient {
|
|
7
7
|
private baseUrl;
|
|
@@ -62,7 +62,7 @@ export declare class ApiClient {
|
|
|
62
62
|
*/
|
|
63
63
|
deleteTag(id: string): Promise<void>;
|
|
64
64
|
/**
|
|
65
|
-
* Verify
|
|
65
|
+
* Verify identity without requiring links:read or granting any extra scope.
|
|
66
66
|
*/
|
|
67
67
|
verifyKey(): Promise<boolean>;
|
|
68
68
|
/**
|
|
@@ -85,14 +85,7 @@ export declare class ApiClient {
|
|
|
85
85
|
* Delete an idea
|
|
86
86
|
*/
|
|
87
87
|
deleteIdea(id: number): Promise<void>;
|
|
88
|
-
connectorStatus(): Promise<
|
|
89
|
-
states: {
|
|
90
|
-
state: string;
|
|
91
|
-
count: number;
|
|
92
|
-
}[];
|
|
93
|
-
keyPrefix: string;
|
|
94
|
-
expiresAt: number;
|
|
95
|
-
}>;
|
|
88
|
+
connectorStatus(signal?: AbortSignal): Promise<ConnectorStatus>;
|
|
96
89
|
claimXJob(signal?: AbortSignal): Promise<{
|
|
97
90
|
job: XJob | null;
|
|
98
91
|
}>;
|
package/dist/api/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,IAAI,EACL,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAEV,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,aAAa,EACb,eAAe,EACf,eAAe,EACf,WAAW,EACX,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAKpB,qBAAa,SAAS;IAOlB,OAAO,CAAC,OAAO;IANjB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAAS;IAE1B,YACE,MAAM,EAAE,MAAM,EACd,OAAO,SAAc,EACb,OAAO,SAAW,EAI3B;YAEa,OAAO;IAwErB;;OAEG;IACG,SAAS,CAAC,MAAM,GAAE,eAAoB,GAAG,OAAO,CAAC,aAAa,CAAC,CAiBpE;IAED;;OAEG;IACG,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAE/C;IAED;;OAEG;IACG,UAAU,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,YAAY,CAAC,CAE/D;IAED;;OAEG;IACG,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,YAAY,CAAC,CAE3E;IAED;;OAEG;IACG,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE1C;IAED;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,eAAe,CAAC,CAE5C;IAED;;OAEG;IACG,YAAY,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,CAAC,CAErE;IAED;;OAEG;IACG,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,CAAC,CAEjF;IAED;;OAEG;IACG,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE5C;IAED;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,YAAY,CAAC,CAEtC;IAED;;OAEG;IACG,SAAS,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC,CAE5D;IAED;;OAEG;IACG,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC,CAExE;IAED;;OAEG;IACG,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEzC;IAED;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,CAiBlC;IAID;;OAEG;IACG,SAAS,CAAC,MAAM,GAAE,eAAoB,GAAG,OAAO,CAAC,aAAa,CAAC,CAUpE;IAED;;OAEG;IACG,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAE/C;IAED;;OAEG;IACG,UAAU,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,YAAY,CAAC,CAE/D;IAED;;OAEG;IACG,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,YAAY,CAAC,CAE3E;IAED;;OAEG;IACG,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE1C;IAED,eAAe,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC,CAE9D;IAED,SAAS,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC;QAAE,GAAG,EAAE,IAAI,GAAG,IAAI,CAAA;KAAE,CAAC,CAE7D;IAED,eAAe,CAAC,CAAC,GAAG;QAAE,EAAE,EAAE,OAAO,CAAA;KAAE,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CAQ/F;IAEK,YAAY,CAChB,GAAG,EAAE,IAAI,EACT,KAAK,EAAE,gBAAgB,EACvB,IAAI,EAAE,eAAe,EACrB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC,CASf;CACF;AAED,qBAAa,cAAe,SAAQ,KAAK;aAErB,MAAM,EAAE,MAAM;IADhC,YACkB,MAAM,EAAE,MAAM,EAC9B,OAAO,EAAE,MAAM,EAIhB;CACF;AAgBD,eAAO,MAAM,YAAY,IAAI,CAAC;AAC9B,eAAO,MAAM,UAAU,IAAI,CAAC;AAC5B,eAAO,MAAM,iBAAiB,IAAI,CAAC;AACnC,eAAO,MAAM,kBAAkB,IAAI,CAAC;AACpC,eAAO,MAAM,cAAc,IAAI,CAAC;AAChC,eAAO,MAAM,iBAAiB,IAAI,CAAC"}
|
package/dist/api/client.js
CHANGED
|
@@ -166,7 +166,7 @@ export class ApiClient {
|
|
|
166
166
|
await this.request("DELETE", `/tags/${id}`);
|
|
167
167
|
}
|
|
168
168
|
/**
|
|
169
|
-
* Verify
|
|
169
|
+
* Verify identity without requiring links:read or granting any extra scope.
|
|
170
170
|
*/
|
|
171
171
|
async verifyKey() {
|
|
172
172
|
try {
|
|
@@ -175,9 +175,13 @@ export class ApiClient {
|
|
|
175
175
|
}
|
|
176
176
|
catch (error) {
|
|
177
177
|
if (error instanceof ApiClientError) {
|
|
178
|
-
if (error.status === 401
|
|
178
|
+
if (error.status === 401)
|
|
179
179
|
return false;
|
|
180
|
-
|
|
180
|
+
// This response is only emitted after the API has authenticated the key.
|
|
181
|
+
// Other 403 responses (for example, an edge denial) do not verify identity.
|
|
182
|
+
if (error.status === 403 &&
|
|
183
|
+
error.message === "Insufficient permissions. Required scope: links:read")
|
|
184
|
+
return true;
|
|
181
185
|
}
|
|
182
186
|
throw error;
|
|
183
187
|
}
|
|
@@ -224,8 +228,8 @@ export class ApiClient {
|
|
|
224
228
|
async deleteIdea(id) {
|
|
225
229
|
await this.request("DELETE", `/ideas/${id}`);
|
|
226
230
|
}
|
|
227
|
-
connectorStatus() {
|
|
228
|
-
return this.request("GET", "/connector");
|
|
231
|
+
connectorStatus(signal) {
|
|
232
|
+
return this.request("GET", "/connector", undefined, {}, signal);
|
|
229
233
|
}
|
|
230
234
|
claimXJob(signal) {
|
|
231
235
|
return this.request("POST", "/connector", {}, {}, signal);
|
package/dist/api/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connector.d.ts","sourceRoot":"","sources":["../../src/commands/connector.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"connector.d.ts","sourceRoot":"","sources":["../../src/commands/connector.ts"],"names":[],"mappings":"AAoBA,eAAO,MAAM,gBAAgB,qDAyF3B,CAAC"}
|
|
@@ -5,6 +5,7 @@ import { join } from "node:path";
|
|
|
5
5
|
import { fileURLToPath } from "node:url";
|
|
6
6
|
import { promisify } from "node:util";
|
|
7
7
|
import { defineCommand } from "@nocoo/base-cli";
|
|
8
|
+
import { ConnectorLogger } from "../connector/log.js";
|
|
8
9
|
import { authenticatedClient, runOnce, watchConnector } from "../connector/runtime.js";
|
|
9
10
|
const execute = promisify(execFile);
|
|
10
11
|
const label = "ai.hexly.zhe.connector";
|
|
@@ -22,25 +23,34 @@ export const connectorCommand = defineCommand({
|
|
|
22
23
|
subCommands: {
|
|
23
24
|
status: defineCommand({
|
|
24
25
|
meta: { name: "status", description: "Show Connector queue and shared CLI key expiry" },
|
|
25
|
-
|
|
26
|
-
|
|
26
|
+
args: { json: { type: "boolean", description: "Output JSON" } },
|
|
27
|
+
async run({ args }) {
|
|
28
|
+
const status = await authenticatedClient().connectorStatus();
|
|
29
|
+
if (args.json)
|
|
30
|
+
console.log(JSON.stringify(status, null, 2));
|
|
31
|
+
else
|
|
32
|
+
new ConnectorLogger().queue(status);
|
|
27
33
|
},
|
|
28
34
|
}),
|
|
29
35
|
once: defineCommand({
|
|
30
36
|
meta: { name: "once", description: "Process one saved X bookmark" },
|
|
31
|
-
|
|
32
|
-
|
|
37
|
+
args: { json: { type: "boolean", description: "Output JSON progress and result" } },
|
|
38
|
+
async run({ args }) {
|
|
39
|
+
const log = new ConnectorLogger(Boolean(args.json));
|
|
40
|
+
const started = Date.now();
|
|
41
|
+
log.result(await runOnce(undefined, log.progress), Date.now() - started);
|
|
33
42
|
},
|
|
34
43
|
}),
|
|
35
44
|
watch: defineCommand({
|
|
36
45
|
meta: { name: "watch", description: "Poll saved X bookmarks every 20 seconds" },
|
|
37
|
-
|
|
46
|
+
args: { json: { type: "boolean", description: "Output newline-delimited JSON events" } },
|
|
47
|
+
async run({ args }) {
|
|
38
48
|
const controller = new AbortController();
|
|
39
49
|
const stop = () => controller.abort();
|
|
40
50
|
process.once("SIGINT", stop);
|
|
41
51
|
process.once("SIGTERM", stop);
|
|
42
52
|
try {
|
|
43
|
-
await watchConnector(controller.signal);
|
|
53
|
+
await watchConnector(controller.signal, Boolean(args.json));
|
|
44
54
|
}
|
|
45
55
|
finally {
|
|
46
56
|
process.removeListener("SIGINT", stop);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connector.js","sourceRoot":"","sources":["../../src/commands/connector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEvF,MAAM,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AACpC,MAAM,KAAK,GAAG,wBAAwB,CAAC;AACvC,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,KAAK,QAAQ,CAAC,CAAC;AACrF,MAAM,GAAG,GAAG,CAAC,KAAa,EAAE,EAAE,CAC5B,KAAK;KACF,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC;KACxB,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC;KACvB,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC;KACvB,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;AAE/B,MAAM,CAAC,MAAM,gBAAgB,GAAG,aAAa,CAAC;IAC5C,IAAI,EAAE;QACJ,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,uEAAuE;KACrF;IACD,WAAW,EAAE;QACX,MAAM,EAAE,aAAa,CAAC;YACpB,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gDAAgD,EAAE;YACvF,KAAK,CAAC,GAAG;
|
|
1
|
+
{"version":3,"file":"connector.js","sourceRoot":"","sources":["../../src/commands/connector.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH,eAAO,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH,eAAO,MAAM,YAAY,qDA4DvB,CAAC"}
|
package/dist/commands/login.js
CHANGED
|
@@ -52,10 +52,10 @@ export const loginCommand = defineCommand({
|
|
|
52
52
|
}
|
|
53
53
|
// Save the key
|
|
54
54
|
saveApiKey(apiKey);
|
|
55
|
-
console.log(pc.green("✓ API Key saved (
|
|
55
|
+
console.log(pc.green("✓ API Key saved (identity verified)"));
|
|
56
56
|
console.log(` API Key: ${pc.cyan(maskApiKey(apiKey))}`);
|
|
57
57
|
console.log();
|
|
58
|
-
console.log(pc.dim("
|
|
58
|
+
console.log(pc.dim("Commands require their own scopes. Connector only needs `connector:write`."));
|
|
59
59
|
console.log(`To create an API Key, visit: ${pc.cyan("https://zhe.to/dashboard/api-keys")}`);
|
|
60
60
|
},
|
|
61
61
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9D,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,CAAC;IACxC,IAAI,EAAE;QACJ,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,2BAA2B;KACzC;IACD,KAAK,CAAC,GAAG;QACP,6BAA6B;QAC7B,MAAM,WAAW,GAAG,SAAS,EAAE,CAAC;QAChC,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,mCAAmC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;YACrF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC,CAAC;YAClE,OAAO;QACT,CAAC;QAED,qBAAqB;QACrB,MAAM,MAAM,GAAG,MAAM,eAAe,EAAE,CAAC;QAEvC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAC;YAC5C,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACnC,CAAC;QAED,kBAAkB;QAClB,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC,CAAC;YAChD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC,CAAC;YACtD,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACnC,CAAC;QAED,eAAe;QACf,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC;QAErC,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;YACvC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC;gBACzC,OAAO,CAAC,GAAG,EAAE,CAAC;gBACd,OAAO,CAAC,GAAG,CAAC,gCAAgC,EAAE,CAAC,IAAI,CAAC,mCAAmC,CAAC,EAAE,CAAC,CAAC;gBAC5F,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC,CAAC;YAClD,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;gBAC3B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;YACrC,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC3B,CAAC;QAED,eAAe;QACf,UAAU,CAAC,MAAM,CAAC,CAAC;QAEnB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type XMedia } from "./core.js";
|
|
2
2
|
import type { DownloadedMedia } from "./types.js";
|
|
3
|
-
export declare function downloadMedia(media: XMedia, directory: string, signal?: AbortSignal): Promise<DownloadedMedia>;
|
|
3
|
+
export declare function downloadMedia(media: XMedia, directory: string, signal?: AbortSignal, onProgress?: (phase: "download" | "verify", received: number, total: number) => void): Promise<DownloadedMedia>;
|
|
4
4
|
export declare function makePoster(video: string, signal?: AbortSignal): Promise<DownloadedMedia | null>;
|
|
5
5
|
//# sourceMappingURL=download.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"download.d.ts","sourceRoot":"","sources":["../../src/connector/download.ts"],"names":[],"mappings":"AAMA,OAAO,EAOL,KAAK,MAAM,EACZ,MAAM,WAAW,CAAC;AAEnB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAyClD,wBAAsB,aAAa,CACjC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"download.d.ts","sourceRoot":"","sources":["../../src/connector/download.ts"],"names":[],"mappings":"AAMA,OAAO,EAOL,KAAK,MAAM,EACZ,MAAM,WAAW,CAAC;AAEnB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAyClD,wBAAsB,aAAa,CACjC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,WAAW,EACpB,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,GAAG,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GACnF,OAAO,CAAC,eAAe,CAAC,CAiH1B;AAED,wBAAsB,UAAU,CAC9B,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAkCjC"}
|
|
@@ -43,7 +43,7 @@ async function mediaResponse(media, signal) {
|
|
|
43
43
|
}
|
|
44
44
|
throw new ConnectorError("unsafe_redirect");
|
|
45
45
|
}
|
|
46
|
-
export async function downloadMedia(media, directory, signal) {
|
|
46
|
+
export async function downloadMedia(media, directory, signal, onProgress) {
|
|
47
47
|
const video = media.type !== "PHOTO";
|
|
48
48
|
const bounded = AbortSignal.any([AbortSignal.timeout(120_000), ...(signal ? [signal] : [])]);
|
|
49
49
|
await mkdir(directory, { recursive: true, mode: 0o700 });
|
|
@@ -56,6 +56,8 @@ export async function downloadMedia(media, directory, signal) {
|
|
|
56
56
|
const reader = body.getReader();
|
|
57
57
|
const hash = createHash("sha256");
|
|
58
58
|
let received = 0;
|
|
59
|
+
let lastProgress = Date.now();
|
|
60
|
+
onProgress?.("download", 0, size);
|
|
59
61
|
let head = new Uint8Array();
|
|
60
62
|
try {
|
|
61
63
|
for (;;) {
|
|
@@ -74,6 +76,10 @@ export async function downloadMedia(media, directory, signal) {
|
|
|
74
76
|
}
|
|
75
77
|
hash.update(value);
|
|
76
78
|
await file.writeFile(value);
|
|
79
|
+
if (received === size || Date.now() - lastProgress >= 1000) {
|
|
80
|
+
onProgress?.("download", received, size);
|
|
81
|
+
lastProgress = Date.now();
|
|
82
|
+
}
|
|
77
83
|
}
|
|
78
84
|
if (received !== size)
|
|
79
85
|
throw new ConnectorError("size_mismatch");
|
|
@@ -85,6 +91,7 @@ export async function downloadMedia(media, directory, signal) {
|
|
|
85
91
|
}
|
|
86
92
|
await file.close();
|
|
87
93
|
file = undefined;
|
|
94
|
+
onProgress?.("verify", received, size);
|
|
88
95
|
let probe;
|
|
89
96
|
try {
|
|
90
97
|
const output = await execute("ffprobe", [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"download.js","sourceRoot":"","sources":["../../src/connector/download.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"download.js","sourceRoot":"","sources":["../../src/connector/download.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { PollResult } from "./runtime.js";
|
|
2
|
+
import type { ConnectorProgress, ConnectorStatus } from "./types.js";
|
|
3
|
+
/** Only known codes become log text; upstream errors may contain cookies or response bodies. */
|
|
4
|
+
export declare function connectorErrorHint(error: unknown): string;
|
|
5
|
+
export declare class ConnectorLogger {
|
|
6
|
+
private json;
|
|
7
|
+
private started;
|
|
8
|
+
private lastProgress;
|
|
9
|
+
private active?;
|
|
10
|
+
private queueSnapshot;
|
|
11
|
+
private totalMedia;
|
|
12
|
+
private stats;
|
|
13
|
+
constructor(json?: boolean);
|
|
14
|
+
private write;
|
|
15
|
+
start(): void;
|
|
16
|
+
queue(status: ConnectorStatus): void;
|
|
17
|
+
progress: (event: ConnectorProgress) => void;
|
|
18
|
+
tick(): void;
|
|
19
|
+
result(result: PollResult, durationMs: number, watching?: boolean): void;
|
|
20
|
+
offline(error: unknown): void;
|
|
21
|
+
private summary;
|
|
22
|
+
stop(): void;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=log.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../src/connector/log.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AA0BrE,gGAAgG;AAChG,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAUzD;AAED,qBAAa,eAAe;IAiBd,OAAO,CAAC,IAAI;IAhBxB,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,YAAY,CAAc;IAClC,OAAO,CAAC,MAAM,CAAC,CAAoB;IACnC,OAAO,CAAC,aAAa,CAAM;IAC3B,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,KAAK,CASX;IAEF,YAAoB,IAAI,UAAQ,EAAI;IAEpC,OAAO,CAAC,KAAK;IAkBb,KAAK,SAKJ;IAED,KAAK,CAAC,MAAM,EAAE,eAAe,QAU5B;IAED,QAAQ,UAAW,iBAAiB,UAclC;IAEF,IAAI,SAMH;IAED,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,UAAQ,QAkB9D;IAED,OAAO,CAAC,KAAK,EAAE,OAAO,QAOrB;IAED,OAAO,CAAC,OAAO;IAKf,IAAI,SAMH;CACF"}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import { formatDuration, formatSize, pc } from "@nocoo/base-cli";
|
|
2
|
+
import { ApiClientError } from "../api/client.js";
|
|
3
|
+
import { CLI_VERSION } from "../version.js";
|
|
4
|
+
import { ConnectorError } from "./core.js";
|
|
5
|
+
const fallbackHint = "Connector processing failed. Check the connection and retry.";
|
|
6
|
+
const hints = {
|
|
7
|
+
0: "Cannot reach Zhe. Check the network connection.",
|
|
8
|
+
401: "API Key missing, invalid or revoked. Run `zhe login` with a valid key.",
|
|
9
|
+
403: "Connector permission missing or expired. Use a key with `connector:write` created within 30 days.",
|
|
10
|
+
409: "This job's lease is no longer valid; it will not be overwritten.",
|
|
11
|
+
429: "API rate limit reached. Waiting before the next poll.",
|
|
12
|
+
needs_login: "Connect the OpenCLI browser extension and sign in to X.",
|
|
13
|
+
opencli_unavailable: "OpenCLI is unavailable. Check its browser extension and connection.",
|
|
14
|
+
unsupported_opencli_version: "OpenCLI version mismatch. Reinstall the Zhe CLI dependencies.",
|
|
15
|
+
adapter_contract_changed: "OpenCLI adapter changed. Update the Zhe CLI.",
|
|
16
|
+
post_unavailable: "The saved X post is unavailable or protected.",
|
|
17
|
+
invalid_post_id: "The saved X post ID is invalid.",
|
|
18
|
+
invalid_media: "Media has an unsupported type or exceeds the size limit.",
|
|
19
|
+
decode_failed: "Media verification failed. Check FFmpeg and ffprobe are installed.",
|
|
20
|
+
download_failed: "Media download failed. The saved text is retained for retry.",
|
|
21
|
+
size_mismatch: "Media download was incomplete or its size changed.",
|
|
22
|
+
unsafe_redirect: "The media redirect could not be verified.",
|
|
23
|
+
unsafe_media_address: "The media address could not be verified.",
|
|
24
|
+
media_dns_unavailable: "Media DNS lookup failed. Check the network connection.",
|
|
25
|
+
interrupted: "Processing interrupted; unfinished work can be retried.",
|
|
26
|
+
connector_error: fallbackHint,
|
|
27
|
+
};
|
|
28
|
+
/** Only known codes become log text; upstream errors may contain cookies or response bodies. */
|
|
29
|
+
export function connectorErrorHint(error) {
|
|
30
|
+
const code = error instanceof ApiClientError
|
|
31
|
+
? error.status
|
|
32
|
+
: error instanceof ConnectorError
|
|
33
|
+
? error.code
|
|
34
|
+
: error;
|
|
35
|
+
return (typeof code === "string" || typeof code === "number") && typeof hints[code] === "string"
|
|
36
|
+
? hints[code]
|
|
37
|
+
: fallbackHint;
|
|
38
|
+
}
|
|
39
|
+
export class ConnectorLogger {
|
|
40
|
+
json;
|
|
41
|
+
started = Date.now();
|
|
42
|
+
lastProgress = Date.now();
|
|
43
|
+
active;
|
|
44
|
+
queueSnapshot = "";
|
|
45
|
+
totalMedia = 0;
|
|
46
|
+
stats = {
|
|
47
|
+
complete: 0,
|
|
48
|
+
partial: 0,
|
|
49
|
+
failed: 0,
|
|
50
|
+
interrupted: 0,
|
|
51
|
+
media: 0,
|
|
52
|
+
skipped: 0,
|
|
53
|
+
bytes: 0,
|
|
54
|
+
errors: 0,
|
|
55
|
+
};
|
|
56
|
+
constructor(json = false) {
|
|
57
|
+
this.json = json;
|
|
58
|
+
}
|
|
59
|
+
write(event, message, fields = {}) {
|
|
60
|
+
const time = new Date();
|
|
61
|
+
if (this.json) {
|
|
62
|
+
console.log(JSON.stringify({ time: time.toISOString(), event, message, ...fields }));
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
const color = ["failed", "offline"].includes(event)
|
|
66
|
+
? pc.red
|
|
67
|
+
: ["warning", "partial", "interrupted"].includes(event)
|
|
68
|
+
? pc.yellow
|
|
69
|
+
: ["complete", "uploaded", "saved"].includes(event)
|
|
70
|
+
? pc.green
|
|
71
|
+
: pc.cyan;
|
|
72
|
+
console.log(`${pc.dim(time.toLocaleTimeString("en-GB", { hour12: false }))} ${color(event.toUpperCase().padEnd(11))} ${message}`);
|
|
73
|
+
}
|
|
74
|
+
start() {
|
|
75
|
+
this.write("ready", `Zhe · X Connector ${CLI_VERSION} · one job at a time · 20s between polls · Ctrl+C to stop`);
|
|
76
|
+
}
|
|
77
|
+
queue(status) {
|
|
78
|
+
const states = Object.fromEntries(status.states.map(({ state, count }) => [state, count]));
|
|
79
|
+
const snapshot = JSON.stringify([states, status.expiresAt]);
|
|
80
|
+
if (snapshot === this.queueSnapshot)
|
|
81
|
+
return;
|
|
82
|
+
this.queueSnapshot = snapshot;
|
|
83
|
+
this.write("queue", `${["pending", "running", "complete", "partial", "failed", "unavailable"].map((state) => `${states[state] ?? 0} ${state}`).join(" · ")} · key expires ${new Date(status.expiresAt).toISOString().slice(0, 10)}`, { states, expiresAt: status.expiresAt });
|
|
84
|
+
}
|
|
85
|
+
progress = (event) => {
|
|
86
|
+
this.active = event;
|
|
87
|
+
this.lastProgress = Date.now();
|
|
88
|
+
if (event.stage === "claim")
|
|
89
|
+
this.totalMedia = 0;
|
|
90
|
+
if (event.stage === "capture")
|
|
91
|
+
this.totalMedia = event.total ?? 0;
|
|
92
|
+
if (event.stage === "uploaded")
|
|
93
|
+
this.stats.bytes += event.bytes ?? 0;
|
|
94
|
+
if (event.stage === "skipped")
|
|
95
|
+
this.stats.skipped++;
|
|
96
|
+
let message = event.message;
|
|
97
|
+
if (event.stage === "download" && event.bytes) {
|
|
98
|
+
const percent = Math.min(100, Math.floor(((event.received ?? 0) / event.bytes) * 100));
|
|
99
|
+
const filled = Math.floor(percent / 10);
|
|
100
|
+
message += ` [${"━".repeat(filled)}${"·".repeat(10 - filled)}] ${percent}% · ${formatSize(event.received ?? 0)} / ${formatSize(event.bytes)}`;
|
|
101
|
+
}
|
|
102
|
+
else if (event.bytes)
|
|
103
|
+
message += ` · ${formatSize(event.bytes)}`;
|
|
104
|
+
this.write(event.stage, message, { ...event, message });
|
|
105
|
+
};
|
|
106
|
+
tick() {
|
|
107
|
+
if (!this.active || Date.now() - this.lastProgress < 10_000)
|
|
108
|
+
return;
|
|
109
|
+
this.write("working", `${this.active.stage}: ${this.active.message} · still running (${formatDuration(Date.now() - this.lastProgress)} since last progress)`);
|
|
110
|
+
}
|
|
111
|
+
result(result, durationMs, watching = false) {
|
|
112
|
+
this.active = undefined;
|
|
113
|
+
const interrupted = result.error === "interrupted";
|
|
114
|
+
if (result.status !== "idle") {
|
|
115
|
+
this.stats[interrupted ? "interrupted" : result.status]++;
|
|
116
|
+
this.stats.media += result.media;
|
|
117
|
+
}
|
|
118
|
+
const detail = result.status === "idle"
|
|
119
|
+
? "No job ready"
|
|
120
|
+
: `${result.media}/${this.totalMedia} media archived · ${formatDuration(durationMs)}${result.error ? ` · ${connectorErrorHint(result.errorStatus ?? result.error)}` : ""}`;
|
|
121
|
+
this.write(interrupted ? "interrupted" : result.status, `${detail}${watching ? " · next poll in 20s" : ""}`, { ...result, durationMs, stats: { ...this.stats } });
|
|
122
|
+
if (result.status !== "idle")
|
|
123
|
+
this.write("session", this.summary(), { stats: { ...this.stats } });
|
|
124
|
+
}
|
|
125
|
+
offline(error) {
|
|
126
|
+
this.active = undefined;
|
|
127
|
+
this.stats.errors++;
|
|
128
|
+
this.write("offline", `${connectorErrorHint(error)} Next poll in 20s.`, {
|
|
129
|
+
status: "offline",
|
|
130
|
+
code: error instanceof ApiClientError ? error.status : "connector_error",
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
summary() {
|
|
134
|
+
const s = this.stats;
|
|
135
|
+
return `${s.complete} complete · ${s.partial} partial · ${s.failed} failed · ${s.interrupted} interrupted · ${s.media} media · ${s.skipped} skipped · ${formatSize(s.bytes)} uploaded · ${s.errors} connection errors · uptime ${formatDuration(Date.now() - this.started)}`;
|
|
136
|
+
}
|
|
137
|
+
stop() {
|
|
138
|
+
this.active = undefined;
|
|
139
|
+
this.write("stopped", this.summary(), {
|
|
140
|
+
stats: { ...this.stats },
|
|
141
|
+
durationMs: Date.now() - this.started,
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
//# sourceMappingURL=log.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log.js","sourceRoot":"","sources":["../../src/connector/log.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { ApiClient } from "../api/client.js";
|
|
2
|
+
import type { ReportProgress } from "./types.js";
|
|
2
3
|
export interface PollResult {
|
|
3
4
|
status: "idle" | "complete" | "partial" | "failed";
|
|
4
5
|
media: number;
|
|
5
6
|
error?: string;
|
|
7
|
+
errorStatus?: number;
|
|
6
8
|
}
|
|
7
9
|
export declare function authenticatedClient(): ApiClient;
|
|
8
|
-
export declare function processOne(client: ApiClient, parent?: AbortSignal): Promise<PollResult>;
|
|
9
|
-
export declare function runOnce(signal?: AbortSignal): Promise<PollResult>;
|
|
10
|
-
export declare function watchConnector(signal: AbortSignal): Promise<void>;
|
|
10
|
+
export declare function processOne(client: ApiClient, parent?: AbortSignal, progress?: ReportProgress): Promise<PollResult>;
|
|
11
|
+
export declare function runOnce(signal?: AbortSignal, progress?: ReportProgress): Promise<PollResult>;
|
|
12
|
+
export declare function watchConnector(signal: AbortSignal, json?: boolean): Promise<void>;
|
|
11
13
|
//# sourceMappingURL=runtime.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/connector/runtime.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAkB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/connector/runtime.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAkB,MAAM,kBAAkB,CAAC;AAM7D,OAAO,KAAK,EAAqC,cAAc,EAAQ,MAAM,YAAY,CAAC;AAE1F,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,CAAC;IACnD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,mBAAmB,IAAI,SAAS,CAI/C;AAED,wBAAsB,UAAU,CAC9B,MAAM,EAAE,SAAS,EACjB,MAAM,CAAC,EAAE,WAAW,EACpB,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC,UAAU,CAAC,CAuGrB;AAiCD,wBAAsB,OAAO,CAC3B,MAAM,CAAC,EAAE,WAAW,EACpB,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC,UAAU,CAAC,CAGrB;AAED,wBAAsB,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CA2BrF"}
|
|
@@ -6,6 +6,7 @@ import { ApiClient, ApiClientError } from "../api/client.js";
|
|
|
6
6
|
import { getApiKey } from "../config.js";
|
|
7
7
|
import { ConnectorError } from "./core.js";
|
|
8
8
|
import { downloadMedia, makePoster } from "./download.js";
|
|
9
|
+
import { ConnectorLogger, connectorErrorHint } from "./log.js";
|
|
9
10
|
import { readPost } from "./opencli.js";
|
|
10
11
|
export function authenticatedClient() {
|
|
11
12
|
const key = getApiKey();
|
|
@@ -13,10 +14,14 @@ export function authenticatedClient() {
|
|
|
13
14
|
throw new ApiClientError(401, "Not authenticated. Run `zhe login` first.");
|
|
14
15
|
return new ApiClient(key);
|
|
15
16
|
}
|
|
16
|
-
export async function processOne(client, parent) {
|
|
17
|
+
export async function processOne(client, parent, progress) {
|
|
17
18
|
const { job } = await client.claimXJob(parent);
|
|
18
19
|
if (!job)
|
|
19
20
|
return { status: "idle", media: 0 };
|
|
21
|
+
progress?.({
|
|
22
|
+
stage: "claim",
|
|
23
|
+
message: `Link #${job.linkId} · X post ${job.postId} · attempt ${job.attempts}`,
|
|
24
|
+
});
|
|
20
25
|
const controller = new AbortController();
|
|
21
26
|
const signal = parent ? AbortSignal.any([parent, controller.signal]) : controller.signal;
|
|
22
27
|
let renewing;
|
|
@@ -36,23 +41,46 @@ export async function processOne(client, parent) {
|
|
|
36
41
|
let incomplete = false;
|
|
37
42
|
try {
|
|
38
43
|
dir = await mkdtemp(join(tmpdir(), "zhe-connector-"));
|
|
44
|
+
progress?.({ stage: "read", message: "Reading the saved post through the local X session" });
|
|
39
45
|
const capture = await readPost(job.postId, signal);
|
|
46
|
+
progress?.({
|
|
47
|
+
stage: "capture",
|
|
48
|
+
message: `Saving ${capture.tweet.text.length} characters · ${capture.media.length} media found`,
|
|
49
|
+
total: capture.media.length,
|
|
50
|
+
});
|
|
40
51
|
await client.connectorAction(job, { action: "capture", capture }, signal);
|
|
41
|
-
for (const media of capture.media) {
|
|
52
|
+
for (const [index, media] of capture.media.entries()) {
|
|
42
53
|
signal.throwIfAborted();
|
|
54
|
+
const reportMedia = (event) => progress?.({
|
|
55
|
+
...event,
|
|
56
|
+
current: index + 1,
|
|
57
|
+
total: capture.media.length,
|
|
58
|
+
message: `${media.type} ${index + 1}/${capture.media.length} · ${event.message}`,
|
|
59
|
+
});
|
|
43
60
|
try {
|
|
44
|
-
|
|
61
|
+
reportMedia({ stage: "download", message: "Connecting to X media" });
|
|
62
|
+
const file = await downloadMedia(media, dir, signal, (phase, received, bytes) => {
|
|
63
|
+
reportMedia({
|
|
64
|
+
stage: phase,
|
|
65
|
+
message: phase === "download" ? "Downloading" : "Verifying format and full decode",
|
|
66
|
+
received,
|
|
67
|
+
bytes,
|
|
68
|
+
});
|
|
69
|
+
});
|
|
45
70
|
const kind = media.type === "PHOTO" ? "photo" : "video";
|
|
46
|
-
if (!(await archive(client, job, media.id, kind, file, signal)))
|
|
71
|
+
if (!(await archive(client, job, media.id, kind, file, signal, reportMedia)))
|
|
47
72
|
continue;
|
|
48
73
|
media.width = file.width;
|
|
49
74
|
media.height = file.height;
|
|
50
75
|
media.duration = file.duration;
|
|
51
76
|
archived++;
|
|
52
77
|
if (kind === "video") {
|
|
78
|
+
reportMedia({ stage: "poster", message: "Generating video poster" });
|
|
53
79
|
const poster = await makePoster(file.path, signal);
|
|
54
80
|
if (poster)
|
|
55
|
-
await archive(client, job, media.id, "poster", poster, signal);
|
|
81
|
+
await archive(client, job, media.id, "poster", poster, signal, reportMedia);
|
|
82
|
+
else
|
|
83
|
+
reportMedia({ stage: "warning", message: "Poster unavailable; video is archived" });
|
|
56
84
|
}
|
|
57
85
|
}
|
|
58
86
|
catch (error) {
|
|
@@ -60,10 +88,15 @@ export async function processOne(client, parent) {
|
|
|
60
88
|
(error instanceof ApiClientError && [401, 403, 409].includes(error.status)))
|
|
61
89
|
throw error;
|
|
62
90
|
incomplete = true;
|
|
91
|
+
reportMedia({ stage: "warning", message: connectorErrorHint(error) });
|
|
63
92
|
}
|
|
64
93
|
}
|
|
65
94
|
signal.throwIfAborted();
|
|
66
95
|
capture.tweet.media = capture.media;
|
|
96
|
+
progress?.({
|
|
97
|
+
stage: "publish",
|
|
98
|
+
message: `Saving the enriched post · ${archived}/${capture.media.length} media archived`,
|
|
99
|
+
});
|
|
67
100
|
await client.connectorAction(job, { action: "capture", capture }, signal);
|
|
68
101
|
await client.connectorAction(job, { action: "complete" }, signal);
|
|
69
102
|
return { status: incomplete ? "partial" : "complete", media: archived };
|
|
@@ -75,7 +108,12 @@ export async function processOne(client, parent) {
|
|
|
75
108
|
? "interrupted"
|
|
76
109
|
: "connector_error";
|
|
77
110
|
await client.connectorAction(job, { action: "fail", code }).catch(() => { });
|
|
78
|
-
return {
|
|
111
|
+
return {
|
|
112
|
+
status: "failed",
|
|
113
|
+
media: archived,
|
|
114
|
+
error: code,
|
|
115
|
+
...(error instanceof ApiClientError ? { errorStatus: error.status } : {}),
|
|
116
|
+
};
|
|
79
117
|
}
|
|
80
118
|
finally {
|
|
81
119
|
clearInterval(heartbeat);
|
|
@@ -85,33 +123,57 @@ export async function processOne(client, parent) {
|
|
|
85
123
|
await rm(dir, { recursive: true, force: true });
|
|
86
124
|
}
|
|
87
125
|
}
|
|
88
|
-
async function archive(client, job, mediaId, kind, file, signal) {
|
|
126
|
+
async function archive(client, job, mediaId, kind, file, signal, progress) {
|
|
127
|
+
progress?.({ stage: "upload", message: `Preparing ${kind} archive` });
|
|
89
128
|
const { asset } = await client.connectorAction(job, {
|
|
90
129
|
action: "reserve",
|
|
91
130
|
media: { mediaId, kind, size: file.size, mime: file.mime, sha256: file.sha256 },
|
|
92
131
|
}, signal);
|
|
93
|
-
if (asset.skipped)
|
|
132
|
+
if (asset.skipped) {
|
|
133
|
+
progress?.({ stage: "skipped", message: `${kind} was explicitly deleted; keeping it deleted` });
|
|
94
134
|
return false;
|
|
95
|
-
|
|
135
|
+
}
|
|
136
|
+
if (!asset.uploaded) {
|
|
137
|
+
progress?.({ stage: "upload", message: `Uploading ${kind} to Zhe`, bytes: file.size });
|
|
96
138
|
await client.uploadXMedia(job, asset, file, signal);
|
|
139
|
+
progress?.({ stage: "uploaded", message: `${kind} upload confirmed`, bytes: file.size });
|
|
140
|
+
}
|
|
141
|
+
else
|
|
142
|
+
progress?.({ stage: "saved", message: `${kind} already archived; reusing the saved file` });
|
|
97
143
|
return true;
|
|
98
144
|
}
|
|
99
|
-
export async function runOnce(signal) {
|
|
145
|
+
export async function runOnce(signal, progress) {
|
|
100
146
|
// Read the shared CLI configuration on each poll, so logout/rotation takes effect.
|
|
101
|
-
return processOne(authenticatedClient(), signal);
|
|
147
|
+
return processOne(authenticatedClient(), signal, progress);
|
|
102
148
|
}
|
|
103
|
-
export async function watchConnector(signal) {
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
149
|
+
export async function watchConnector(signal, json = false) {
|
|
150
|
+
const log = new ConnectorLogger(json);
|
|
151
|
+
const activity = setInterval(() => log.tick(), 10_000);
|
|
152
|
+
log.start();
|
|
153
|
+
try {
|
|
154
|
+
while (!signal.aborted) {
|
|
155
|
+
const started = Date.now();
|
|
156
|
+
try {
|
|
157
|
+
const client = authenticatedClient();
|
|
158
|
+
// Queue statistics are optional; a failed status lookup must not block enrichment.
|
|
159
|
+
const status = await client.connectorStatus(signal).catch(() => undefined);
|
|
160
|
+
if (signal.aborted)
|
|
161
|
+
break;
|
|
162
|
+
if (status)
|
|
163
|
+
log.queue(status);
|
|
164
|
+
log.result(await processOne(client, signal, log.progress), Date.now() - started, !signal.aborted);
|
|
165
|
+
}
|
|
166
|
+
catch (error) {
|
|
167
|
+
if (!signal.aborted)
|
|
168
|
+
log.offline(error);
|
|
169
|
+
}
|
|
170
|
+
if (!signal.aborted)
|
|
171
|
+
await delay(20_000, undefined, { signal }).catch(() => { });
|
|
113
172
|
}
|
|
114
|
-
|
|
173
|
+
}
|
|
174
|
+
finally {
|
|
175
|
+
clearInterval(activity);
|
|
176
|
+
log.stop();
|
|
115
177
|
}
|
|
116
178
|
}
|
|
117
179
|
//# sourceMappingURL=runtime.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/connector/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,IAAI,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/connector/runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,4 +22,21 @@ export interface DownloadedMedia {
|
|
|
22
22
|
height?: number | undefined;
|
|
23
23
|
duration?: number | undefined;
|
|
24
24
|
}
|
|
25
|
+
export interface ConnectorStatus {
|
|
26
|
+
states: {
|
|
27
|
+
state: string;
|
|
28
|
+
count: number;
|
|
29
|
+
}[];
|
|
30
|
+
keyPrefix: string;
|
|
31
|
+
expiresAt: number;
|
|
32
|
+
}
|
|
33
|
+
export interface ConnectorProgress {
|
|
34
|
+
stage: "claim" | "read" | "capture" | "download" | "verify" | "upload" | "uploaded" | "poster" | "saved" | "skipped" | "warning" | "publish";
|
|
35
|
+
message: string;
|
|
36
|
+
current?: number;
|
|
37
|
+
total?: number;
|
|
38
|
+
received?: number;
|
|
39
|
+
bytes?: number;
|
|
40
|
+
}
|
|
41
|
+
export type ReportProgress = (event: ConnectorProgress) => void;
|
|
25
42
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/connector/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,IAAI;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AACD,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,KAAK,CAAC;CACjB;AACD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/connector/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,IAAI;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AACD,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,KAAK,CAAC;CACjB;AACD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EACD,OAAO,GACP,MAAM,GACN,SAAS,GACT,UAAU,GACV,QAAQ,GACR,QAAQ,GACR,UAAU,GACV,QAAQ,GACR,OAAO,GACP,SAAS,GACT,SAAS,GACT,SAAS,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC"}
|