From 711482d59a0b051e4c936cfe9e0444506379c79a Mon Sep 17 00:00:00 2001 From: Evan Salter Date: Tue, 9 Dec 2025 09:59:18 -0600 Subject: [PATCH] Add news source logos (#143) * Download favicons; Display first one * Refine image loading * Switch to static images * Remove unused var * Fix * Clean up * Fix width fallback --- .gitignore | 1 + assets/news_logos/cbc.png | Bin 0 -> 40410 bytes assets/news_logos/cnn.png | Bin 0 -> 57656 bytes src/image_utils.py | 16 ++++ src/news_manager.py | 157 +++++++++++++++++++++----------------- 5 files changed, 104 insertions(+), 70 deletions(-) create mode 100644 assets/news_logos/cbc.png create mode 100644 assets/news_logos/cnn.png create mode 100644 src/image_utils.py diff --git a/.gitignore b/.gitignore index d07637dd..d757249c 100644 --- a/.gitignore +++ b/.gitignore @@ -15,6 +15,7 @@ token.pickle .venv env/ venv/ +venv*/ ENV/ # IDE diff --git a/assets/news_logos/cbc.png b/assets/news_logos/cbc.png new file mode 100644 index 0000000000000000000000000000000000000000..d3a61ad6876988704bbfad805afee0c00c9f43f5 GIT binary patch literal 40410 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

j~z;!|R#i@tXkN}}0>QyJp$K;G{;98>o zss`WGKmS~BXCJ=soiHZQBT?>Nl{({&?Qr+c@mTb^Rs~fm?3=@$170Mj@!{wFyrTPN z$LE|Vi=litp(Aj>cl$_H;83dvTnSM6VzByRy_(AHoQ1L9nmAdjMW5+2R!&yBFZ44$ zQ_4I9iUufSSzEbH(+$7wgpCYjP<$@oV5hGJR|7fuzc_g*ZJ0^Ci}S%SQ@^YDwvNuD zVIQuB_hU#_Id3(6=}E~PW=fu6(kF1@iYpzg z$QwHUGC59KAO3$hU;n@Pck{WUtZP-kR1w-#N~BZ7D(!rLO_N>zLv9pY$x4F6Xl={ldnW&@5VbAwpjceu)O0vj=&%yu@8i+K~3cvxV+yI$l@(wMtX zd4Yb0_Wz)3Q2<>VYR{XCS5|b{yR9C_5p>5^k4`O=RbRqXqtY;l8%u|zRme7{Md^7* z`ef4p-HqjoRH{!eE##^djhfT>I0L9IkpNUU=Kl{Bj%o7I0Yun~_gxy(Y;P_i#Ov9n z9sS}5l@ynuBc1=umA+>5}FHIkR>coBmWo+qBU z&O`*#0WF&EJErzAhcVXEPYP17rlmLGQmka2K-PQYC1{d2QHuF-2l~uyc7CwqoAt4aXt?`Ha z9zzNsz&i5~_$fD+Pf1&AbmxU{)GW97qkvk>d)a?#4oI5x&r1d*CJ#%#c#sJg#-{xJ+L

^Fa)|1Tc0PDNiS?w*mBeSbuk$|_%E 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 max_height: + img = img.resize((int(max_height * w_to_h_ratio), max_height), Image.Resampling.LANCZOS) + + if img.width > max_width: + img = img.resize((max_width, int(max_width * h_to_w_ratio)), Image.Resampling.LANCZOS) + + return img diff --git a/src/news_manager.py b/src/news_manager.py index cc65f357..a2f04a4e 100644 --- a/src/news_manager.py +++ b/src/news_manager.py @@ -1,15 +1,13 @@ -import time -import logging -import requests -import xml.etree.ElementTree as ET -import json -import random -from typing import Dict, Any, List, Tuple, Optional -from datetime import datetime, timedelta -import os -import urllib.parse -import re import html +import logging +import os +import re +import requests +import time +import xml.etree.ElementTree as ET +from typing import Dict, Any, List +from datetime import datetime +from src.image_utils import scale_to_max_dimensions from src.config_manager import ConfigManager from PIL import Image, ImageDraw, ImageFont from src.cache_manager import CacheManager @@ -37,10 +35,11 @@ class NewsManager: self.news_config = config.get('news_manager', {}) self.last_update = time.time() # Initialize to current time self.news_data = {} + self.favicons = {} self.current_headline_index = 0 self.scroll_position = 0 self.scrolling_image = None # Pre-rendered image for smooth scrolling - self.cached_text = None + self.cached_images = [] self.cache_manager = CacheManager() self.current_headlines = [] self.headline_start_times = [] @@ -101,6 +100,13 @@ class NewsManager: adapter = HTTPAdapter(max_retries=retry_strategy) self.session.mount("http://", adapter) self.session.mount("https://", adapter) + + try: + self.font = ImageFont.truetype(self.font_path, self.font_size) + logger.debug(f"Successfully loaded custom font: {self.font_path}") + except Exception as e: + logger.warning(f"Failed to load custom font '{self.font_path}': {e}. Using default font.") + self.font = ImageFont.load_default() logger.debug(f"NewsManager initialized with feeds: {self.enabled_feeds}") logger.debug(f"Headlines per feed: {self.headlines_per_feed}") @@ -112,7 +118,6 @@ class NewsManager: headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36' } - response = self.session.get(url, headers=headers, timeout=10) response.raise_for_status() @@ -156,6 +161,16 @@ class NewsManager: except Exception as e: logger.error(f"Error parsing RSS feed {feed_name} ({url}): {e}") return [] + + def load_favicon(self, feed_name): + try: + img_path = os.path.join('assets', 'news_logos', f"{feed_name.lower()}.png") + with Image.open(img_path) as img: + img = scale_to_max_dimensions(img, 32, int(self.display_manager.height * 0.8)).convert('RGBA') + self.favicons[feed_name] = img.copy() + except Exception as e: + logger.error(f"Error loading favicon for {feed_name}: {e}") + return def fetch_news_data(self): """Fetch news from all enabled feeds""" @@ -170,6 +185,7 @@ class NewsManager: url = all_feeds[feed_name] headlines = self.parse_rss_feed(url, feed_name) all_headlines.extend(headlines) + self.load_favicon(feed_name) else: logger.warning(f"Feed '{feed_name}' not found in available feeds") @@ -215,81 +231,96 @@ class NewsManager: # Create scrolling text with separators if display_headlines: - text_parts = [] + self.cached_images = [] for i, headline in enumerate(display_headlines): - feed_prefix = f"[{headline['feed']}] " - text_parts.append(feed_prefix + headline['title']) + favicon = self.favicons.get(headline['feed']) + + # Use backup separator and prefix if no logo for feed + separator = " • " if not favicon and i > 0 else '' + feed_prefix = f"[{headline['feed']}] " if not favicon else '' + text = separator + feed_prefix + headline['title'] + + # Calculate text width and X value + text_width = self._get_text_width(text, self.font) + headline_width = text_width + text_x_pos = 0 + if favicon: + text_x_pos = favicon.width + 16 + headline_width += text_x_pos + + # Draw Image + img = Image.new('RGB', (headline_width, self.display_manager.height), (0, 0, 0)) + draw = ImageDraw.Draw(img) + if favicon: + logo_x = 10 + logo_y = (self.display_manager.height - favicon.height) // 2 + img.paste(favicon, (logo_x, logo_y), favicon) - # Join with separators and add spacing - separator = " • " - self.cached_text = separator.join(text_parts) + " • " # Add separator at end for smooth loop + # Draw text + text_height = self.font_size + y_pos = (self.display_manager.height - text_height) // 2 + draw.text((text_x_pos, y_pos), text, font=self.font, fill=self.text_color) + + # Append to cached images for rendering in `create_scrolling_image()` + self.cached_images.append(img) + self.current_headlines = display_headlines + # Calculate text dimensions for perfect scrolling self.calculate_scroll_dimensions() self.create_scrolling_image() - self.current_headlines = display_headlines logger.debug(f"Prepared {len(display_headlines)} headlines for display") def calculate_scroll_dimensions(self): """Calculate exact dimensions needed for smooth scrolling""" - if not self.cached_text: + if not self.cached_images: return try: - # Load font - try: - font = ImageFont.truetype(self.font_path, self.font_size) - logger.debug(f"Successfully loaded custom font: {self.font_path}") - except Exception as e: - logger.warning(f"Failed to load custom font '{self.font_path}': {e}. Using default font.") - font = ImageFont.load_default() - - # Calculate text width - temp_img = Image.new('RGB', (1, 1)) - temp_draw = ImageDraw.Draw(temp_img) - - # Get text dimensions - bbox = temp_draw.textbbox((0, 0), self.cached_text, font=font) - text_width = bbox[2] - bbox[0] - # Add display width gap at the beginning (simulates blank screen) display_width = self.display_manager.width - self.total_scroll_width = display_width + text_width + self.total_scroll_width = display_width + for img in self.cached_images: + self.total_scroll_width += img.width # Calculate dynamic display duration self.calculate_dynamic_duration() - logger.debug(f"Text width calculated: {self.total_scroll_width} pixels") + logger.debug(f"Image width calculated: {self.total_scroll_width} pixels") logger.debug(f"Dynamic duration calculated: {self.dynamic_duration} seconds") except Exception as e: logger.error(f"Error calculating scroll dimensions: {e}") - self.total_scroll_width = len(self.cached_text) * 8 # Fallback estimate + self.total_scroll_width = sum(len(x['title']) for x in self.current_headlines) * 8 # Fallback estimate self.calculate_dynamic_duration() + def _get_text_width(self, text, font): + temp_img = Image.new('RGB', (1, 1)) + temp_draw = ImageDraw.Draw(temp_img) + + # Get text dimensions + bbox = temp_draw.textbbox((0, 0), text, font=font) + return bbox[2] - bbox[0] + + def create_scrolling_image(self): """Create a pre-rendered image for smooth scrolling.""" - if not self.cached_text: + if not self.cached_images: self.scrolling_image = None return - try: - font = ImageFont.truetype(self.font_path, self.font_size) - except Exception as e: - logger.warning(f"Failed to load custom font for pre-rendering: {e}. Using default.") - font = ImageFont.load_default() - height = self.display_manager.height width = self.total_scroll_width self.scrolling_image = Image.new('RGB', (width, height), (0, 0, 0)) - draw = ImageDraw.Draw(self.scrolling_image) - text_height = self.font_size - y_pos = (height - text_height) // 2 # Draw text starting after display width gap (simulates blank screen) - display_width = self.display_manager.width - draw.text((display_width, y_pos), self.cached_text, font=font, fill=self.text_color) + x_pos = self.display_manager.width + for img in self.cached_images: + # Render each cached image and advance the cursor by the width of the image + self.scrolling_image.paste(img, (x_pos, 0)) + x_pos += img.width + logger.debug("Pre-rendered scrolling news image created.") def calculate_dynamic_duration(self): @@ -405,22 +436,15 @@ class NewsManager: img = Image.new('RGB', (width, height), (0, 0, 0)) draw = ImageDraw.Draw(img) - try: - font = ImageFont.truetype(self.font_path, self.font_size) - logger.debug(f"Successfully loaded custom font: {self.font_path}") - except Exception as e: - logger.warning(f"Failed to load custom font '{self.font_path}': {e}. Using default font.") - font = ImageFont.load_default() - text = "Loading news..." - bbox = draw.textbbox((0, 0), text, font=font) + bbox = draw.textbbox((0, 0), text, font=self.font) text_width = bbox[2] - bbox[0] text_height = bbox[3] - bbox[1] x = (width - text_width) // 2 y = (height - text_height) // 2 - draw.text((x, y), text, font=font, fill=self.text_color) + draw.text((x, y), text, font=self.font, fill=self.text_color) return img def create_error_image(self, error_msg: str) -> Image.Image: @@ -431,22 +455,15 @@ class NewsManager: img = Image.new('RGB', (width, height), (0, 0, 0)) draw = ImageDraw.Draw(img) - try: - font = ImageFont.truetype(self.font_path, max(8, self.font_size - 2)) - logger.debug(f"Successfully loaded custom font: {self.font_path}") - except Exception as e: - logger.warning(f"Failed to load custom font '{self.font_path}': {e}. Using default font.") - font = ImageFont.load_default() - text = f"News Error: {error_msg[:50]}..." - bbox = draw.textbbox((0, 0), text, font=font) + bbox = draw.textbbox((0, 0), text, font=self.font) text_width = bbox[2] - bbox[0] text_height = bbox[3] - bbox[1] x = max(0, (width - text_width) // 2) y = (height - text_height) // 2 - draw.text((x, y), text, font=font, fill=(255, 0, 0)) + draw.text((x, y), text, font=self.font, fill=(255, 0, 0)) return img def display_news(self, force_clear: bool = False):