@wrenautomation/birdwatch 0.30.8 → 0.30.10
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 +3 -4
- package/dist/app/engine-cli.d.ts +1 -1
- package/dist/app/engine-cli.js +17 -25
- package/dist/app/engine-cli.js.map +1 -1
- package/dist/engine/agent.d.ts +22 -0
- package/dist/engine/agent.js +15 -0
- package/dist/engine/agent.js.map +1 -1
- package/dist/engine/plans/index.d.ts +1 -1
- package/dist/engine/plans/index.js +7 -6
- package/dist/engine/plans/index.js.map +1 -1
- package/dist/engine/steps.js +3 -0
- package/dist/engine/steps.js.map +1 -1
- package/dist/engine/types.d.ts +21 -0
- package/dist/engine/types.js +12 -0
- package/dist/engine/types.js.map +1 -1
- package/dist/ledger/ledger.d.ts +23 -1
- package/dist/ledger/ledger.js +60 -0
- package/dist/ledger/ledger.js.map +1 -1
- package/dist/ledger/records.d.ts +14 -0
- package/dist/sources/hn.d.ts +45 -0
- package/dist/sources/hn.js +154 -0
- package/dist/sources/hn.js.map +1 -0
- package/dist/sources/index.d.ts +5 -1
- package/dist/sources/index.js +5 -1
- package/dist/sources/index.js.map +1 -1
- package/dist/sources/linkedin.d.ts +32 -0
- package/dist/sources/linkedin.js +82 -0
- package/dist/sources/linkedin.js.map +1 -0
- package/dist/sources/metrics.d.ts +5 -0
- package/dist/sources/metrics.js +9 -0
- package/dist/sources/metrics.js.map +1 -0
- package/dist/sources/sites.js +3 -0
- package/dist/sources/sites.js.map +1 -1
- package/dist/sources/ytdlp.d.ts +1 -0
- package/dist/sources/ytdlp.js +8 -3
- package/dist/sources/ytdlp.js.map +1 -1
- package/package.json +4 -4
package/dist/ledger/ledger.js
CHANGED
|
@@ -102,4 +102,64 @@ export function yieldRows(records, filter = {}) {
|
|
|
102
102
|
kept: t.kept.size,
|
|
103
103
|
}));
|
|
104
104
|
}
|
|
105
|
+
/** Below it an author's median is noise: one post would be its own baseline. */
|
|
106
|
+
export const BASELINE_MIN_N = 5;
|
|
107
|
+
const median = (xs) => {
|
|
108
|
+
const s = [...xs].sort((a, b) => a - b);
|
|
109
|
+
const mid = s.length >> 1;
|
|
110
|
+
return s.length % 2 ? s[mid] : (s[mid - 1] + s[mid]) / 2;
|
|
111
|
+
};
|
|
112
|
+
/**
|
|
113
|
+
* Each author's (channel's) baseline over every run: per count, the median over the latest hit
|
|
114
|
+
* record per URL that carries it, kept only from `minN` posts up. One author's own numbers, so
|
|
115
|
+
* a big account and a small one compare by lift, not by size.
|
|
116
|
+
*/
|
|
117
|
+
export function baselines(records, minN = BASELINE_MIN_N) {
|
|
118
|
+
const latest = new Map();
|
|
119
|
+
for (const h of ofType([...records].sort(byTime), "hit"))
|
|
120
|
+
if (h.channel && h.metrics)
|
|
121
|
+
latest.set(h.key, h);
|
|
122
|
+
const values = new Map();
|
|
123
|
+
for (const h of latest.values()) {
|
|
124
|
+
const channel = h.channel;
|
|
125
|
+
const by = values.get(channel) ?? {};
|
|
126
|
+
for (const [k, v] of Object.entries(h.metrics ?? {})) {
|
|
127
|
+
const list = by[k] ?? [];
|
|
128
|
+
list.push(v);
|
|
129
|
+
by[k] = list;
|
|
130
|
+
}
|
|
131
|
+
values.set(channel, by);
|
|
132
|
+
}
|
|
133
|
+
const out = new Map();
|
|
134
|
+
for (const [channel, by] of values) {
|
|
135
|
+
const base = {};
|
|
136
|
+
for (const [k, xs] of Object.entries(by))
|
|
137
|
+
if (xs.length >= minN)
|
|
138
|
+
base[k] = { median: median(xs), n: xs.length };
|
|
139
|
+
if (Object.keys(base).length)
|
|
140
|
+
out.set(channel, base);
|
|
141
|
+
}
|
|
142
|
+
return out;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* A hit's counts over its author's medians: 54.7 is 54.7 times what the author usually draws.
|
|
146
|
+
* Only counts with a baseline; a zero median leaves the count out (a count over nothing), except
|
|
147
|
+
* zero over zero, which is 1. Undefined when nothing compares.
|
|
148
|
+
*/
|
|
149
|
+
export function liftOf(hit, base) {
|
|
150
|
+
const b = hit.channel ? base.get(hit.channel) : undefined;
|
|
151
|
+
if (!b || !hit.metrics)
|
|
152
|
+
return undefined;
|
|
153
|
+
const out = {};
|
|
154
|
+
for (const [k, v] of Object.entries(hit.metrics)) {
|
|
155
|
+
const m = b[k];
|
|
156
|
+
if (!m)
|
|
157
|
+
continue;
|
|
158
|
+
if (m.median > 0)
|
|
159
|
+
out[k] = Math.round((v / m.median) * 100) / 100;
|
|
160
|
+
else if (v === 0)
|
|
161
|
+
out[k] = 1;
|
|
162
|
+
}
|
|
163
|
+
return Object.keys(out).length ? out : undefined;
|
|
164
|
+
}
|
|
105
165
|
//# sourceMappingURL=ledger.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ledger.js","sourceRoot":"","sources":["../../src/ledger/ledger.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ledger.js","sourceRoot":"","sources":["../../src/ledger/ledger.ts"],"names":[],"mappings":"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"}
|
package/dist/ledger/records.d.ts
CHANGED
|
@@ -149,6 +149,13 @@ export declare const HitRecord: z.ZodObject<{
|
|
|
149
149
|
length: z.ZodOptional<z.ZodNumber>;
|
|
150
150
|
date: z.ZodOptional<z.ZodString>;
|
|
151
151
|
snippet: z.ZodOptional<z.ZodString>;
|
|
152
|
+
metrics: z.ZodOptional<z.ZodObject<{
|
|
153
|
+
views: z.ZodOptional<z.ZodNumber>;
|
|
154
|
+
likes: z.ZodOptional<z.ZodNumber>;
|
|
155
|
+
comments: z.ZodOptional<z.ZodNumber>;
|
|
156
|
+
shares: z.ZodOptional<z.ZodNumber>;
|
|
157
|
+
saves: z.ZodOptional<z.ZodNumber>;
|
|
158
|
+
}, z.core.$strip>>;
|
|
152
159
|
sources: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
153
160
|
odds: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
|
|
154
161
|
key: z.ZodString;
|
|
@@ -876,6 +883,13 @@ export declare const LedgerRecord: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
876
883
|
length: z.ZodOptional<z.ZodNumber>;
|
|
877
884
|
date: z.ZodOptional<z.ZodString>;
|
|
878
885
|
snippet: z.ZodOptional<z.ZodString>;
|
|
886
|
+
metrics: z.ZodOptional<z.ZodObject<{
|
|
887
|
+
views: z.ZodOptional<z.ZodNumber>;
|
|
888
|
+
likes: z.ZodOptional<z.ZodNumber>;
|
|
889
|
+
comments: z.ZodOptional<z.ZodNumber>;
|
|
890
|
+
shares: z.ZodOptional<z.ZodNumber>;
|
|
891
|
+
saves: z.ZodOptional<z.ZodNumber>;
|
|
892
|
+
}, z.core.$strip>>;
|
|
879
893
|
sources: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
880
894
|
odds: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
|
|
881
895
|
key: z.ZodString;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hacker News through Algolia's HN API (hn.algolia.com, free, no key): stories for a query, a
|
|
3
|
+
* user's stories, and a thread read as data (`items/{id}`: the story and every comment nested).
|
|
4
|
+
* Each hit carries the story's points and comment count, so a thread's draw is read for free.
|
|
5
|
+
*/
|
|
6
|
+
import type { Document } from "../document/index.js";
|
|
7
|
+
import type { Source } from "../engine/ports.js";
|
|
8
|
+
import type { HitViewIn } from "../engine/types.js";
|
|
9
|
+
export declare const HN_API = "https://hn.algolia.com/api/v1";
|
|
10
|
+
interface AlgoliaStory {
|
|
11
|
+
objectID: string;
|
|
12
|
+
title?: string | null;
|
|
13
|
+
url?: string | null;
|
|
14
|
+
author?: string | null;
|
|
15
|
+
points?: number | null;
|
|
16
|
+
num_comments?: number | null;
|
|
17
|
+
created_at?: string | null;
|
|
18
|
+
story_text?: string | null;
|
|
19
|
+
}
|
|
20
|
+
interface AlgoliaItem {
|
|
21
|
+
id: number;
|
|
22
|
+
type?: string;
|
|
23
|
+
title?: string | null;
|
|
24
|
+
url?: string | null;
|
|
25
|
+
author?: string | null;
|
|
26
|
+
points?: number | null;
|
|
27
|
+
created_at?: string | null;
|
|
28
|
+
text?: string | null;
|
|
29
|
+
children?: AlgoliaItem[];
|
|
30
|
+
}
|
|
31
|
+
/** HN's comment HTML as text: paragraphs kept, links as their text, entities decoded. */
|
|
32
|
+
export declare function hnText(html: string | null | undefined): string;
|
|
33
|
+
/** The story id of a thread URL (`news.ycombinator.com/item?id=N`). */
|
|
34
|
+
export declare function hnItem(url: string): string | null;
|
|
35
|
+
/** The user of a profile URL (`news.ycombinator.com/user?id=name`). */
|
|
36
|
+
export declare function hnUser(url: string): string | null;
|
|
37
|
+
/** A story as a hit: the thread's page, since the comments are what a read is for. */
|
|
38
|
+
export declare const storyHit: (s: AlgoliaStory) => HitViewIn;
|
|
39
|
+
/** The thread as text: the story, then each comment with its depth marked. */
|
|
40
|
+
export declare function hnThreadDocument(url: string, item: AlgoliaItem): Document;
|
|
41
|
+
export declare function hn(o?: {
|
|
42
|
+
fetchFn?: typeof fetch;
|
|
43
|
+
n?: number;
|
|
44
|
+
}): Source;
|
|
45
|
+
export {};
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hacker News through Algolia's HN API (hn.algolia.com, free, no key): stories for a query, a
|
|
3
|
+
* user's stories, and a thread read as data (`items/{id}`: the story and every comment nested).
|
|
4
|
+
* Each hit carries the story's points and comment count, so a thread's draw is read for free.
|
|
5
|
+
*/
|
|
6
|
+
import { httpError, transport } from "@wrenautomation/models";
|
|
7
|
+
import { metricsOf } from "./metrics.js";
|
|
8
|
+
export const HN_API = "https://hn.algolia.com/api/v1";
|
|
9
|
+
const HN = "https://news.ycombinator.com";
|
|
10
|
+
/** Comments kept of a thread, depth first: enough to read the room. */
|
|
11
|
+
const COMMENTS = 200;
|
|
12
|
+
const ENTITIES = {
|
|
13
|
+
amp: "&",
|
|
14
|
+
lt: "<",
|
|
15
|
+
gt: ">",
|
|
16
|
+
quot: '"',
|
|
17
|
+
apos: "'",
|
|
18
|
+
nbsp: " ",
|
|
19
|
+
};
|
|
20
|
+
/** HN's comment HTML as text: paragraphs kept, links as their text, entities decoded. */
|
|
21
|
+
export function hnText(html) {
|
|
22
|
+
if (!html)
|
|
23
|
+
return "";
|
|
24
|
+
return html
|
|
25
|
+
.replace(/<p>/gi, "\n\n")
|
|
26
|
+
.replace(/<br\s*\/?>/gi, "\n")
|
|
27
|
+
.replace(/<[^>]+>/g, "")
|
|
28
|
+
.replace(/&(#x[0-9a-f]+|#\d+|[a-z]+);/gi, (m, code) => {
|
|
29
|
+
if (code[0] === "#")
|
|
30
|
+
return String.fromCodePoint(code[1]?.toLowerCase() === "x"
|
|
31
|
+
? Number.parseInt(code.slice(2), 16)
|
|
32
|
+
: Number(code.slice(1)));
|
|
33
|
+
return ENTITIES[code.toLowerCase()] ?? m;
|
|
34
|
+
})
|
|
35
|
+
.trim();
|
|
36
|
+
}
|
|
37
|
+
/** The story id of a thread URL (`news.ycombinator.com/item?id=N`). */
|
|
38
|
+
export function hnItem(url) {
|
|
39
|
+
try {
|
|
40
|
+
const u = new URL(url);
|
|
41
|
+
if (u.hostname !== "news.ycombinator.com" || u.pathname !== "/item")
|
|
42
|
+
return null;
|
|
43
|
+
const id = u.searchParams.get("id");
|
|
44
|
+
return id && /^\d+$/.test(id) ? id : null;
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
/** The user of a profile URL (`news.ycombinator.com/user?id=name`). */
|
|
51
|
+
export function hnUser(url) {
|
|
52
|
+
try {
|
|
53
|
+
const u = new URL(url);
|
|
54
|
+
if (u.hostname !== "news.ycombinator.com" || u.pathname !== "/user")
|
|
55
|
+
return null;
|
|
56
|
+
const id = u.searchParams.get("id");
|
|
57
|
+
return id && /^[\w-]{2,15}$/.test(id) ? id : null;
|
|
58
|
+
}
|
|
59
|
+
catch {
|
|
60
|
+
return null;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/** A story as a hit: the thread's page, since the comments are what a read is for. */
|
|
64
|
+
export const storyHit = (s) => {
|
|
65
|
+
const text = hnText(s.story_text);
|
|
66
|
+
const snippet = text ? text.slice(0, 300) : s.url ? `Link: ${s.url}` : "";
|
|
67
|
+
return {
|
|
68
|
+
url: `${HN}/item?id=${s.objectID}`,
|
|
69
|
+
...(s.title ? { title: s.title } : {}),
|
|
70
|
+
...(s.author ? { channel: `hn/${s.author}` } : {}),
|
|
71
|
+
...(s.created_at ? { date: s.created_at.slice(0, 10) } : {}),
|
|
72
|
+
...(snippet ? { snippet } : {}),
|
|
73
|
+
...metricsOf({ likes: s.points, comments: s.num_comments }),
|
|
74
|
+
};
|
|
75
|
+
};
|
|
76
|
+
/** The thread as text: the story, then each comment with its depth marked. */
|
|
77
|
+
export function hnThreadDocument(url, item) {
|
|
78
|
+
const lines = [];
|
|
79
|
+
const walk = (c, depth) => {
|
|
80
|
+
if (lines.length >= COMMENTS)
|
|
81
|
+
return;
|
|
82
|
+
const text = hnText(c.text);
|
|
83
|
+
if (text)
|
|
84
|
+
lines.push(`${">".repeat(depth)}${depth ? " " : ""}${c.author ?? "[deleted]"}: ${text}`);
|
|
85
|
+
for (const k of c.children ?? [])
|
|
86
|
+
walk(k, depth + 1);
|
|
87
|
+
};
|
|
88
|
+
for (const k of item.children ?? [])
|
|
89
|
+
walk(k, 0);
|
|
90
|
+
const head = [
|
|
91
|
+
item.author ? `by ${item.author}` : "",
|
|
92
|
+
typeof item.points === "number" ? `${item.points} points` : "",
|
|
93
|
+
lines.length ? `${lines.length} comments` : "",
|
|
94
|
+
]
|
|
95
|
+
.filter(Boolean)
|
|
96
|
+
.join(" · ");
|
|
97
|
+
const body = hnText(item.text) || (item.url ? `Link: ${item.url}` : "");
|
|
98
|
+
const text = [
|
|
99
|
+
item.title ?? "",
|
|
100
|
+
head,
|
|
101
|
+
body,
|
|
102
|
+
lines.length ? `Comments:\n\n${lines.join("\n\n")}` : "",
|
|
103
|
+
]
|
|
104
|
+
.filter(Boolean)
|
|
105
|
+
.join("\n\n");
|
|
106
|
+
return {
|
|
107
|
+
url,
|
|
108
|
+
media: "text",
|
|
109
|
+
...(item.title ? { title: item.title } : {}),
|
|
110
|
+
text,
|
|
111
|
+
...(item.author ? { channel: `hn/${item.author}` } : {}),
|
|
112
|
+
...(item.created_at ? { date: item.created_at.slice(0, 10) } : {}),
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
export function hn(o = {}) {
|
|
116
|
+
const fetchFn = o.fetchFn ?? fetch;
|
|
117
|
+
const get = async (path) => {
|
|
118
|
+
const res = await fetchFn(`${HN_API}/${path}`, {
|
|
119
|
+
headers: { accept: "application/json" },
|
|
120
|
+
signal: AbortSignal.timeout(30_000),
|
|
121
|
+
}).catch((err) => {
|
|
122
|
+
throw transport("hn", err);
|
|
123
|
+
});
|
|
124
|
+
if (!res.ok)
|
|
125
|
+
throw httpError("hn", res);
|
|
126
|
+
return (await res.json());
|
|
127
|
+
};
|
|
128
|
+
const stories = async (path) => ((await get(path)).hits ?? [])
|
|
129
|
+
.filter((s) => typeof s.objectID === "string")
|
|
130
|
+
.map(storyHit);
|
|
131
|
+
return {
|
|
132
|
+
name: "hn",
|
|
133
|
+
kind: "both",
|
|
134
|
+
cost: "free",
|
|
135
|
+
first: true,
|
|
136
|
+
keeps: (site) => /(^|\.)ycombinator\.com$/i.test(site),
|
|
137
|
+
search: (q) => stories(`search?query=${encodeURIComponent(q.terms)}&tags=story&hitsPerPage=${o.n ?? 20}`),
|
|
138
|
+
follows: (as, url) => as === "posts" && hnUser(url) !== null,
|
|
139
|
+
follow(_as, url, n) {
|
|
140
|
+
const user = hnUser(url);
|
|
141
|
+
if (!user)
|
|
142
|
+
throw new Error(`hn: not a user's page: ${url}`);
|
|
143
|
+
return stories(`search_by_date?tags=story,author_${user}&hitsPerPage=${Math.min(n, 100)}`);
|
|
144
|
+
},
|
|
145
|
+
opens: (url) => hnItem(url) !== null,
|
|
146
|
+
async open(h) {
|
|
147
|
+
const id = hnItem(h.url);
|
|
148
|
+
if (!id)
|
|
149
|
+
throw new Error(`hn: not a thread: ${h.url}`);
|
|
150
|
+
return hnThreadDocument(h.url, await get(`items/${id}`));
|
|
151
|
+
},
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=hn.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hn.js","sourceRoot":"","sources":["../../src/sources/hn.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAI9D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,MAAM,CAAC,MAAM,MAAM,GAAG,+BAA+B,CAAC;AACtD,MAAM,EAAE,GAAG,8BAA8B,CAAC;AAC1C,uEAAuE;AACvE,MAAM,QAAQ,GAAG,GAAG,CAAC;AAyBrB,MAAM,QAAQ,GAA2B;IACvC,GAAG,EAAE,GAAG;IACR,EAAE,EAAE,GAAG;IACP,EAAE,EAAE,GAAG;IACP,IAAI,EAAE,GAAG;IACT,IAAI,EAAE,GAAG;IACT,IAAI,EAAE,GAAG;CACV,CAAC;AAEF,yFAAyF;AACzF,MAAM,UAAU,MAAM,CAAC,IAA+B;IACpD,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,OAAO,IAAI;SACR,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC;SACxB,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC;SAC7B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;SACvB,OAAO,CAAC,+BAA+B,EAAE,CAAC,CAAC,EAAE,IAAY,EAAE,EAAE;QAC5D,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG;YACjB,OAAO,MAAM,CAAC,aAAa,CACzB,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,GAAG;gBAC5B,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;gBACpC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAC1B,CAAC;QACJ,OAAO,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC,CAAC;SACD,IAAI,EAAE,CAAC;AACZ,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,MAAM,CAAC,GAAW;IAChC,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,CAAC,QAAQ,KAAK,sBAAsB,IAAI,CAAC,CAAC,QAAQ,KAAK,OAAO;YAAE,OAAO,IAAI,CAAC;QACjF,MAAM,EAAE,GAAG,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpC,OAAO,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,MAAM,CAAC,GAAW;IAChC,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,CAAC,QAAQ,KAAK,sBAAsB,IAAI,CAAC,CAAC,QAAQ,KAAK,OAAO;YAAE,OAAO,IAAI,CAAC;QACjF,MAAM,EAAE,GAAG,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpC,OAAO,EAAE,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACpD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,sFAAsF;AACtF,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAe,EAAa,EAAE;IACrD,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IAClC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1E,OAAO;QACL,GAAG,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC,QAAQ,EAAE;QAClC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClD,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5D,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/B,GAAG,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC;KAC5D,CAAC;AACJ,CAAC,CAAC;AAEF,8EAA8E;AAC9E,MAAM,UAAU,gBAAgB,CAAC,GAAW,EAAE,IAAiB;IAC7D,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,IAAI,GAAG,CAAC,CAAc,EAAE,KAAa,EAAE,EAAE;QAC7C,IAAI,KAAK,CAAC,MAAM,IAAI,QAAQ;YAAE,OAAO;QACrC,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,IAAI;YACN,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,MAAM,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC,CAAC;QAC3F,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,IAAI,EAAE;YAAE,IAAI,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;IACvD,CAAC,CAAC;IACF,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,IAAI,EAAE;QAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAChD,MAAM,IAAI,GAAG;QACX,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE;QACtC,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,SAAS,CAAC,CAAC,CAAC,EAAE;QAC9D,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,WAAW,CAAC,CAAC,CAAC,EAAE;KAC/C;SACE,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,KAAK,CAAC,CAAC;IACf,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACxE,MAAM,IAAI,GAAG;QACX,IAAI,CAAC,KAAK,IAAI,EAAE;QAChB,IAAI;QACJ,IAAI;QACJ,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,gBAAgB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;KACzD;SACE,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,MAAM,CAAC,CAAC;IAChB,OAAO;QACL,GAAG;QACH,KAAK,EAAE,MAAM;QACb,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5C,IAAI;QACJ,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxD,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACnE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,EAAE,CAAC,IAA4C,EAAE;IAC/D,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,IAAI,KAAK,CAAC;IACnC,MAAM,GAAG,GAAG,KAAK,EAAK,IAAY,EAAc,EAAE;QAChD,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,GAAG,MAAM,IAAI,IAAI,EAAE,EAAE;YAC7C,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE;YACvC,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;SACpC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACf,MAAM,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACxC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAM,CAAC;IACjC,CAAC,CAAC;IACF,MAAM,OAAO,GAAG,KAAK,EAAE,IAAY,EAAE,EAAE,CACrC,CAAC,CAAC,MAAM,GAAG,CAA4B,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;SACtD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC;SAC7C,GAAG,CAAC,QAAQ,CAAC,CAAC;IACnB,OAAO;QACL,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,IAAI;QACX,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC;QACtD,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CACZ,OAAO,CAAC,gBAAgB,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QAC5F,OAAO,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,KAAK,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI;QAC5D,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;YAChB,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YACzB,IAAI,CAAC,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,GAAG,EAAE,CAAC,CAAC;YAC5D,OAAO,OAAO,CAAC,oCAAoC,IAAI,gBAAgB,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QAC7F,CAAC;QACD,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI;QACpC,KAAK,CAAC,IAAI,CAAC,CAAC;YACV,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACzB,IAAI,CAAC,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;YACvD,OAAO,gBAAgB,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,CAAc,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;QACxE,CAAC;KACF,CAAC;AACJ,CAAC"}
|
package/dist/sources/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The sources: one file each, registered by name. `searxng`, `exa` and `perplexity` search the web, `
|
|
2
|
+
* The sources: one file each, registered by name. `searxng`, `exa` and `perplexity` search the web, `hn`
|
|
3
|
+
* searches and reads Hacker News, `linkedin` searches posts through the desk, `arxiv`
|
|
3
4
|
* searches and reads papers, `youtube`
|
|
4
5
|
* searches and reads videos, `fetcher` and `ladder` open pages, `reddit` and `facebook` read a
|
|
5
6
|
* thread or a group post through the site's own route, `paste` is a person's list,
|
|
@@ -9,8 +10,11 @@ export * from "./arxiv.js";
|
|
|
9
10
|
export * from "./exa.js";
|
|
10
11
|
export * from "./fetcher.js";
|
|
11
12
|
export * from "./google.js";
|
|
13
|
+
export * from "./hn.js";
|
|
12
14
|
export * from "./ladder.js";
|
|
13
15
|
export * from "./ledger.js";
|
|
16
|
+
export * from "./linkedin.js";
|
|
17
|
+
export * from "./metrics.js";
|
|
14
18
|
export * from "./paste.js";
|
|
15
19
|
export * from "./perplexity.js";
|
|
16
20
|
export * from "./searxng.js";
|
package/dist/sources/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The sources: one file each, registered by name. `searxng`, `exa` and `perplexity` search the web, `
|
|
2
|
+
* The sources: one file each, registered by name. `searxng`, `exa` and `perplexity` search the web, `hn`
|
|
3
|
+
* searches and reads Hacker News, `linkedin` searches posts through the desk, `arxiv`
|
|
3
4
|
* searches and reads papers, `youtube`
|
|
4
5
|
* searches and reads videos, `fetcher` and `ladder` open pages, `reddit` and `facebook` read a
|
|
5
6
|
* thread or a group post through the site's own route, `paste` is a person's list,
|
|
@@ -9,8 +10,11 @@ export * from "./arxiv.js";
|
|
|
9
10
|
export * from "./exa.js";
|
|
10
11
|
export * from "./fetcher.js";
|
|
11
12
|
export * from "./google.js";
|
|
13
|
+
export * from "./hn.js";
|
|
12
14
|
export * from "./ladder.js";
|
|
13
15
|
export * from "./ledger.js";
|
|
16
|
+
export * from "./linkedin.js";
|
|
17
|
+
export * from "./metrics.js";
|
|
14
18
|
export * from "./paste.js";
|
|
15
19
|
export * from "./perplexity.js";
|
|
16
20
|
export * from "./searxng.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sources/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sources/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LinkedIn through the desk's `linkedin` site routes, as the account the person names
|
|
3
|
+
* (`BIRDWATCH_ACCOUNTS=linkedin=linkedin@wren`): never a default, since the bare `linkedin`
|
|
4
|
+
* account is a person's own profile. Search is the posts page for a keyword (a daily cap, so only
|
|
5
|
+
* a query pinned to linkedin.com); a follow lists a member's or a company's own posts. Each hit
|
|
6
|
+
* carries the post's reactions and comment count, so an author's baseline comes for free.
|
|
7
|
+
*/
|
|
8
|
+
import type { LadderClient } from "@wrenautomation/read/fetch";
|
|
9
|
+
import type { Source } from "../engine/ports.js";
|
|
10
|
+
import type { HitViewIn } from "../engine/types.js";
|
|
11
|
+
/** A profile or Page URL: `in/<vanity>` or `company/<handle>`, the hit's channel. */
|
|
12
|
+
export declare function linkedinPage(url: string): {
|
|
13
|
+
kind: "in" | "company";
|
|
14
|
+
id: string;
|
|
15
|
+
} | null;
|
|
16
|
+
interface Post {
|
|
17
|
+
text?: string;
|
|
18
|
+
author?: string;
|
|
19
|
+
authorUrl?: string | null;
|
|
20
|
+
at?: string;
|
|
21
|
+
reactions?: number;
|
|
22
|
+
comments?: number;
|
|
23
|
+
url?: string;
|
|
24
|
+
kind?: string;
|
|
25
|
+
}
|
|
26
|
+
/** One post of a route's answer as a hit; `channel` names the author when the post does not. */
|
|
27
|
+
export declare const postHit: (p: Post, channel?: string) => HitViewIn | null;
|
|
28
|
+
export declare function linkedinSource(o: {
|
|
29
|
+
sites: LadderClient;
|
|
30
|
+
account: string;
|
|
31
|
+
}): Source;
|
|
32
|
+
export {};
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LinkedIn through the desk's `linkedin` site routes, as the account the person names
|
|
3
|
+
* (`BIRDWATCH_ACCOUNTS=linkedin=linkedin@wren`): never a default, since the bare `linkedin`
|
|
4
|
+
* account is a person's own profile. Search is the posts page for a keyword (a daily cap, so only
|
|
5
|
+
* a query pinned to linkedin.com); a follow lists a member's or a company's own posts. Each hit
|
|
6
|
+
* carries the post's reactions and comment count, so an author's baseline comes for free.
|
|
7
|
+
*/
|
|
8
|
+
import { metricsOf } from "./metrics.js";
|
|
9
|
+
import { routeCall } from "./sites.js";
|
|
10
|
+
/** Posts per search page: the route's most. */
|
|
11
|
+
const SEARCH_MAX = 50;
|
|
12
|
+
/** The widest window the search route offers. */
|
|
13
|
+
const SINCE = "past-month";
|
|
14
|
+
/** A profile or Page URL: `in/<vanity>` or `company/<handle>`, the hit's channel. */
|
|
15
|
+
export function linkedinPage(url) {
|
|
16
|
+
try {
|
|
17
|
+
const u = new URL(url);
|
|
18
|
+
if (!/(^|\.)linkedin\.com$/i.test(u.hostname))
|
|
19
|
+
return null;
|
|
20
|
+
const m = /^\/(in|company)\/([^/?#]+)\/?/.exec(u.pathname);
|
|
21
|
+
return m?.[1] && m[2]
|
|
22
|
+
? { kind: m[1], id: decodeURIComponent(m[2]).toLowerCase() }
|
|
23
|
+
: null;
|
|
24
|
+
}
|
|
25
|
+
catch {
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
const channelOf = (page, author) => page ? `${page.kind}/${page.id}` : author;
|
|
30
|
+
const isObj = (v) => typeof v === "object" && v !== null && !Array.isArray(v);
|
|
31
|
+
/** One post of a route's answer as a hit; `channel` names the author when the post does not. */
|
|
32
|
+
export const postHit = (p, channel) => {
|
|
33
|
+
if (!p.url)
|
|
34
|
+
return null;
|
|
35
|
+
const text = (p.text ?? "").trim();
|
|
36
|
+
const by = channel ?? channelOf(p.authorUrl ? linkedinPage(p.authorUrl) : null, p.author);
|
|
37
|
+
return {
|
|
38
|
+
url: p.url,
|
|
39
|
+
...(by ? { channel: by } : {}),
|
|
40
|
+
...(p.at ? { date: p.at.slice(0, 10) } : {}),
|
|
41
|
+
...(text ? { snippet: text.slice(0, 300) } : {}),
|
|
42
|
+
...metricsOf({ likes: p.reactions, comments: p.comments }),
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
const hitsOf = (body, key, channel) => {
|
|
46
|
+
const list = isObj(body) && Array.isArray(body[key]) ? body[key] : [];
|
|
47
|
+
return list
|
|
48
|
+
.filter((p) => key !== "activity" || p.kind === "post") // own posts only: a repost is another's draw
|
|
49
|
+
.map((p) => postHit(p, channel))
|
|
50
|
+
.filter((h) => h !== null);
|
|
51
|
+
};
|
|
52
|
+
export function linkedinSource(o) {
|
|
53
|
+
const who = `linkedin as ${o.account}`;
|
|
54
|
+
return {
|
|
55
|
+
name: "linkedin",
|
|
56
|
+
kind: "search",
|
|
57
|
+
cost: "browser",
|
|
58
|
+
keeps: (site) => /(^|\.)linkedin\.com$/i.test(site),
|
|
59
|
+
pinnedOnly: true,
|
|
60
|
+
async search(q) {
|
|
61
|
+
const input = { keywords: q.terms, max: SEARCH_MAX, since: SINCE };
|
|
62
|
+
const body = await routeCall(o.sites, who, "linkedin", "/search/results/content", input, o.account);
|
|
63
|
+
return hitsOf(body, "posts");
|
|
64
|
+
},
|
|
65
|
+
follows: (as, url) => as === "posts" && linkedinPage(url) !== null,
|
|
66
|
+
async follow(_as, url, n) {
|
|
67
|
+
const page = linkedinPage(url);
|
|
68
|
+
if (!page)
|
|
69
|
+
throw new Error(`linkedin: not a profile or Page: ${url}`);
|
|
70
|
+
const channel = channelOf(page);
|
|
71
|
+
if (page.kind === "company") {
|
|
72
|
+
const input = { company: page.id, max: Math.min(n, SEARCH_MAX) };
|
|
73
|
+
const body = await routeCall(o.sites, who, "linkedin", `/company/${page.id}/posts`, input, o.account);
|
|
74
|
+
return hitsOf(body, "posts", channel);
|
|
75
|
+
}
|
|
76
|
+
const input = { vanity: page.id, max: Math.min(n, 100) };
|
|
77
|
+
const body = await routeCall(o.sites, who, "linkedin", `/in/${page.id}/activity`, input, o.account);
|
|
78
|
+
return hitsOf(body, "activity", channel);
|
|
79
|
+
},
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=linkedin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"linkedin.js","sourceRoot":"","sources":["../../src/sources/linkedin.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { MetricKey, Metrics } from "../engine/types.js";
|
|
2
|
+
/** `{ metrics }` from the counts given, whole and present; nothing when none is. */
|
|
3
|
+
export declare const metricsOf: (counts: Partial<Record<MetricKey, number | null | undefined>>) => {
|
|
4
|
+
metrics?: Metrics;
|
|
5
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** `{ metrics }` from the counts given, whole and present; nothing when none is. */
|
|
2
|
+
export const metricsOf = (counts) => {
|
|
3
|
+
const metrics = {};
|
|
4
|
+
for (const [k, v] of Object.entries(counts))
|
|
5
|
+
if (typeof v === "number" && Number.isFinite(v) && v >= 0)
|
|
6
|
+
metrics[k] = Math.round(v);
|
|
7
|
+
return Object.keys(metrics).length ? { metrics } : {};
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=metrics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../src/sources/metrics.ts"],"names":[],"mappings":"AAEA,oFAAoF;AACpF,MAAM,CAAC,MAAM,SAAS,GAAG,CACvB,MAA6D,EACtC,EAAE;IACzB,MAAM,OAAO,GAAY,EAAE,CAAC;IAC5B,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAA6C;QACrF,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACxF,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACxD,CAAC,CAAC"}
|
package/dist/sources/sites.js
CHANGED
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
import { Transient } from "@wrenautomation/models";
|
|
20
20
|
import { junkReason } from "./junk.js";
|
|
21
21
|
import { LadderCallError } from "./ladder.js";
|
|
22
|
+
import { metricsOf } from "./metrics.js";
|
|
22
23
|
/** `reddit=reddit@alt,linkedin=linkedin@wren`: the account each site reader signs in as. */
|
|
23
24
|
export function accountsFrom(spec) {
|
|
24
25
|
const out = new Map();
|
|
@@ -82,6 +83,7 @@ export function userHits(body) {
|
|
|
82
83
|
...(str(t.subreddit) ? { channel: `r/${str(t.subreddit)}` } : {}),
|
|
83
84
|
...(created ? { date: new Date(created * 1000).toISOString().slice(0, 10) } : {}),
|
|
84
85
|
...(words ? { snippet: words.slice(0, 300) } : {}),
|
|
86
|
+
...metricsOf({ likes: num(t.score), comments: num(t.num_comments) }),
|
|
85
87
|
},
|
|
86
88
|
];
|
|
87
89
|
});
|
|
@@ -101,6 +103,7 @@ export function facebookPost(url) {
|
|
|
101
103
|
}
|
|
102
104
|
const isObj = (v) => typeof v === "object" && v !== null && !Array.isArray(v);
|
|
103
105
|
const str = (v) => (typeof v === "string" ? v : "");
|
|
106
|
+
const num = (v) => (typeof v === "number" ? v : undefined);
|
|
104
107
|
const things = (listing) => {
|
|
105
108
|
const data = isObj(listing) && isObj(listing.data) ? listing.data : {};
|
|
106
109
|
const children = Array.isArray(data.children) ? data.children : [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sites.js","sourceRoot":"","sources":["../../src/sources/sites.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sites.js","sourceRoot":"","sources":["../../src/sources/sites.ts"],"names":[],"mappings":"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"}
|
package/dist/sources/ytdlp.d.ts
CHANGED
|
@@ -16,6 +16,7 @@ export declare function pricedOf(m: Model): {
|
|
|
16
16
|
export declare const videoDocument: (r: VideoRead) => Document;
|
|
17
17
|
/** One listed entry as a hit; `youtube` builds the watch URL from the id, other sites keep theirs. */
|
|
18
18
|
export declare const entryHit: (e: YtDlpEntry, site?: "youtube" | "other") => {
|
|
19
|
+
metrics?: import("../engine/types.js").Metrics;
|
|
19
20
|
snippet?: string;
|
|
20
21
|
date?: string;
|
|
21
22
|
length?: number;
|