mirror of
https://github.com/ChuckBuilds/LEDMatrix.git
synced 2026-04-10 13:02:59 +00:00
* 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>
120 lines
3.8 KiB
Python
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() |