mirror of
https://github.com/ChuckBuilds/LEDMatrix.git
synced 2026-10-10 17:16:36 +00:00
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:
@@ -78,7 +78,6 @@ class APIHelper:
|
|||||||
'User-Agent': USER_AGENT,
|
'User-Agent': USER_AGENT,
|
||||||
'Accept': 'application/json',
|
'Accept': 'application/json',
|
||||||
'Accept-Language': 'en-US,en;q=0.9',
|
'Accept-Language': 'en-US,en;q=0.9',
|
||||||
'Accept-Encoding': 'gzip, deflate, br',
|
|
||||||
'Connection': 'keep-alive'
|
'Connection': 'keep-alive'
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ from typing import Dict, List, Optional, Union
|
|||||||
|
|
||||||
import requests
|
import requests
|
||||||
from PIL import Image
|
from PIL import Image
|
||||||
|
from src.common.api_helper import USER_AGENT
|
||||||
from src.common.permission_utils import (
|
from src.common.permission_utils import (
|
||||||
ensure_directory_permissions,
|
ensure_directory_permissions,
|
||||||
get_assets_dir_mode,
|
get_assets_dir_mode,
|
||||||
@@ -104,7 +105,7 @@ class LogoHelper:
|
|||||||
# Session for HTTP requests
|
# Session for HTTP requests
|
||||||
self.session = requests.Session()
|
self.session = requests.Session()
|
||||||
self.session.headers.update({
|
self.session.headers.update({
|
||||||
'User-Agent': 'LEDMatrix-Common/1.0',
|
'User-Agent': USER_AGENT,
|
||||||
'Accept': 'image/*',
|
'Accept': 'image/*',
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@@ -33,6 +33,13 @@ class TestSharedHeaders:
|
|||||||
def test_api_helper_sends_the_same_user_agent(self):
|
def test_api_helper_sends_the_same_user_agent(self):
|
||||||
assert APIHelper().session.headers['User-Agent'] == USER_AGENT
|
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:
|
class TestLogoDownloaderHeaders:
|
||||||
def test_uses_the_shared_headers(self):
|
def test_uses_the_shared_headers(self):
|
||||||
|
|||||||
@@ -424,7 +424,8 @@ class TestPlaceholderLogo:
|
|||||||
|
|
||||||
class TestSessionConfiguration:
|
class TestSessionConfiguration:
|
||||||
def test_user_agent_and_accept_headers(self, helper):
|
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/*"
|
assert helper.session.headers["Accept"] == "image/*"
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user