fix(http): drop APIHelper's hand-set brotli encoding; LogoHelper sends the real UA

APIHelper advertised `br` though brotli isn't installed, so a server that
honoured it would send a body requests can't decode. LogoHelper sent a bare
`LEDMatrix-Common/1.0`, the kind of User-Agent ESPN has been rejecting.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Chuck
2026-09-22 17:18:22 -04:00
co-authored by Claude Opus 5.5
parent 2e849d7de7
commit 5fcdb5d1d6
4 changed files with 11 additions and 3 deletions
-1
View File
@@ -78,7 +78,6 @@ class APIHelper:
'User-Agent': USER_AGENT,
'Accept': 'application/json',
'Accept-Language': 'en-US,en;q=0.9',
'Accept-Encoding': 'gzip, deflate, br',
'Connection': 'keep-alive'
})
+2 -1
View File
@@ -12,6 +12,7 @@ from typing import Dict, List, Optional, Union
import requests
from PIL import Image
from src.common.api_helper import USER_AGENT
from src.common.permission_utils import (
ensure_directory_permissions,
get_assets_dir_mode,
@@ -104,7 +105,7 @@ class LogoHelper:
# Session for HTTP requests
self.session = requests.Session()
self.session.headers.update({
'User-Agent': 'LEDMatrix-Common/1.0',
'User-Agent': USER_AGENT,
'Accept': 'image/*',
})
+7
View File
@@ -33,6 +33,13 @@ class TestSharedHeaders:
def test_api_helper_sends_the_same_user_agent(self):
assert APIHelper().session.headers['User-Agent'] == USER_AGENT
def test_api_helper_does_not_hand_set_brotli(self):
assert 'br' not in APIHelper().session.headers.get('Accept-Encoding', '')
def test_logo_helper_sends_the_same_user_agent(self):
from src.common.logo_helper import LogoHelper
assert LogoHelper(display_width=64, display_height=32).session.headers['User-Agent'] == USER_AGENT
class TestLogoDownloaderHeaders:
def test_uses_the_shared_headers(self):
+2 -1
View File
@@ -424,7 +424,8 @@ class TestPlaceholderLogo:
class TestSessionConfiguration:
def test_user_agent_and_accept_headers(self, helper):
assert helper.session.headers["User-Agent"] == "LEDMatrix-Common/1.0"
from src.common.api_helper import USER_AGENT
assert helper.session.headers["User-Agent"] == USER_AGENT
assert helper.session.headers["Accept"] == "image/*"