Code Monkey home page Code Monkey logo

skyfeed1-'s Introduction

Contrails

Contrails is an ATProto Feed Generator backed by Cloudflare Workers and Bluesky Search.

Fork or copy the repository and edit CONFIG.md to define your feed generator.

Deploy right from GitHub Actions to Cloudflare Workers.

The current release is 0.0.4.

Requirements

  • Bluesky Social account
  • GitHub account (Sign up or Login)
  • Cloudflare account (Sign up or Login)
  • A moderate-to-high tolerance for adventure

Installation & Configuration: The Short Version

  1. Create a Cloudflare Worker
  2. Create a Cloudflare API Token (the Edit Workers template is fine)
  3. Create a Bluesky App Password
  4. Fork this repository
  5. In your fork's Settings > Secrets and variables > Actions, set the following:
  • Variable: BLUESKY_HANDLE
  • Variable: CLOUDFLARE_ACCOUNT_ID
  • Variable: CLOUDFLARE_WORKER_NAME
  • Secret: BLUESKY_APP_PASSWORD
  • Secret: CLOUDFLARE_API_TOKEN
  1. Edit CONFIG.md in your fork
  2. Go to Actions > 1. Check Requirements, select Run Workflow, refresh and wait for completion
  3. Go to Actions > 2. Deploy to Cloudflare, select Run Workflow, refresh and wait for completion
  4. Go to Actions > 3. Publish Feed Generator, select Run Workflow, refresh and wait for completion
  5. Visit the BLUESKY_HANDLE profile, e.g. https://bsky.app/profile/jcsalterego.bsky.social and then the Feeds tab

The longer (and incomplete) instructions can be found in INSTALL.md.

Upgrading

In the event you'd like to pull in the latest changes into a fork of Contrails, GitHub has great documentation here: GitHub Docs: Syncing a fork

Changelog

0.0.4

  • Pinned posts support

0.0.3

  • Multiple feed support
  • Ignore blockquotes in CONFIG.md (to allow comments).

0.0.2

  • Delete Feed Generator workflow

0.0.1

  • Initial Release

Etymology

Ed. Note: Bluesky Search is now called Palomar.

Publishing Diagram

flowchart LR
    subgraph Bluesky
        PDS["PDS"]
    end
    subgraph GitHub
        subgraph MD_Config["CONFIG.md"]
            searchTerms
        end
        subgraph CloudflareDeploy["Cloudflare Deploy"]
            Worker_JS
            CloudflareApiToken("CLOUDFLARE_API_TOKEN")
            CloudflareAccountID("CLOUDFLARE_ACCOUNT_ID")
            CloudflareWorkerName("CLOUDFLARE_WORKER_NAME")
        end
        subgraph BlueskyDeploy["Bluesky Deploy"]
            PublishFeedGenerator
            BlueskyHandle("BLUESKY_HANDLE")
            BlueskyAppPassword("BLUESKY_APP_PASSWORD")
        end
        MD_Config --> Worker_JS["worker.js"]
        MD_Config --> PublishFeedGenerator["publishFeedGenerator.ts"]
    end
    subgraph "Cloudflare Worker"
        CloudflareWorker[worker.js]
    end
    CloudflareDeploy -->|Deploy to Cloudflare| CloudflareWorker
    BlueskyDeploy -->|Publish Feed Generator| PDS

Query Diagram

sequenceDiagram
    actor CoffeeTeaLover
    participant Bluesky
    participant Cloudflare as Cloudflare Worker
    participant Bluesky Search
    CoffeeTeaLover->>+Bluesky: get Coffee&Tea custom feed
    Bluesky->>+Cloudflare: get Coffee&Tea custom feed
    Cloudflare->>+Bluesky Search: search "coffee" and "tea"
    Bluesky Search->>+Cloudflare: posts matching "coffee" and "tea"
    Cloudflare->>+Bluesky: IDs of posts matching "coffee" and "tea"
    Bluesky->>+CoffeeTeaLover: posts for Coffee&Tea custom feed

LICENSE

2-Clause BSD

skyfeed1-'s People

Contributors

jcsalterego avatar shelob9 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.