@rackbops/docket-types 0.5.0 → 0.6.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 +34 -2
- package/dist/index.d.ts +13 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +29 -4
- package/dist/index.js.map +1 -1
- package/dist/scout.d.ts +127 -0
- package/dist/scout.d.ts.map +1 -0
- package/dist/scout.js +313 -0
- package/dist/scout.js.map +1 -0
- package/dist/want-bgg.d.ts +40 -0
- package/dist/want-bgg.d.ts.map +1 -0
- package/dist/want-bgg.js +196 -0
- package/dist/want-bgg.js.map +1 -0
- package/dist/want-sources.d.ts +67 -0
- package/dist/want-sources.d.ts.map +1 -0
- package/dist/want-sources.js +196 -0
- package/dist/want-sources.js.map +1 -0
- package/dist/wantjudge.d.ts +111 -0
- package/dist/wantjudge.d.ts.map +1 -0
- package/dist/wantjudge.js +437 -0
- package/dist/wantjudge.js.map +1 -0
- package/dist/wantlist.d.ts +73 -0
- package/dist/wantlist.d.ts.map +1 -0
- package/dist/wantlist.js +185 -0
- package/dist/wantlist.js.map +1 -0
- package/package.json +3 -3
package/dist/wantlist.js
ADDED
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
import { defineTaskType, } from "@rackbops/docket-core";
|
|
2
|
+
import { money } from "./money.js";
|
|
3
|
+
import { MISSES_BEFORE_TELLING } from "./price.js";
|
|
4
|
+
import { BGG_ATTRIBUTION } from "./want-bgg.js";
|
|
5
|
+
import { listingKey, SourceMiss, SourceUnavailableError, } from "./want-sources.js";
|
|
6
|
+
export const MAX_REPORTED = 500;
|
|
7
|
+
export const SHOWN_IN_DM = 5;
|
|
8
|
+
/** New listings taken in one run, DMed and kept as findings; any more wait for the next run. */
|
|
9
|
+
export const MAX_NEW_PER_RUN = 20;
|
|
10
|
+
/** The longest DM text a type here builds; Discord's limit is 2,000. */
|
|
11
|
+
export const MAX_DM_CHARS = 2000;
|
|
12
|
+
/** `text`, cut to `max` with an ellipsis. */
|
|
13
|
+
export function clip(text, max = MAX_DM_CHARS) {
|
|
14
|
+
return text.length <= max ? text : `${text.slice(0, max - 3)}...`;
|
|
15
|
+
}
|
|
16
|
+
/** Text from a shop, with any address in it broken, so Discord neither links nor previews it; only the listing's own link does. */
|
|
17
|
+
export function inert(text) {
|
|
18
|
+
return text
|
|
19
|
+
.replace(/([a-z][a-z0-9+.-]*):\/\//gi, "$1:/\u200b/")
|
|
20
|
+
.replace(/\bwww\./gi, "www\u200b.");
|
|
21
|
+
}
|
|
22
|
+
export function wantState(value) {
|
|
23
|
+
const s = value;
|
|
24
|
+
if (!s || typeof s !== "object")
|
|
25
|
+
return { reported: [], misses: 0, told: 0, warned: false };
|
|
26
|
+
return {
|
|
27
|
+
reported: Array.isArray(s.reported)
|
|
28
|
+
? s.reported.filter((k) => typeof k === "string").slice(-MAX_REPORTED)
|
|
29
|
+
: [],
|
|
30
|
+
misses: typeof s.misses === "number" ? s.misses : 0,
|
|
31
|
+
told: typeof s.told === "number" ? s.told : 0,
|
|
32
|
+
warned: s.warned === true,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
/** Whether a listing is within the owner's limits: an unknown price never passes a top price. */
|
|
36
|
+
export function withinLimits(l, config) {
|
|
37
|
+
if (config.currency && l.currency && l.currency !== config.currency)
|
|
38
|
+
return false;
|
|
39
|
+
if (config.maxPrice === undefined)
|
|
40
|
+
return true;
|
|
41
|
+
return l.price !== undefined && l.price <= config.maxPrice + 1e-9;
|
|
42
|
+
}
|
|
43
|
+
export function priceText(l, config) {
|
|
44
|
+
return l.price === undefined
|
|
45
|
+
? "price not shown"
|
|
46
|
+
: money(l.price, l.currency ?? config.currency ?? "");
|
|
47
|
+
}
|
|
48
|
+
/** One DM line: what, how much, its condition and seller, then the link in <...> (no embed). */
|
|
49
|
+
export function listingLine(l, config) {
|
|
50
|
+
const parts = [
|
|
51
|
+
inert(l.title),
|
|
52
|
+
priceText(l, config),
|
|
53
|
+
...(l.condition ? [inert(l.condition)] : []),
|
|
54
|
+
...(l.seller ? [`sold by ${inert(l.seller)}`] : []),
|
|
55
|
+
];
|
|
56
|
+
const via = config.source === "bgg" ? ` (${BGG_ATTRIBUTION})` : "";
|
|
57
|
+
return `- ${parts.join(" -- ")} <${l.url}>${via}`;
|
|
58
|
+
}
|
|
59
|
+
export function renderWant(title, taskId, fresh, config) {
|
|
60
|
+
const lines = [
|
|
61
|
+
`${title}: ${fresh.length === 1 ? "a new listing" : `${fresh.length} new listings`}.`,
|
|
62
|
+
];
|
|
63
|
+
for (const l of fresh.slice(0, SHOWN_IN_DM))
|
|
64
|
+
lines.push(listingLine(l, config));
|
|
65
|
+
if (fresh.length > SHOWN_IN_DM)
|
|
66
|
+
lines.push(`...and ${fresh.length - SHOWN_IN_DM} more: \`/task history ${taskId}\` lists them all.`);
|
|
67
|
+
lines.push("Press Done once you have it, and I stop looking.");
|
|
68
|
+
return clip(lines.join("\n"));
|
|
69
|
+
}
|
|
70
|
+
export function miss(ctx, state, err) {
|
|
71
|
+
const reason = err instanceof Error ? err.message : String(err);
|
|
72
|
+
const misses = state.misses + 1;
|
|
73
|
+
const tell = !state.warned && (misses >= MISSES_BEFORE_TELLING || err instanceof SourceUnavailableError);
|
|
74
|
+
const outcome = {
|
|
75
|
+
state: { ...state, misses, warned: state.warned || tell },
|
|
76
|
+
summary: `nothing read: ${reason}`,
|
|
77
|
+
};
|
|
78
|
+
if (tell) {
|
|
79
|
+
const where = ctx.config.source === "bgg" ? "BoardGameGeek" : ctx.config.target;
|
|
80
|
+
outcome.notify = {
|
|
81
|
+
text: clip(`${ctx.task.title}: I could read no listings from ${where} ${misses === 1 ? "just now" : `${misses} times in a row`} (${reason}). ` +
|
|
82
|
+
"I keep looking; press Done to stop."),
|
|
83
|
+
actions: ["done"],
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
return outcome;
|
|
87
|
+
}
|
|
88
|
+
/** A finding for one listing: what it is, its price, and `extra` (a verdict); keyed so it is stored once. */
|
|
89
|
+
export function listingFinding(l, config, said, tags = []) {
|
|
90
|
+
return {
|
|
91
|
+
text: clip(`${l.title} -- ${said}${l.condition ? ` -- ${l.condition}` : ""}`, 400),
|
|
92
|
+
source: l.url,
|
|
93
|
+
key: listingKey(l.id),
|
|
94
|
+
tags: ["wantlist", config.source, ...tags],
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
export async function pollWant(ctx, sources, stored) {
|
|
98
|
+
const state = stored ?? wantState(ctx.state);
|
|
99
|
+
const source = sources[ctx.config.source];
|
|
100
|
+
if (!source) {
|
|
101
|
+
return {
|
|
102
|
+
kind: "done",
|
|
103
|
+
outcome: miss(ctx, state, new SourceUnavailableError(`this bot has no ${ctx.config.source === "bgg" ? "BoardGameGeek access" : "such source"}`)),
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
let listings;
|
|
107
|
+
try {
|
|
108
|
+
listings = await source.search(ctx.config.target, ctx.ports.fetch);
|
|
109
|
+
}
|
|
110
|
+
catch (err) {
|
|
111
|
+
if (err instanceof SourceMiss)
|
|
112
|
+
return { kind: "done", outcome: miss(ctx, state, err) };
|
|
113
|
+
throw err;
|
|
114
|
+
}
|
|
115
|
+
const told = new Set(state.reported);
|
|
116
|
+
const within = listings.filter((l) => withinLimits(l, ctx.config));
|
|
117
|
+
const fresh = within.filter((l) => !told.has(listingKey(l.id))).slice(0, MAX_NEW_PER_RUN);
|
|
118
|
+
const summary = `${listings.length} listed, ${within.length} within limits, ${fresh.length} new`;
|
|
119
|
+
const read = { ...state, misses: 0, warned: false };
|
|
120
|
+
if (fresh.length === 0)
|
|
121
|
+
return { kind: "done", outcome: { state: read, summary } };
|
|
122
|
+
return { kind: "fresh", state: read, fresh, summary };
|
|
123
|
+
}
|
|
124
|
+
/** The type over `sources`: a task whose source this bot lacks (BGG without its token) counts misses. */
|
|
125
|
+
export function wantlistType(sources) {
|
|
126
|
+
return defineTaskType({
|
|
127
|
+
id: "wantlist",
|
|
128
|
+
lane: "notify",
|
|
129
|
+
capabilities: ["notify"],
|
|
130
|
+
schedule: ["poll"],
|
|
131
|
+
intake: {
|
|
132
|
+
options: [
|
|
133
|
+
{
|
|
134
|
+
name: "source",
|
|
135
|
+
description: "Where to look: page or bgg",
|
|
136
|
+
required: true,
|
|
137
|
+
kind: "string",
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
name: "target",
|
|
141
|
+
description: "The listing page's address, or the BGG game",
|
|
142
|
+
required: true,
|
|
143
|
+
kind: "string",
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
name: "max",
|
|
147
|
+
description: "Only listings at or under this price",
|
|
148
|
+
required: false,
|
|
149
|
+
kind: "number",
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
name: "currency",
|
|
153
|
+
description: "Only listings in this currency",
|
|
154
|
+
required: false,
|
|
155
|
+
kind: "string",
|
|
156
|
+
},
|
|
157
|
+
],
|
|
158
|
+
},
|
|
159
|
+
async run(ctx) {
|
|
160
|
+
const polled = await pollWant(ctx, sources);
|
|
161
|
+
if (polled.kind === "done")
|
|
162
|
+
return polled.outcome;
|
|
163
|
+
const { state, fresh, summary } = polled;
|
|
164
|
+
return {
|
|
165
|
+
state: {
|
|
166
|
+
...state,
|
|
167
|
+
reported: [...state.reported, ...fresh.map((l) => listingKey(l.id))].slice(-MAX_REPORTED),
|
|
168
|
+
told: state.told + fresh.length,
|
|
169
|
+
},
|
|
170
|
+
notify: {
|
|
171
|
+
text: renderWant(ctx.task.title, ctx.task.id, fresh, ctx.config),
|
|
172
|
+
actions: ["done"],
|
|
173
|
+
},
|
|
174
|
+
findings: fresh.map((l) => listingFinding(l, ctx.config, priceText(l, ctx.config))),
|
|
175
|
+
summary,
|
|
176
|
+
};
|
|
177
|
+
},
|
|
178
|
+
async onReply(ctx) {
|
|
179
|
+
if (ctx.reply.kind === "done")
|
|
180
|
+
return { complete: true, summary: "found it; stopped looking" };
|
|
181
|
+
return {};
|
|
182
|
+
},
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
//# sourceMappingURL=wantlist.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wantlist.js","sourceRoot":"","sources":["../src/wantlist.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rackbops/docket-types",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "The tracker's task types: reminder, renewal, price, research, scout, wantlist. Built on @rackbops/docket-core.",
|
|
3
|
+
"version": "0.6.0",
|
|
4
|
+
"description": "The tracker's task types: reminder, renewal, price, research, scout, wantlist, wantjudge. Built on @rackbops/docket-core.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
],
|
|
30
30
|
"sideEffects": false,
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@rackbops/docket-core": "^0.
|
|
32
|
+
"@rackbops/docket-core": "^0.6.0"
|
|
33
33
|
},
|
|
34
34
|
"scripts": {
|
|
35
35
|
"build": "tsc",
|