Skip to main content

tools for managing rss feeds

Project description

rsstools

A powerful Python tool for creating, editing, and managing RSS feeds with both programmatic and command-line interfaces.

Features

  • Create new RSS feeds with all required elements
  • Add, update, and remove items from feeds
  • Load and save RSS feeds to XML files
  • Validate feed structure and required elements
  • Command-line interface for easy management
  • Support for optional elements like author and publication date

Installation

Dependencies

First, ensure you have Python 3.7 or higher installed. This package requires the following dependencies:

click>=8.0.0

Installing via pip (recommended)

  1. Run this command:
pip install rsstools

Using via pyz

  1. Download the latest pyz from the releases tab.
  2. Make the file executable:
chmod +x rsstools.pyz
  1. You can run it directly:
python rsstools.pyz

If you need to extract the contents:

unzip rsstools.pyz -d rsstools_extracted
cd rsstools_extracted

Installing from source

This package requires the following dependencies:

click>=8.0.0
  1. Clone the repository:
git clone https://github.com/sctech-tr/rsstools.git
cd rsstools
  1. Install the package:
pip install .

Usage

Command Line Interface

  1. Create a new RSS feed:
rsstools create -t "My Blog" -l "https://myblog.com" -d "My personal blog" -o feed.xml
  1. Add an item to the feed:
rsstools add feed.xml \
-t "First Post" \
-l "https://myblog.com/first" \
-d "My first post" \
-a "John Doe" \
-p "2024-10-18T12:00:00"
  1. List all items in a feed:
rsstools list feed.xml
  1. Export items to JSON:
rsstools list feed.xml -o items.json
  1. Update an item:
rsstools update feed.xml "https://myblog.com/first" -t "Updated Post Title"
  1. Remove an item:
rsstools remove feed.xml "https://myblog.com/first"

Python API

from rsstools import RSSFeedCreator
from datetime import datetime

# Create a new feed
feed = RSSFeedCreator(
    title="My Blog",
    link="https://myblog.com",
    description="My personal blog about technology"
)

# Add an item
feed.add_item(
    title="First Post",
    link="https://myblog.com/first-post",
    description="This is my first blog post",
    author="John Doe",
    pub_date=datetime.now()
)

# Save the feed
feed.save("blog_feed.xml")

# Load an existing feed
feed.load("blog_feed.xml")

# Update an item
feed.update_item(
    guid="https://myblog.com/first-post",
    title="Updated First Post"
)

# Remove an item
feed.remove_item(guid="https://myblog.com/first-post")

# Get all items
items = feed.get_items()

Contributing

  1. Fork the repository
  2. Open a PR

License

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

Error Handling

The package uses custom exceptions (RSSToolsError) for error handling. Always wrap your code in try-except blocks when using the API:

from rsstools import RSSFeedCreator, RSSToolsError

try:
    feed = RSSFeedCreator("My Blog", "https://myblog.com", "My blog description")
    feed.save("feed.xml")
except RSSToolsError as e:
    print(f"Error: {str(e)}")

Common Issues and Solutions

  1. Invalid Feed Structure: Ensure your RSS feed follows the standard RSS 2.0 format.
  2. File Permissions: Make sure you have write permissions in the directory where you're saving the feed.
  3. Date Format: When using the CLI, provide dates in ISO format (YYYY-MM-DDTHH:MM:SS).

Getting Help

Use the --help flag with any command to see available options:

rsstools --help
rsstools create --help
rsstools add --help

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rsstools-0.3.1.tar.gz (19.3 kB view details)

Uploaded Source

Built Distribution

rsstools-0.3.1-py3-none-any.whl (19.2 kB view details)

Uploaded Python 3

File details

Details for the file rsstools-0.3.1.tar.gz.

File metadata

  • Download URL: rsstools-0.3.1.tar.gz
  • Upload date:
  • Size: 19.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.13.0

File hashes

Hashes for rsstools-0.3.1.tar.gz
Algorithm Hash digest
SHA256 0d1b67e04695adf47d71a7155b0d266e7d640a283a4a8d236e04360206070098
MD5 f334551c4abac83ffa8c1e71294412de
BLAKE2b-256 9b72e6b2573becc63d199e31ec27718c1b36605e1a551eb405750d3149d7d119

See more details on using hashes here.

File details

Details for the file rsstools-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: rsstools-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 19.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.13.0

File hashes

Hashes for rsstools-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 79c9d1d2ecab0dce9d387349f346cea77631d9c43f06730b35d94af270fede7a
MD5 3ba0f7472474d94de9d499496a4eeb5b
BLAKE2b-256 08d1df0eda8223e8bcbbd02e3345092bcd28a7f8aac82b5fba2f09a1f0a2a21f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page