Pronouns labels on Bluesky
1import { AppBskyFeedLike } from "@atproto/api"; 2import { Firehose } from "@skyware/firehose"; 3import { getAgent } from "./agent.js"; 4import { label } from "./label.js"; 5import { DID } from "./constants.js"; 6 7const subscribe = async () => { 8 const agent = await getAgent(); 9 10 // add firehose cursor save 11 const firehose = new Firehose({ cursor: "759165458" }); 12 firehose.on("commit", (commit) => { 13 for (const op of commit.ops) { 14 if (op.action === "delete") continue; 15 if (AppBskyFeedLike.isRecord(op.record)) { 16 if ((op.record.subject.uri ?? "").includes(DID)) { 17 if ((op.record.subject.uri ?? "").includes("app.bsky.feed.post")) { 18 label(agent, commit.repo, op.record.subject.uri).catch((err) => 19 console.error(err), 20 ); 21 } 22 } 23 } 24 } 25 }); 26 27 firehose.start(); 28}; 29 30subscribe();