e621stream 0.0.3 → 0.0.4
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 +10 -1
- package/dist/E621Stream.d.ts +16 -0
- package/dist/E621Stream.js +34 -0
- package/dist/E621Stream.js.map +1 -1
- package/dist/generated.d.ts +17 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -44,4 +44,13 @@ Listen for an event type with `on("post.create", ...)`, or everything with `on("
|
|
|
44
44
|
|
|
45
45
|
Private events like `dmail.create` have to be subscribed to by name.
|
|
46
46
|
|
|
47
|
-
|
|
47
|
+
`stream.snapshots(resource, ids)` gets what was last seen of up to 100 records at once (see [Snapshots](https://e621.stream/snapshots/)), keyed by id with `null` for ones that aren't known. It throws if you aren't ready yet, and rejects if the connection closes before the reply.
|
|
48
|
+
|
|
49
|
+
```ts
|
|
50
|
+
stream.on("ready", async () => {
|
|
51
|
+
const posts = await stream.snapshots("post", [6843484, 6843485]);
|
|
52
|
+
console.log(posts[6843484]?.tags?.general);
|
|
53
|
+
});
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Records like `LegacyPost`, `Comment` and `ForumTopic` come from [e621-openapi](https://www.npmjs.com/package/e621-openapi)'s types, and are exported here too. Mod action events are typed per action, so checking `event.data.action` narrows `event.data.values`.
|
package/dist/E621Stream.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import Emitter from "./Emitter.ts";
|
|
2
2
|
import { type EventType, type PrivateEventType, type StreamEvent, type Subscription } from "./events.ts";
|
|
3
|
+
import type { SnapshotDataMap } from "./generated.ts";
|
|
3
4
|
export interface Options {
|
|
4
5
|
/** Your e621 username & api key, or a token from https://e621.stream/authorize. */
|
|
5
6
|
auth?: {
|
|
@@ -35,6 +36,9 @@ export interface Ready {
|
|
|
35
36
|
name: string;
|
|
36
37
|
} | null;
|
|
37
38
|
}
|
|
39
|
+
export type SnapshotResource = keyof SnapshotDataMap;
|
|
40
|
+
/** Keyed by id, `null` for ones that aren't known. */
|
|
41
|
+
export type Snapshots<R extends SnapshotResource> = Record<number, SnapshotDataMap[R] | null>;
|
|
38
42
|
export interface ClientEvents {
|
|
39
43
|
close: [{
|
|
40
44
|
code: number;
|
|
@@ -78,6 +82,9 @@ export declare class E621Stream extends Emitter<Listeners> {
|
|
|
78
82
|
private heartbeat;
|
|
79
83
|
private lastError;
|
|
80
84
|
private lastHeartbeatAck;
|
|
85
|
+
private nonce;
|
|
86
|
+
private pendingSnapshots;
|
|
87
|
+
private ready;
|
|
81
88
|
private reconnectTimer;
|
|
82
89
|
private socket;
|
|
83
90
|
cursor: string | null;
|
|
@@ -95,6 +102,15 @@ export declare class E621Stream extends Emitter<Listeners> {
|
|
|
95
102
|
/** Close the connection. */
|
|
96
103
|
close(): void;
|
|
97
104
|
connect(): this;
|
|
105
|
+
/**
|
|
106
|
+
* Get what was last seen of up to 100 records. Only the fields update events are compared on are kept, see https://e621.stream/snapshots/
|
|
107
|
+
* @example
|
|
108
|
+
* ```ts
|
|
109
|
+
* const posts = await stream.snapshots("post", [1, 2, 3]);
|
|
110
|
+
* console.log(posts[1]?.tags);
|
|
111
|
+
* ```
|
|
112
|
+
*/
|
|
113
|
+
snapshots<R extends SnapshotResource>(resource: R, ids: Array<number>): Promise<Snapshots<R>>;
|
|
98
114
|
/** Replace the current subscriptions. */
|
|
99
115
|
subscribe(subscriptions: Array<Subscription>): void;
|
|
100
116
|
}
|
package/dist/E621Stream.js
CHANGED
|
@@ -37,6 +37,9 @@ export class E621Stream extends Emitter {
|
|
|
37
37
|
heartbeat = null;
|
|
38
38
|
lastError = null;
|
|
39
39
|
lastHeartbeatAck = true;
|
|
40
|
+
nonce = 0;
|
|
41
|
+
pendingSnapshots = new Map();
|
|
42
|
+
ready = false;
|
|
40
43
|
reconnectTimer = null;
|
|
41
44
|
socket = null;
|
|
42
45
|
cursor;
|
|
@@ -68,6 +71,7 @@ export class E621Stream extends Emitter {
|
|
|
68
71
|
}
|
|
69
72
|
case "ready": {
|
|
70
73
|
this.attempt = 0;
|
|
74
|
+
this.ready = true;
|
|
71
75
|
this.emit("ready", message.d);
|
|
72
76
|
break;
|
|
73
77
|
}
|
|
@@ -88,6 +92,15 @@ export class E621Stream extends Emitter {
|
|
|
88
92
|
this.emit("subscribed", message.d.subscriptions);
|
|
89
93
|
break;
|
|
90
94
|
}
|
|
95
|
+
case "snapshot": {
|
|
96
|
+
const { nonce, snapshots } = message.d;
|
|
97
|
+
const pending = nonce === null ? undefined : this.pendingSnapshots.get(nonce);
|
|
98
|
+
if (pending) {
|
|
99
|
+
this.pendingSnapshots.delete(nonce);
|
|
100
|
+
pending.resolve(snapshots);
|
|
101
|
+
}
|
|
102
|
+
break;
|
|
103
|
+
}
|
|
91
104
|
case "heartbeat_ack": {
|
|
92
105
|
this.lastHeartbeatAck = true;
|
|
93
106
|
break;
|
|
@@ -102,8 +115,12 @@ export class E621Stream extends Emitter {
|
|
|
102
115
|
onClose(code, reason) {
|
|
103
116
|
this.stopHeartbeat();
|
|
104
117
|
this.socket = null;
|
|
118
|
+
this.ready = false;
|
|
105
119
|
const error = this.lastError;
|
|
106
120
|
this.lastError = null;
|
|
121
|
+
for (const pending of this.pendingSnapshots.values())
|
|
122
|
+
pending.reject(error ?? new StreamError(code, reason || "connection closed"));
|
|
123
|
+
this.pendingSnapshots.clear();
|
|
107
124
|
const reconnecting = !this.closing && this.options.reconnect !== false && !FATAL.has(code);
|
|
108
125
|
if (error)
|
|
109
126
|
this.emit("error", error);
|
|
@@ -196,6 +213,23 @@ export class E621Stream extends Emitter {
|
|
|
196
213
|
});
|
|
197
214
|
return this;
|
|
198
215
|
}
|
|
216
|
+
/**
|
|
217
|
+
* Get what was last seen of up to 100 records. Only the fields update events are compared on are kept, see https://e621.stream/snapshots/
|
|
218
|
+
* @example
|
|
219
|
+
* ```ts
|
|
220
|
+
* const posts = await stream.snapshots("post", [1, 2, 3]);
|
|
221
|
+
* console.log(posts[1]?.tags);
|
|
222
|
+
* ```
|
|
223
|
+
*/
|
|
224
|
+
async snapshots(resource, ids) {
|
|
225
|
+
if (!this.ready)
|
|
226
|
+
throw new Error("not ready");
|
|
227
|
+
const nonce = String(++this.nonce);
|
|
228
|
+
return new Promise((resolve, reject) => {
|
|
229
|
+
this.pendingSnapshots.set(nonce, { resolve: resolve, reject });
|
|
230
|
+
this.send({ op: "snapshot", d: { resource, ids, nonce } });
|
|
231
|
+
});
|
|
232
|
+
}
|
|
199
233
|
/** Replace the current subscriptions. */
|
|
200
234
|
subscribe(subscriptions) {
|
|
201
235
|
this.options.subscriptions = subscriptions;
|
package/dist/E621Stream.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"E621Stream.js","sourceRoot":"","sources":["../lib/E621Stream.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,UAAU,EAA8E,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"E621Stream.js","sourceRoot":"","sources":["../lib/E621Stream.ts"],"names":[],"mappings":"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"}
|
package/dist/generated.d.ts
CHANGED
|
@@ -788,6 +788,7 @@ export interface ModActionValues {
|
|
|
788
788
|
tag_name: string;
|
|
789
789
|
};
|
|
790
790
|
password_reset: {
|
|
791
|
+
credentials_revoked: boolean;
|
|
791
792
|
invalidated: boolean;
|
|
792
793
|
user_id: number;
|
|
793
794
|
};
|
|
@@ -1220,3 +1221,19 @@ export interface EventDataMap {
|
|
|
1220
1221
|
post_set: PostSet;
|
|
1221
1222
|
};
|
|
1222
1223
|
}
|
|
1224
|
+
/** What `snapshot` sends back for each resource. */
|
|
1225
|
+
export interface SnapshotDataMap {
|
|
1226
|
+
post: PostSnapshot;
|
|
1227
|
+
comment: Pick<Comment, "id" | "body" | "is_hidden" | "is_sticky" | "warning_type" | "warning_user_id">;
|
|
1228
|
+
forum_post: Pick<ForumPost, "id" | "body" | "is_hidden" | "warning_type" | "warning_user_id">;
|
|
1229
|
+
forum_topic: Pick<ForumTopic, "id" | "title" | "category_id" | "is_hidden" | "is_locked" | "is_sticky">;
|
|
1230
|
+
tag_alias: Pick<TagAlias, "id" | "status" | "antecedent_name" | "consequent_name" | "reason" | "approver_id" | "forum_topic_id">;
|
|
1231
|
+
tag_implication: Pick<TagImplication, "id" | "status" | "antecedent_name" | "consequent_name" | "reason" | "approver_id" | "forum_topic_id">;
|
|
1232
|
+
bulk_update_request: Pick<BulkUpdateRequest, "id" | "status" | "title" | "script" | "approver_id" | "forum_topic_id">;
|
|
1233
|
+
help_page: Pick<HelpPage, "id" | "name" | "title" | "wiki_page" | "related">;
|
|
1234
|
+
takedown: Pick<Takedown, "id" | "status">;
|
|
1235
|
+
post_flag: Pick<PostFlag, "id" | "is_resolved">;
|
|
1236
|
+
post_set: Pick<PostSet, "id" | "name" | "shortname" | "description" | "is_public" | "transfer_on_delete" | "post_ids">;
|
|
1237
|
+
news_update: Pick<NewsUpdate, "id" | "message">;
|
|
1238
|
+
post_replacement: Pick<PostReplacement, "id" | "status" | "approver_id" | "reason" | "post_id">;
|
|
1239
|
+
}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { E621Stream, StreamError, type ClientEvents, type Options, type Ready } from "./E621Stream.ts";
|
|
1
|
+
export { E621Stream, StreamError, type ClientEvents, type Options, type Ready, type SnapshotResource, type Snapshots } from "./E621Stream.ts";
|
|
2
2
|
export * from "./events.ts";
|
|
3
3
|
export * from "./changes.ts";
|
|
4
4
|
export type * from "./generated.ts";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAsF,MAAM,iBAAiB,CAAC;AAC9I,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAE7B,OAAO,EAAE,OAAO,IAAI,OAAO,EAAiB,MAAM,cAAc,CAAC"}
|