Val Town is a social website to write and deploy JavaScript.
Build APIs and schedule functions from your browser.
Readme

Passerelle RSS vers BlueSky

Ce script tourne une fois par heure et reposte les news de https://rezo.net/ vers le compte https://bsky.app/profile/rezo.net

Il utilise 3 éléments:

  • l'URL du flux RSS
  • une variable de stockage de l'état, qu'il faut créer initialement comme let storage_rss_rezo = {} et qui sera mise à jour par le script
  • les secrets du compte (username et mot de passe de l'application)

Il appelle @me.bsky_rss_poll qui lit le flux, vérifie avec l'état s'il y a du nouveau, et au besoin nettoie le post, puis l'envoie avec le script @me.post_to_bsky. Sans oublier de mettre à jour l'état pour le prochain run.

C'est un premier jet. Merci à @steve.krouse pour val.town et à @jordan pour ses scripts que j'ai bidouillés ici.

À faire éventuellement: améliorer la logique; poster vers twitter.

Runs every 1 hrs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
import { set } from "https://esm.town/v/std/set?v=11";
import process from "node:process";
import { storage_rss_rezo } from "https://esm.town/v/fil/storage_rss_rezo";
import { bsky_rss_poll } from "https://esm.town/v/fil/bsky_rss_poll";
export async function cron_rezo_rss2bsky() {
await bsky_rss_poll(
"https://rezo.net/backend/tout",
storage_rss_rezo,
process.env.REZO_BSKY_USERNAME!,
process.env.REZO_BSKY_PASS!,
);
await set("storage_rss_rezo", storage_rss_rezo);
}
October 23, 2023