CONF_ENABLE_PODCASTS,
CONF_NEW_ALBUMS,
CONF_OVERRIDE_OFFSET,
+ CONF_PAGE_SIZE,
CONF_PLAYED_ALBUMS,
CONF_RECO_FAVES,
CONF_RECO_SIZE,
description="How many recommendations from each enabled type should be included.",
default_value=10,
),
+ ConfigEntry(
+ key=CONF_PAGE_SIZE,
+ type=ConfigEntryType.INTEGER,
+ label="Number of items included per server request.",
+ required=True,
+ description="When enumerating items from the server, how many should be in each "
+ "request. Smaller will require more requests but is better for low bandwidth "
+ "connections. The Open Subsonic spec says the max value for this is 500 items.",
+ default_value=200,
+ category="advanced",
+ ),
)
CONF_NEW_ALBUMS = "recommend_new"
CONF_PLAYED_ALBUMS = "recommend_played"
CONF_RECO_SIZE = "recommendation_count"
+CONF_PAGE_SIZE = "pagination_size"
CACHE_CATEGORY_PODCAST_CHANNEL = 1
CACHE_CATEGORY_PODCAST_EPISODES = 2
_show_new: bool = True
_show_played: bool = True
_reco_limit: int = 10
+ _pagination_size: int = 200
async def handle_async_init(self) -> None:
"""Set up the music provider and test the connection."""
self._show_new = bool(self.config.get_value(CONF_NEW_ALBUMS))
self._show_played = bool(self.config.get_value(CONF_PLAYED_ALBUMS))
self._reco_limit = int(str(self.config.get_value(CONF_RECO_SIZE)))
+ self._pagination_size = int(str(self.config.get_value(CONF_PAGE_SIZE)))
+ self._pagination_size = min(self._pagination_size, 500)
@property
def is_streaming_provider(self) -> bool:
returning 500 items per invocation.
"""
offset = 0
- size = 500
+ size = self._pagination_size
albums = await self._run_async(
self.conn.get_album_list2,
ltype="alphabeticalByArtist",
"""
query = ""
offset = 0
- count = 500
+ count = self._pagination_size
try:
results = await self._run_async(
self.conn.search3,