rss-to-notion

command module
v0.0.0-...-fe64dd1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 20, 2024 License: MIT Imports: 12 Imported by: 0

README

RSS to Notion

A Go application that automatically syncs feeds to a Notion database. It fetches feeds in parallel, converts HTML content to Markdown, and creates pages in your Notion database while avoiding duplicates.

Features

  • Supports RSS, Atom and JSONFeed
  • Parallel processing of multiple feeds
  • HTML to Markdown conversion until we find a way to support Notion's RichText
  • Duplicate entry detection
  • Rate limiting to respect Notion API limits
  • YAML configuration file support

Prerequisites

  • Go 🐹
  • A Notion account and integration API key
  • A Notion database to store the feeds entries

Setup

  1. Create a Notion integration:

  2. Create a Notion database:

    • Create a new database in Notion
    • Add the following properties:
      • Name (title)
      • URL (url)
      • Published (date)
    • Share the database with your integration
    • Copy the database ID from the URL (the part after the workspace name and before the question mark)
  3. Clone the repository:

    git clone https://github.com/virtualroot/rss-to-notion
    cd rss-to-notion
    
  4. Create a feeds.yaml configuration file:

    feeds:
       - https://example.com/blog.rss
       - https://example.org/feed.atom
       - https://blog.example.net/feed.xml
    notion_db_id: "your-database-id"
    notion_api_key: "your-integration-api-key"
    
  5. Build and run:

    go build
    ./rss-to-notion
    

Configuration

The feeds.yaml file supports the following options:

  • feeds: List of RSS feed URLs to monitor
  • notion_db_id: Your Notion database ID
  • notion_api_key: Your Notion API integration token

Rate Limiting

The application implements rate limiting of 3 requests per second to comply with Notion's API guidelines.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL