first commit

This commit is contained in:
ImBenji 2026-04-16 22:45:58 +01:00
commit 82d856a21d

33
README.md Normal file
View file

@ -0,0 +1,33 @@
# duriin_api
Node.js Fastify server that ingests news articles from RSS, SEC EDGAR 8-K filings, Alpha Vantage News Sentiment, Finnhub company news, and GDELT into a local SQLite archive.
## Setup
1. Install dependencies:
```bash
npm install
```
2. Edit `config.json` with your API keys, including `openRouter.apiKey`, tickers, RSS feeds, and schedules.
3. Start the server:
```bash
npm start
```
## API
- `GET /articles?q=&source=&from=&to=&limit=&offset=`
- `GET /articles?similar_to={id}&limit=`
- `GET /articles?topic={query}&limit=`
- `GET /articles/:id`
- `GET /status`
## Notes
- SQLite archive file defaults to `./archive.sqlite`.
- Deduplication is enforced on `url` and normalized title.
- Article body extraction runs asynchronously after insertion, with hourly retries for rows still missing content.
- Main article images are stored as ultra-compressed base64 WebP.
- Embeddings are generated asynchronously with OpenRouter `perplexity/pplx-embed-v1-0.6b` and indexed in `sqlite-vec` for similarity search.
- Topic search caches normalized query embeddings in SQLite and falls back to OpenRouter on cache miss.
- SEC requests use the configured `User-Agent`.