← Commit history

Publish 1.7.3

Drew Owens ·81a9ba0f72 ·2mo ago ·parent 423a485
4 files changed +24−5
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.7.1/install.sh | bash+curl -fsSL https://wiki.adom.inc/download/adom/adom-rss-gchat/1.7.3/install.sh | bash ```  No Rust, git, or other tooling needed: the installer downloads a prebuilt@@ -243,6 +243,18 @@ usable: `"AI"` matches "AI Act" and "AI-native" but not "Entertainment" or `"Test Bed"` matches "Test Beds". All-caps acronyms are matched exactly, because their plural is a different word: `"TIP"` does not match "tips". +### One story, several sites++A publisher network republishes the same article on each of its titles under a+different id and URL, so per-feed dedup posts it once per feed. Give those+feeds a shared `dedup_group` and they key on the headline instead, so the story+posts once from whichever feed sees it first:++```json+{ "url": "https://www.computerworld.com/feed/", "label": "Computerworld AI",+  "dedup_group": "foundry-ai", "include_categories": ["Artificial Intelligence"] }+```+ ### Watching a page that has no feed  Not every publisher ships RSS. `page_watch` reads entries off the HTML instead,
SKILL.md+9−2
@@ -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.7.1/install.sh | bash+   curl -fsSL https://wiki.adom.inc/download/adom/adom-rss-gchat/1.7.3/install.sh | bash    ```     The installer prints the exact next steps. It also authenticates its own@@ -87,12 +87,19 @@ service container over SSH, same format: - `dedup: "guid"`, post once per item (news, blogs). - `dedup: "guid+date"`, re-post when an item's pubDate changes (status pages:   Investigating, Monitoring, Resolved each post).+- `dedup_group: "<name>"`, share one dedup namespace across several feeds of a+  publisher network. A syndicated article is republished under a different id+  and URL on each of the network's titles, so grouped feeds key on the+  headline instead and the story posts once, from whichever feed sees it+  first. - `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` / `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;+  under **Filters** on each feed. Categories need the publisher to tag them,+  and a publisher that packs every tag into one comma-joined `<category>`+  element is split before matching, so `"Artificial Intelligence"` still hits;   organisation-wide feeds (most .gov) carry none, so use title keywords there   to follow one programme. `include_text`/`exclude_text` match the summary too,   for publishers whose titles are bare company names. Keywords match whole
package.json+1−1
@@ -2,7 +2,7 @@   "slug": "adom-rss-gchat",   "title": "RSS to Google Chat",   "type": "app",-  "version": "1.7.2",+  "version": "1.7.3",   "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.7.2",+  "version": "1.7.3",   "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",