convert bluesky scraper to docker
This commit is contained in:
parent
28470e0eba
commit
5788151840
4 changed files with 35 additions and 40 deletions
16
build.mjs
16
build.mjs
|
|
@ -1,9 +1,19 @@
|
|||
import * as esbuild from "esbuild";
|
||||
|
||||
await esbuild.build({
|
||||
entryPoints: ["src/nostr.ts"],
|
||||
const commonProps = {
|
||||
bundle: true,
|
||||
outfile: "dist/nostr.js",
|
||||
platform: "node",
|
||||
target: "node22",
|
||||
};
|
||||
|
||||
await esbuild.build({
|
||||
...commonProps,
|
||||
entryPoints: ["src/nostr.ts"],
|
||||
outfile: "dist/nostr.js",
|
||||
});
|
||||
|
||||
await esbuild.build({
|
||||
...commonProps,
|
||||
entryPoints: ["src/bluesky.ts"],
|
||||
outfile: "dist/bluesky.js",
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "micro_blog_fetchers",
|
||||
"version": "1.0.0",
|
||||
"version": "1.1.0",
|
||||
"scripts": {
|
||||
"dev:nostr": "node build.mjs && node ./dist/nostr.js | pino-pretty"
|
||||
},
|
||||
|
|
@ -12,7 +12,6 @@
|
|||
},
|
||||
"dependencies": {
|
||||
"pino": "^9.2.0",
|
||||
"pino-lambda": "^4.4.0",
|
||||
"pino-pretty": "^13.0.0",
|
||||
"pocketbase": "^0.21.3",
|
||||
"ws": "^8.18.0"
|
||||
|
|
|
|||
|
|
@ -1,11 +1,8 @@
|
|||
import pino from "pino";
|
||||
import { lambdaRequestTracker, pinoLambdaDestination } from "pino-lambda";
|
||||
import { MicroBlogBackend } from "./pocketbase";
|
||||
|
||||
// logger
|
||||
const destination = pinoLambdaDestination();
|
||||
const logger = pino({}, destination);
|
||||
const withRequest = lambdaRequestTracker();
|
||||
const logger = pino();
|
||||
|
||||
// pocketbase
|
||||
const pb = new MicroBlogBackend(logger);
|
||||
|
|
@ -59,7 +56,7 @@ const getPostsUntilID = async (
|
|||
session: Session,
|
||||
id: string,
|
||||
cursor: string | null = null,
|
||||
oldFeed: BlueSkyPost[] = []
|
||||
oldFeed: BlueSkyPost[] = [],
|
||||
): Promise<BlueSkyPost[]> => {
|
||||
const params = new URLSearchParams();
|
||||
params.append("actor", session.did);
|
||||
|
|
@ -69,7 +66,7 @@ const getPostsUntilID = async (
|
|||
}
|
||||
|
||||
const urlWithParams = new URL(
|
||||
"https://bsky.social/xrpc/app.bsky.feed.getAuthorFeed"
|
||||
"https://bsky.social/xrpc/app.bsky.feed.getAuthorFeed",
|
||||
);
|
||||
urlWithParams.search = params.toString();
|
||||
|
||||
|
|
@ -136,13 +133,12 @@ const saveImages = async (post: BlueSkyPost, postId: string) => {
|
|||
for (const image of images) {
|
||||
await pb.saveAndSetImage(
|
||||
{ remoteURL: image.fullsize, alt: image.alt },
|
||||
postId
|
||||
postId,
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
exports.run = async (event: any, context: any) => {
|
||||
withRequest(event, context);
|
||||
(async () => {
|
||||
const session = await createSession();
|
||||
const lastSavedPostId = await pb.getLatestPostRemoteIDBySource("blue_sky");
|
||||
const posts = await getPostsUntilID(session, lastSavedPostId ?? "");
|
||||
|
|
@ -156,4 +152,4 @@ exports.run = async (event: any, context: any) => {
|
|||
await saveTags(post, savedNewPost.id);
|
||||
await saveImages(post, savedNewPost.id);
|
||||
}
|
||||
};
|
||||
})();
|
||||
|
|
|
|||
40
yarn.lock
40
yarn.lock
|
|
@ -358,6 +358,21 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"micro_blog_fetchers@workspace:.":
|
||||
version: 0.0.0-use.local
|
||||
resolution: "micro_blog_fetchers@workspace:."
|
||||
dependencies:
|
||||
"@types/node": "npm:^20.14.8"
|
||||
"@types/ws": "npm:^8"
|
||||
esbuild: "npm:^0.25.4"
|
||||
pino: "npm:^9.2.0"
|
||||
pino-pretty: "npm:^13.0.0"
|
||||
pocketbase: "npm:^0.21.3"
|
||||
prettier: "npm:^3.3.2"
|
||||
ws: "npm:^8.18.0"
|
||||
languageName: unknown
|
||||
linkType: soft
|
||||
|
||||
"minimist@npm:^1.2.6":
|
||||
version: 1.2.8
|
||||
resolution: "minimist@npm:1.2.8"
|
||||
|
|
@ -390,15 +405,6 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"pino-lambda@npm:^4.4.0":
|
||||
version: 4.4.1
|
||||
resolution: "pino-lambda@npm:4.4.1"
|
||||
peerDependencies:
|
||||
pino: ">=6.0.0"
|
||||
checksum: 10c0/6835b1f51bd022f5196f79c90adfb84128689da5aa490ff13722630f7c681d73fc1ccb72df8b5ccf0569f6ae16fd0fdadb114aff423e21df834fc21f38ba6e84
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"pino-pretty@npm:^13.0.0":
|
||||
version: 13.0.0
|
||||
resolution: "pino-pretty@npm:13.0.0"
|
||||
|
|
@ -497,22 +503,6 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"root-workspace-0b6124@workspace:.":
|
||||
version: 0.0.0-use.local
|
||||
resolution: "root-workspace-0b6124@workspace:."
|
||||
dependencies:
|
||||
"@types/node": "npm:^20.14.8"
|
||||
"@types/ws": "npm:^8"
|
||||
esbuild: "npm:^0.25.4"
|
||||
pino: "npm:^9.2.0"
|
||||
pino-lambda: "npm:^4.4.0"
|
||||
pino-pretty: "npm:^13.0.0"
|
||||
pocketbase: "npm:^0.21.3"
|
||||
prettier: "npm:^3.3.2"
|
||||
ws: "npm:^8.18.0"
|
||||
languageName: unknown
|
||||
linkType: soft
|
||||
|
||||
"safe-stable-stringify@npm:^2.3.1":
|
||||
version: 2.5.0
|
||||
resolution: "safe-stable-stringify@npm:2.5.0"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue