thread-master/worker/threads-keyword-search-cli.ts

32 lines
805 B
TypeScript

import { searchKeywords } from './threads-keyword-search'
type CliInput = {
storage_state: string
query: string
limit?: number
}
async function readStdin(): Promise<string> {
const chunks: Buffer[] = []
for await (const chunk of process.stdin) {
chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk))
}
return Buffer.concat(chunks).toString('utf8')
}
async function main() {
const raw = await readStdin()
const input = JSON.parse(raw) as CliInput
const posts = await searchKeywords(
input.storage_state ?? '',
input.query ?? '',
input.limit ?? 12,
)
process.stdout.write(JSON.stringify({ posts }))
}
main().catch((error) => {
const message = error instanceof Error ? error.message : String(error)
process.stderr.write(message)
process.exit(1)
})