#!/usr/bin/env python3 """ Generate RSS feed for specific dates (e.g., July 21 show) """ from src.mixcloud_rss import MixcloudRSSGenerator def generate_filtered_feed(username, specific_dates): """Generate RSS feed filtered by specific dates.""" # Create generator generator = MixcloudRSSGenerator() # Set up filters filters = { 'specific_dates': specific_dates } # Generate feed print(f"Generating RSS feed for {username} filtered by dates: {specific_dates}") rss_feed = generator.generate_rss_from_username(username, limit=50, filters=filters) if rss_feed: # Save to file filename = f"{username}_filtered_{specific_dates.replace(',', '_').replace(' ', '')}.xml" with open(filename, 'w', encoding='utf-8') as f: f.write(rss_feed) print(f"āœ… RSS feed saved to: {filename}") # Also print the RSS URL for the web server print(f"\nšŸ“” RSS URL for web server:") print(f"http://localhost:5000/rss/{username}?limit=50&specific_dates={specific_dates}") # Count episodes import xml.etree.ElementTree as ET root = ET.fromstring(rss_feed) items = root.findall('.//item') print(f"\nšŸ“Š Found {len(items)} episodes matching the filter") # Show episode details if items: print("\nšŸ“… Matching episodes:") for item in items: title = item.find('title').text pub_date = item.find('pubDate').text print(f" - {title} ({pub_date})") else: print("āŒ Error: Could not generate RSS feed") if __name__ == "__main__": import sys if len(sys.argv) < 2: print("Usage: python generate_july21_feed.py [dates]") print("Example: python generate_july21_feed.py djusername 'July 21'") print("Example: python generate_july21_feed.py djusername 'July 21, August 15'") sys.exit(1) username = sys.argv[1] dates = sys.argv[2] if len(sys.argv) > 2 else "July 21" generate_filtered_feed(username, dates)