https://github.com/vwkd/feed-aggregator
JSON Feed aggregator
https://github.com/vwkd/feed-aggregator
atom feed feed-aggregator json json-feed json-feed-aggregator rss
Last synced: about 1 month ago
JSON representation
JSON Feed aggregator
- Host: GitHub
- URL: https://github.com/vwkd/feed-aggregator
- Owner: vwkd
- License: mit
- Created: 2024-09-06T18:51:28.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2025-07-11T11:00:00.000Z (11 months ago)
- Last Synced: 2025-07-11T13:54:55.306Z (11 months ago)
- Topics: atom, feed, feed-aggregator, json, json-feed, json-feed-aggregator, rss
- Language: TypeScript
- Homepage: https://jsr.io/@vwkd/feed-aggregator
- Size: 39.1 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# README
JSON Feed aggregator
## Features
- stateful JSON feed
- cache items using Deno KV
- update existing items
- expire items, e.g. feed of future events
## Usage
### Create feed
```js
import { createFeedAggregator } from "@vwkd/feed-aggregator";
const path = ":memory:";
const prefix = ["my", "example", "feed"];
using feed = await createFeedAggregator(
path,
prefix,
{
title: "My Example Feed",
home_page_url: "https://example.org",
feed_url: "https://example.org/feed.json",
},
);
await feed.add({
item: {
id: "1",
content_html: "
Hello, world!
",
url: "https://example.org/initial-post",
},
});
await feed.add(
{
item: {
id: "2",
content_text: "This is a second item.",
url: "https://example.org/second-item",
},
},
{
item: {
id: "3",
content_html: "
This is a third item.
",
content_text: "This is a third item.",
url: "https://example.org/third-item",
},
},
);
const json = feed.toJSON();
```
### Configure logging
- log level defaults to `warn`
- log level `silent` disables logging
- change log level for all methods
```js
import { logger } from "@vwkd/feed-aggregator";
logger.setLevel("debug");
logger.rebuild();
```
- change log level for specific method, e.g. `add`
```js
import { logger } from "@vwkd/feed-aggregator";
const logAdd = logger.getLogger("add");
logAdd.setLevel("debug");
logAdd.rebuild();
```