Skip to content
This repository has been archived by the owner on Jan 13, 2022. It is now read-only.

This service helps to consume thousands of rss feeds in an easy way. By merging feeds into topic feeds which can be implemented with a singel .opml file.

License

a6b8/rss-merge-service

Repository files navigation

alt text

Information on Rails.

Table of Contents

Overview

Focus:

  • Show Media in the fastest possible way, no clutter and distraction free.
  • Use Open Webstandards for distribution.
  • Generate own index.html for media content to fastest loading and features
  • A Input is a RSS(XML) or JSON File (only RSS - currently)

Structure:

  • Every inputsource is in one category.
  • Every category has one mode (Morning, Evening...)
  • Every category generate a .rss (xml) file
  • Every mode generate a .opml (Rss Grouping) file

Prototyp (Version Ashby)

Getting things running.

Focus:

  • Reclutter Headlines and Text
  • Setup Template Structure
  • Generate a Datasets for diffrent user purposes
  • Longtime User Testing.

Dashboard

Using a Google Spreadsheet as Interface. The Spreadsheet is set to public and consumable in json format.:

Tasks:

  • Sort Sources by Category
  • Set Names
  • Generate URL with Parameters
  • Discovering Content Creator ID Number for importxml

Overview:

  • 1200 Sources (Videos, Websites)
  • 22 Categories (Art, Programming...)
  • 3 Modes (Morning, Evening...)

alt text

Detail:

  • Rearrange category by dropdown

alt text

User Interface

Every RSS Reader with Webview & Opml Import is capable to show the content. We use Leaf for Mac

  • With 2 .opml files the Reader imports more then 20 Categories.
  • The headline from every inputsources has the same structure
  • Default View is set to Webview.

Headlines:

  • Every Source merges into the same headline structure.
  • Content gets mixable, and easier to read.

Example:

▫️ LEX FRIDMAN | Most Research In Deep Learning Is A Total Waste Of Time - Jeremy Howard | Ai Podcast Clips

  1. Content-Symbol
  2. CHANNEL_NAME
  3. Split " | "
  4. Titleized-Content-Name-Without-Emojis

alt text

Browser Extension

Backend

All processes run (currently) in one docker container. As container distrubution we use Rancher 1.6

Features:

  • All Environment Variables are docker secrets ready!
  • Generating Files is controlled and scheduled over a cron
  • Console Log is controllable over environment variables

Environment Variables:

  • Aws S3: Write rss, opml and templates, access to public.
AWS_REGION= # -string
AWS_ID= #-string
AWS_SECRET= # -string
AWS_BUCKET_NAME= # -string
AWS_VERSION= # -string must end with "/"
  • Slack Channel: Send Status Logs
SLACK= # -string
CRON_STATUS= # -cron string

alt text

  • Google Spreadsheet: First Tab needs to be a overview site. next two detail sites. Its configable in index.rb
SPREADSHEET= # -string
  • Cron: Sets the schedule times.
CRON_GENERATE= # -cron string
  • Console Logs: Enable Logs.
DEBUG= # -boolean
STAGE= # -string production or development

Local:

version: "2"
services:
  curlai:
    build: .
    environment:
      AWS_REGION : ${AWS_REGION}
      AWS_ID : ${AWS_ID}
      AWS_SECRET : ${AWS_SECRET}
      AWS_BUCKET_NAME : ${AWS_BUCKET_NAME}
      AWS_VERSION : ${AWS_VERSION}
      SLACK : ${SLACK}
      SPREADSHEET : ${SPREADSHEET}
      CRON_GENERATE : ${CRON_GENERATE}
      CRON_STATUS : ${CRON_STATUS}
      DEBUG : ${DEBUG}
      STAGE : ${STAGE}

With Docker Secrets:

version: '2'
services:
  curlai:
    image: a6b8/rss-merger:v8
    environment:
      AWS_BUCKET_NAME_FILE: /run/secrets/curlai--aws-bucket-name
      AWS_ID_FILE: /run/secrets/curlai--aws-id
      AWS_REGION_FILE: /run/secrets/curlai--aws-region
      AWS_SECRET_FILE: /run/secrets/curlai--aws-secret
      AWS_VERSION_FILE: /run/secrets/curlai--aws-version
      CRON_GENERATE_FILE: /run/secrets/curlai--cron-generate
      CRON_STATUS_FILE: /run/secrets/curlai--cron-status
      DEBUG_FILE: /run/secrets/curlai--debug
      SLACK_FILE: /run/secrets/curlai--slack
      SPREADSHEET_FILE: /run/secrets/curlai--spreadsheet
      STAGE_FILE: /run/secrets/curlai--stage
    secrets:
    - curlai--aws-region
    - curlai--aws-id
    - curlai--aws-secret
    - curlai--aws-bucket-name
    - curlai--aws-version
    - curlai--slack
    - curlai--spreadsheet
    - curlai--cron-generate
    - curlai--cron-status
    - curlai--debug
    - curlai--stage
secrets:
  curlai--aws-version:
    external: 'true'
  curlai--stage:
    external: 'true'
  curlai--cron-generate:
    external: 'true'
  curlai--aws-id:
    external: 'true'
  curlai--spreadsheet:
    external: 'true'
  curlai--debug:
    external: 'true'
  curlai--aws-bucket-name:
    external: 'true'
  curlai--aws-secret:
    external: 'true'
  curlai--slack:
    external: 'true'
  curlai--aws-region:
    external: 'true'
  curlai--cron-status:
    external: 'true'

Docker Hub:

Future

Website Media Source Link
Arxiv Website xml Link
Craiglist Website xml Link
Discogs Website xml Link
Ebay DE Website xml Link
Epo Website xml Link
Google Trends overview xml Link
Instagram video xml Link
Kickstarter video json Link
Medium Website xml Link
Reddit Website xml Link
Stackoverflow Website xml Link
Thingiverse.com Website xml Link
Twitch.com video xml Link
Vimeo video xml Link
Yahoo.com Website xml Link
Wikipedia DE Website xml Link
Wikipedia EN Website xml Link

About

This service helps to consume thousands of rss feeds in an easy way. By merging feeds into topic feeds which can be implemented with a singel .opml file.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published