A light microservice serving Atom 1.0 Feeds for MusicThread threads

Overview

MusicThread Web Feeds

A light microservice to serve Atom 1.0 Feeds for MusicThread.

People use web feeds for following updates to specific threads via a feed reader/aggregator, or as part of automations with services like IFTTT. If you have a novel use for MusicThread Web Feeds, please let us know!

MusicThread Web Feeds are available at https://feed.musicthread.app/ but individuals may want to run their own fork with modifications.

URLs follow the same path structure as on the main website (i.e. /thread/<THREAD_KEY>). Private threads are not currently supported and attempting to access them will return an error.

Architecture

musicthread-webfeed is designed to be run using Cloudflare Workers.

The code is available in a single Javascript file (src/main.js) and should be trivially integrated into other environments if needed.

If you're interested in opening a PR to add or change features, please open an issue so we can discuss your plans first.

Local development

musicthread-webfeed requires node.js and npm, wrangler and a Cloudflare account.

An introduction to Cloudflare Workers is available here: "Get started guide".

To get set up locally:

  1. Clone the latest release
  2. In the project's root, run npm install to install all dependencies
  3. Run npm run dev to run the local development server and watch the code for changes (the development service is available at http://localhost:8787)

Note: You may need to run npm run cf-login to sign into your Cloudflare account if this is your first time using Cloudflare Workers.

Deployment

Updates to the MusicThread hosted service are deployed manually, typically after merging into the main branch.

Deploying to your own Cloudflare account can be done by running npm run deploy, however additional setup may be needed. Please refer to Cloudflare's documentation for help.

If deploying to your own Cloudflare account, you should be aware of their request limits and pricing plans.

You might also like...

The Easiest Way To Write Twitter Threads 🐦

The Easiest Way To Write Twitter Threads 🐦

Twotion | The Easiest Way To Write Twitter Threads Write Twitter threads and post them in one click without leaving Notion. Completely Free No Need To

Nov 24, 2022

Subscribe to rss feeds from anywhere, receive notifications from anywhere.

Subscribe to rss feeds from anywhere, receive notifications from anywhere.

INK RSS 管理订阅,接收通知 示例网页 · 示例群组 · 报告Bug 介绍 特点 项目背景 TODO 注意事项 部署 额外附赠 使用建议 调查 贡献 作者 协议 介绍 INK RSS 提供及时且多样的 rss 通知服务,借助现有的接口你可以在任意位置订阅,并使用任意方式接收通知,并且所有服务均

Dec 28, 2022

GitHub Advisory Database RSS Feeds.

github-advisory-database-rss RSS Feeds for GitHub Advisory Database. Usage Visit https://azu.github.io/github-advisory-database-rss/ Subscribe RSS Fee

Aug 10, 2022

A small library for turning RSS XML feeds into JavaScript objects

rss-parser A small library for turning RSS XML feeds into JavaScript objects. Installation npm install --save rss-parser Usage You can parse RSS from

Dec 31, 2022

Decentralised Oracle Network for Subjective Data Feeds (testnet).

deOracle.xyz deOracle.xyz is a decentralised P2P oracle platform with a cross-chain reputation system for digital identities. Our goal is to bring rel

Oct 28, 2022

A vanilla node.js blog microservice

Vanilla blog microservice This is a vanilla blog microservice built using node.js; it was created for the purpose of learning to gain an understanding

Dec 24, 2021

ACME client microservice for the Cumulocity IoT Edge to automatically issue and renew valid certificates via e.g. Let's Encrypt.

Cumulocity IoT Edge - ACME This repository contains the sources for an ACME microservice that can be used to periodically issue/renew certificates for

May 3, 2022

🔖Minimalistic URL shortener as a microservice

🔖 u Minimalistic URL shortener as a microservice. Also Klein's successor. 🔨 stack Node.js TypeScript Express Prisma PostgreSQL Redis Docker Docker C

Jul 17, 2022

Request-Header-Parser-Microservice App for FreeCodeCamp Backend Challenge

API Project: Request Header Parser Microservice for freeCodeCamp User stories: I can get the IP address, preferred languages (from header Accept-Langu

Mar 20, 2022
Comments
  • Rename RSS -> Atom/feed/webfeed

    Rename RSS -> Atom/feed/webfeed

    So... what we've actually implemented is Atom feeds... My mistake with the original naming of the repo.

    This PR renames the project to MusicThread Web Feeds and updates the code and documentation to reflect this.

    The project on Cloudflare workers has now been set up too and is available at feed.musicthread.app (e.g. https://feed.musicthread.app/thread/221MoMPiOUJiqUoTVONYHiqjZEK)

    Once reviewed and merged, I'll update this repo name to musicthread-webfeed too.

    opened by edwellbrook 1
  • Use he library for entity encoding

    Use he library for entity encoding

    This PR uses he.js for encoding html entities in the RSS feed.

    It also breaks down parts of generating the feed into separate functions for (hopefully) easier readability.

    The feed generation is moved within the try/catch as he can throw errors in some situations.

    opened by edwellbrook 0
  • Update request url parser

    Update request url parser

    This PR updates the way the script parses the request URL.

    The important parts are:

    • We only work with the request path
    • Unsupported urls return 404 status code
    • We explicitly check for the thread path component
    • We don't assume a specific length for the thread key

    Additionally I also made some minor edits to the wrangler setup (it didn't immediately run for me), and added a notice about private threads (which I think we should address separately and in the future).

    opened by edwellbrook 0
Owner
Brushed Type
Brushed Type
Feeds is a simple Revolt bot that delivers RSS feeds to your channels.

Feeds Feeds is a simple Revolt bot that delivers RSS feeds to your text channels. You can invite it here. Feeds are refreshed once per minute, and if

Jan 3 Dec 5, 2022
RSS/Atom data source plugin for @grafana.

RSS/Atom data source plugin for Grafana Introduction The RSS/Atom data source is a plugin for Grafana that retrieves RSS/Atom feeds and allows to visu

Volkov Labs 9 Jan 2, 2023
Grupprojekt för kurserna 'Javascript med Ramverk' och 'Agil Utveckling'

JavaScript-med-Ramverk-Laboration-3 Grupprojektet för kurserna Javascript med Ramverk och Agil Utveckling. Utvecklingsguide För information om hur utv

Svante Jonsson IT-Högskolan 3 May 18, 2022
Base Rails app that includes login, social login, homepage, and basic model for serving as a scaffold app.

Rails7Base I created the Rails7Base as a scaffold application. Countless times, I had to create apps that must have the following features: Login syst

Chim Kan 14 Jul 2, 2022
JavaScript Express.js app serving static vanilla JS. This sample app is used in Microsoft Docs to demonstrate how to integrate Azure Storage, Azure Cosmos DB, and Azure Active Directory.

JavaScript on Azure Learn Path - Module 2 - Deploying a basic app to Azure This Learn module requires the following Azure resources to deploy correctl

Azure Samples 13 Dec 31, 2022
Hemsida för personer i Sverige som kan och vill erbjuda boende till människor på flykt

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

null 4 May 3, 2022
Kurs-repo för kursen Webbserver och Databaser

Webbserver och databaser This repository is meant for CME students to access exercises and codealongs that happen throughout the course. I hope you wi

null 14 Jan 3, 2023
Parallel/concurrent async work, optionally using multiple threads or processes

parallel-park Parallel/concurrent async work, optionally using multiple processes Usage parallel-park exports two functions: runJobs and inChildProces

Lily Scott 10 Mar 1, 2022
Drawing Newton's fractal using pure js, rust-wasm, SIMDs, threads and GPU

Newton's fractal Runtime Newton's fractal renderer. >>Click<< to open in your browser Inspired by 3blue1brown's video about Newton's fractal. Drawing

Aleksei 86 Nov 17, 2022
Um bot de suporte feito usando threads para o Discord, 100% customizável, feito em JavaScript e inspirado no Rio Helper do servidor Elixir Lab e na Loritta Helper do serivdor de suporte da Loritta.

Ticket Bot Um bot de suporte feito usando threads para o Discord, 100% customizável, feito em JavaScript e inspirado no Rio Helper do servidor Elixir

ADG 6 Dec 21, 2022