← Commit history

Publish 1.3.0

Drew Owens ·8dcf03f2e2 ·2mo ago ·parent 893bff0
4 files changed +21−6
README.md+13−1
@@ -65,7 +65,7 @@ boot, then prefix the install command below with Run this on whichever container will host the service:  ```bash-curl -fsSL https://wiki.adom.inc/download/adom/adom-rss-gchat/1.2.1/install.sh | bash+curl -fsSL https://wiki.adom.inc/download/adom/adom-rss-gchat/1.3.0/install.sh | bash ```  No Rust, git, or other tooling needed: the installer downloads a prebuilt@@ -224,8 +224,20 @@ has filters, and the link shows a summary like `(only Product, API, 45d)`: |---|---|---| | only | `include_categories` | Only post items carrying one of these `<category>` values | | skip | `exclude_categories` | Never post items carrying any of these |+| title has | `include_titles` | Only post items whose title contains one of these words |+| title skips | `exclude_titles` | Never post items whose title contains one of these | | max age | `max_age_days` | Skip items published more than N days ago | +Categories only work when the publisher tags them. Many organisation-wide+feeds (most `.gov` ones) carry none, so title keywords are the way to follow a+single programme inside a firehose:++```json+{ "url": "https://www.nsf.gov/rss/rss_www_funding_pgm_annc_inf.xml",+  "label": "NSF TIP Funding",+  "include_titles": ["SBIR", "STTR", "PESOSE", "Innovation Engine"] }+```+ Matching is case-insensitive. An item with no date is never dropped by `max_age_days`, since a missing date is not evidence of staleness. Filtered items are recorded as seen, so changing a filter later does not backfill.
SKILL.md+6−3
@@ -44,7 +44,7 @@ own small Adom container; no central service, no shared credentials. 2. **Install on the host container** (one-liner, no Rust/git needed):     ```bash-   curl -fsSL https://wiki.adom.inc/download/adom/adom-rss-gchat/1.2.1/install.sh | bash+   curl -fsSL https://wiki.adom.inc/download/adom/adom-rss-gchat/1.3.0/install.sh | bash    ```     The installer prints the exact next steps. It also authenticates its own@@ -90,8 +90,11 @@ service container over SSH, same format: - `webhook`, per-feed Chat webhook. Feeds route independently, so one service   instance can post different feeds to different spaces. - Saving an empty list pauses all posting (nothing is forgotten; state stays).-- `include_categories` / `exclude_categories` / `max_age_days` filter a noisy-  feed. Editable in the editor under **Filters** on each feed. Use categories+- `include_categories` / `exclude_categories` / `include_titles` /+  `exclude_titles` / `max_age_days` filter a noisy feed. Editable in the editor+  under **Filters** on each feed. Categories need the publisher to tag them;+  organisation-wide feeds (most .gov) carry none, so use title keywords there+  to follow one programme. Use categories   to drop a vendor's marketing posts (OpenAI tags Product / API / Company /   Research / Global Affairs), and max_age_days for sites that republish old   articles under fresh ids so they do not arrive as news.
package.json+1−1
@@ -2,7 +2,7 @@   "slug": "adom-rss-gchat",   "title": "RSS to Google Chat",   "type": "app",-  "version": "1.2.1",+  "version": "1.3.0",   "description": "Post new RSS feed items straight into your Google Chat spaces. A small always-on poller with a pinnable web editor: click the link in your space, add or edit feeds, Save \u2014 live within one poll cycle. Per-feed dedup handles both news feeds (post once) and status pages (re-post on updates).",   "tags": [     "rss",
page.json+1−1
@@ -2,7 +2,7 @@   "slug": "adom-rss-gchat",   "title": "RSS to Google Chat",   "type": "app",-  "version": "1.2.1",+  "version": "1.3.0",   "description": "Post new RSS feed items straight into your Google Chat spaces. A small always-on poller with a pinnable web editor: click the link in your space, add or edit feeds, Save — live within one poll cycle. Per-feed dedup handles both news feeds (post once) and status pages (re-post on updates).",   "tags": [     "rss",