:param limit: Maximum number of items to return.
:param offset: Number of items to skip.
:param order_by: Order by field (e.g. 'sort_name', 'timestamp_added').
- :param provider: Filter by provider instance ID or domain (single string or list).
+ :param provider: Filter by provider instance ID (single string or list).
:param extra_query: Additional SQL query string.
:param extra_query_params: Additional query parameters.
:param album_types: Filter by album types.
:param limit: Maximum number of items to return.
:param offset: Number of items to skip.
:param order_by: Order by field (e.g. 'sort_name', 'timestamp_added').
- :param provider: Filter by provider instance ID or domain (single string or list).
+ :param provider: Filter by provider instance ID (single string or list).
:param extra_query: Additional SQL query string.
:param extra_query_params: Additional query parameters.
:param album_artists_only: Only return artists that have albums.
:param limit: Maximum number of items to return.
:param offset: Number of items to skip.
:param order_by: Order by field (e.g. 'sort_name', 'timestamp_added').
- :param provider: Filter by provider instance ID or domain (single string or list).
+ :param provider: Filter by provider instance ID (single string or list).
:param extra_query: Additional SQL query string.
:param extra_query_params: Additional query parameters.
"""
if provider_filter:
provider_conditions = []
for prov in provider_filter:
- provider_conditions.append(
- f"provider_mappings.provider_instance = '{prov}' "
- f"OR provider_mappings.provider_domain = '{prov}'"
- )
+ provider_conditions.append(f"provider_mappings.provider_instance = '{prov}'")
join_parts.append(
f"JOIN provider_mappings ON provider_mappings.item_id = {self.db_table}.item_id "
f"AND provider_mappings.media_type = '{self.media_type.value}' "
:param limit: Maximum number of items to return.
:param offset: Number of items to skip.
:param order_by: Order by field (e.g. 'sort_name', 'timestamp_added').
- :param provider: Filter by provider instance ID or domain (single string or list).
+ :param provider: Filter by provider instance ID (single string or list).
:param extra_query: Additional SQL query string.
:param extra_query_params: Additional query parameters.
"""
:param limit: Maximum number of items to return.
:param offset: Number of items to skip.
:param order_by: Order by field (e.g. 'sort_name', 'timestamp_added').
- :param provider: Filter by provider instance ID or domain (single string or list).
+ :param provider: Filter by provider instance ID (single string or list).
:param extra_query: Additional SQL query string.
:param extra_query_params: Additional query parameters.
"""
for prov_instance in provider_instances:
if prov_instance.instance_id == provider.instance_id:
continue
+ if any(
+ pm.provider_instance == prov_instance.instance_id
+ for pm in item.provider_mappings
+ ):
+ # mapping already exists
+ continue
# create additional mapping for other provider instances of the same provider
item.provider_mappings.add(
ProviderMapping(
audio_format=provider_mapping.audio_format,
url=provider_mapping.url,
details=provider_mapping.details,
- in_library=provider_mapping.in_library,
+ in_library=None,
)
)