63 lines
2.2 KiB
Python
63 lines
2.2 KiB
Python
#!/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 <username> [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) |