app
RSS to Google Chat
Public Made by Adomby adom
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).
← Commit history
README.md+3−2@@ -47,12 +47,13 @@ to boot. ```bash ssh -o StrictHostKeyChecking=accept-new <ssh-username>@adom.cloud \- 'curl -fsSL https://wiki.adom.inc/download/adom/adom-rss-gchat/1.1.3/install.sh | bash'+ 'curl -fsSL https://wiki.adom.inc/download/adom/adom-rss-gchat/1.1.4/install.sh | bash' ``` No Rust, git, or other tooling needed on the container — the installer downloads a prebuilt binary, sets up the watchdog, and prints the exact next-steps.+steps. While this wiki page is private, the installer authenticates with the+container's own api-key, so adom org members run the same one-liner unchanged. ### 3. Expose the feed editor
SKILL.md+16−11@@ -6,9 +6,9 @@ description: Set up and manage RSS-to-Google-Chat feed posting. Use when the use # adom-rss-gchat A small always-on service that polls RSS feeds and posts each new item into a-Google Chat space via webhook. Feeds are managed from a token-gated web editor-the user pins to their Chat space. Runs on the user's own small Adom container;-no central service, no shared credentials.+Google Chat space via webhook. Feeds are managed from a web editor (protected by+"Sign in with Adom") that the user pins to their Chat space. Runs on the user's+own small Adom container; no central service, no shared credentials. ## Architecture (what runs where) @@ -17,7 +17,8 @@ no central service, no shared credentials. port 8842, both supervised by a 2-minute cron watchdog. - **Data** lives in `~/rss-gchat/` on that container: `feeds.json` (live feed list, hot-reloaded each cycle), `state.json` (per-feed seen-item sets — never- posts a duplicate), `editor.token` (capability token), `env` (config).+ posts a duplicate), `sessions.json` (editor sign-in sessions), `env` (config,+ chmod 600). `editor.token` exists only in token-auth mode. - **Feed edits** go through the editor URL; a save is live within one poll cycle. New feeds seed silently — only items published after adding are posted. @@ -40,10 +41,12 @@ no central service, no shared credentials. ```bash ssh -o StrictHostKeyChecking=accept-new <ssh-username>@adom.cloud \- 'curl -fsSL https://wiki.adom.inc/download/adom/adom-rss-gchat/1.1.3/install.sh | bash'+ 'curl -fsSL https://wiki.adom.inc/download/adom/adom-rss-gchat/1.1.4/install.sh | bash' ``` - The installer prints the editor token and the exact next steps.+ The installer prints the exact next steps. While the wiki page is private,+ the installer authenticates using the container's own api-key, so this works+ unchanged for adom org members. 3. **Expose the editor** (back on the dev container): @@ -51,13 +54,15 @@ no central service, no shared credentials. adom-cli carbon containers port-add <slug> --port 8842 --prefix rss-editor ``` - Editor URL = `https://<returned-hostname>/` (no secret — default auth is- "Sign in with Adom", limited to the container owner; add teammates via- `EDITOR_ALLOWED_USERS=name1,name2` in `~/rss-gchat/env`. Token-mode- fallback appends `?token=<token-from-step-2>`).+ Editor URL = `https://<returned-hostname>/` — no secret in it. Default auth+ is "Sign in with Adom", limited to the container owner (auto-resolved); add+ teammates via `EDITOR_ALLOWED_USERS=name1,name2` in `~/rss-gchat/env`. On a+ container with no api-key the installer picks token mode instead, and the+ URL takes `?token=<token printed by the installer>`. 4. **Hand the user the editor URL.** First visit prompts an Adom sign-in- (approve in the tab that opens, once per browser, 30-day session). The+ (approve in the tab that opens, once per browser, 30-day session). Only+ the container owner gets in, so the link is safe to pin. The on-page setup guide covers the Google Chat side: open the space, space name menu, Apps & integrations, Webhooks, Add webhook, copy the URL, paste it into the feed row. Tell the user to **pin the editor URL to the
package.json+1−1@@ -2,7 +2,7 @@ "slug": "adom-rss-gchat", "title": "RSS to Google Chat", "type": "app",- "version": "1.1.3",+ "version": "1.1.4", "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.1.3",+ "version": "1.1.4", "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",