Files
LEDMatrix/enable_news_manager.py
Chuck b6751a94c2 Sports news ticker with dynamic headline scrolling (#9)
* Add news manager with RSS feed ticker and dynamic scrolling

Co-authored-by: charlesmynard <charlesmynard@gmail.com>

* Add F1 feeds, custom feed management script, and comprehensive feed guide

Co-authored-by: charlesmynard <charlesmynard@gmail.com>

* Remove emoji and improve error/success message formatting

Co-authored-by: charlesmynard <charlesmynard@gmail.com>

* Add dynamic duration feature for news display with configurable timing

Co-authored-by: charlesmynard <charlesmynard@gmail.com>

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2025-07-27 09:53:19 -05:00

120 lines
3.8 KiB
Python

#!/usr/bin/env python3
import json
import sys
import os
def enable_news_manager():
"""Enable the news manager in the configuration"""
config_path = "config/config.json"
try:
# Load current config
with open(config_path, 'r') as f:
config = json.load(f)
# Enable news manager
if 'news_manager' not in config:
print("News manager configuration not found!")
return False
config['news_manager']['enabled'] = True
# Save updated config
with open(config_path, 'w') as f:
json.dump(config, f, indent=4)
print("SUCCESS: News manager enabled successfully!")
print(f"Enabled feeds: {config['news_manager']['enabled_feeds']}")
print(f"Headlines per feed: {config['news_manager']['headlines_per_feed']}")
print(f"Update interval: {config['news_manager']['update_interval']} seconds")
return True
except Exception as e:
print(f"ERROR: Error enabling news manager: {e}")
return False
def disable_news_manager():
"""Disable the news manager in the configuration"""
config_path = "config/config.json"
try:
# Load current config
with open(config_path, 'r') as f:
config = json.load(f)
# Disable news manager
if 'news_manager' in config:
config['news_manager']['enabled'] = False
# Save updated config
with open(config_path, 'w') as f:
json.dump(config, f, indent=4)
print("SUCCESS: News manager disabled successfully!")
else:
print("News manager configuration not found!")
return True
except Exception as e:
print(f"ERROR: Error disabling news manager: {e}")
return False
def show_status():
"""Show current news manager status"""
config_path = "config/config.json"
try:
with open(config_path, 'r') as f:
config = json.load(f)
if 'news_manager' not in config:
print("News manager configuration not found!")
return
news_config = config['news_manager']
print("News Manager Status:")
print("=" * 30)
print(f"Enabled: {news_config.get('enabled', False)}")
print(f"Update Interval: {news_config.get('update_interval', 300)} seconds")
print(f"Scroll Speed: {news_config.get('scroll_speed', 2)} pixels/frame")
print(f"Scroll Delay: {news_config.get('scroll_delay', 0.02)} seconds/frame")
print(f"Headlines per Feed: {news_config.get('headlines_per_feed', 2)}")
print(f"Enabled Feeds: {news_config.get('enabled_feeds', [])}")
print(f"Rotation Enabled: {news_config.get('rotation_enabled', True)}")
print(f"Rotation Threshold: {news_config.get('rotation_threshold', 3)}")
print(f"Font Size: {news_config.get('font_size', 12)}")
custom_feeds = news_config.get('custom_feeds', {})
if custom_feeds:
print("Custom Feeds:")
for name, url in custom_feeds.items():
print(f" {name}: {url}")
else:
print("No custom feeds configured")
except Exception as e:
print(f"ERROR: Error reading configuration: {e}")
def main():
if len(sys.argv) < 2:
print("Usage: python3 enable_news_manager.py [enable|disable|status]")
sys.exit(1)
command = sys.argv[1].lower()
if command == "enable":
enable_news_manager()
elif command == "disable":
disable_news_manager()
elif command == "status":
show_status()
else:
print("Invalid command. Use: enable, disable, or status")
sys.exit(1)
if __name__ == "__main__":
main()