Scratch space for learning atproto app development
1import type { Database } from '#/db/index' 2import { Firehose } from '#/firehose/firehose' 3 4export class Ingester { 5 firehose: Firehose | undefined 6 constructor(public db: Database) {} 7 8 async start() { 9 const firehose = new Firehose({}) 10 11 for await (const evt of firehose.run()) { 12 if (evt.event === 'create') { 13 if (evt.collection !== 'app.bsky.feed.post') continue 14 const post: any = evt.record // @TODO fix types 15 await this.db 16 .insertInto('post') 17 .values({ 18 uri: evt.uri.toString(), 19 text: post.text as string, 20 indexedAt: new Date().toISOString(), 21 }) 22 .onConflict((oc) => oc.doNothing()) 23 .execute() 24 } 25 } 26 } 27 28 destroy() { 29 this.firehose?.destroy() 30 } 31}