← Commit history

Publish 1.7.0

Drew Owens ·a46b2cc537 ·2mo ago ·parent 06936da
4 files changed +49−4
README.md+24−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.6.1/install.sh | bash+curl -fsSL https://wiki.adom.inc/download/adom/adom-rss-gchat/1.7.0/install.sh | bash ```  No Rust, git, or other tooling needed: the installer downloads a prebuilt@@ -243,6 +243,29 @@ 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". +### Watching a page that has no feed++Not every publisher ships RSS. `page_watch` reads entries off the HTML instead,+which is how a product changelog that otherwise only arrives by marketing email+becomes a feed:++```json+{ "url": "https://www.quilter.ai/changelog", "label": "Quilter Changelog",+  "page_watch": { "headings": ["h2", "h3"] } }+```++| key | meaning |+|---|---|+| `headings` | Heading levels that mark an entry. Default `h2` + `h3`. |+| `link_prefix` | Take links whose href contains this instead of headings, for index pages that list posts. |++Entries dedup on their text, so an entry is posted once even though every entry+on the page shares one URL, and the first poll seeds silently rather than+posting the whole backlog. Filters apply as usual, which is what keeps a blog+that mixes product news with SEO articles readable. If a redesign moves the+headings, the log says `page watch found no entries` instead of the watch+quietly reporting nothing forever.+ 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:
SKILL.md+23−1
@@ -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.6.1/install.sh | bash+   curl -fsSL https://wiki.adom.inc/download/adom/adom-rss-gchat/1.7.0/install.sh | bash    ```     The installer prints the exact next steps. It also authenticates its own@@ -114,6 +114,28 @@ starts; it ends with that paragraph). `expand_headlines: true` is the simpler zero-config version that just lists the issue's contents. Both are per-feed and degrade to title + link if the publisher restructures. +### Sites with no feed (watch the page instead)++`page_watch` reads entries straight off an HTML page, for publishers that never+shipped a feed. It is the answer for a product changelog that only ever reaches+you by marketing email.++```json+{ "url": "https://example.com/changelog", "label": "Example Changelog",+  "page_watch": { "headings": ["h2", "h3"] } }+```++- `headings` (default `h2` + `h3`) names the levels that mark an entry, which+  is how changelogs are written. Site chrome usually sits at other levels.+- `link_prefix` takes links whose href contains it instead of headings, for+  index pages that list posts rather than heading them+  (`"link_prefix": "/p/blog/"`).+- Entries dedup on their text and the first poll seeds silently, so adding one+  never floods the space with the existing backlog. All the normal filters+  apply, which matters on blogs that mix product news with SEO articles.+- A redesign that moves the headings logs "page watch found no entries" rather+  than going quiet, so a broken watch is visible in the log.+ ### Sites with no feed yet  Put them in `watchlist` in feeds.json (`label`, `site`, optional `notes` and
package.json+1−1
@@ -2,7 +2,7 @@   "slug": "adom-rss-gchat",   "title": "RSS to Google Chat",   "type": "app",-  "version": "1.6.1",+  "version": "1.7.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.6.1",+  "version": "1.7.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",