diff --git a/backend/moonstreamapi/providers/__init__.py b/backend/moonstreamapi/providers/__init__.py index f884fe1b..7d665a55 100644 --- a/backend/moonstreamapi/providers/__init__.py +++ b/backend/moonstreamapi/providers/__init__.py @@ -74,7 +74,14 @@ def get_events( with ThreadPoolExecutor( max_workers=max_threads, thread_name_prefix="event_providers_" ) as executor: - for provider_name, provider in event_providers.items(): + # Filter our not queried event_types + event_providers_filtered = { + key: value + for (key, value) in event_providers.items() + if value.event_type in query.subscription_types + } + + for provider_name, provider in event_providers_filtered.items(): futures[provider_name] = executor.submit( provider.get_events, db_session, @@ -132,7 +139,14 @@ def latest_events( with ThreadPoolExecutor( max_workers=max_threads, thread_name_prefix="event_providers_" ) as executor: - for provider_name, provider in event_providers.items(): + # Filter our not queried event_types + event_providers_filtered = { + key: value + for (key, value) in event_providers.items() + if value.event_type in query.subscription_types + } + + for provider_name, provider in event_providers_filtered.items(): futures[provider_name] = executor.submit( provider.latest_events, db_session, @@ -157,7 +171,6 @@ def latest_events( ) else: raise ReceivingEventsException(e) - events = [event for event_list in results.values() for event in event_list] if sort_events: events.sort(key=lambda event: event.event_timestamp, reverse=True) @@ -185,7 +198,14 @@ def next_event( with ThreadPoolExecutor( max_workers=max_threads, thread_name_prefix="event_providers_" ) as executor: - for provider_name, provider in event_providers.items(): + # Filter our not queried event_types + event_providers_filtered = { + key: value + for (key, value) in event_providers.items() + if value.event_type in query.subscription_types + } + + for provider_name, provider in event_providers_filtered.items(): futures[provider_name] = executor.submit( provider.next_event, db_session, @@ -241,7 +261,14 @@ def previous_event( with ThreadPoolExecutor( max_workers=max_threads, thread_name_prefix="event_providers_" ) as executor: - for provider_name, provider in event_providers.items(): + # Filter our not queried event_types + event_providers_filtered = { + key: value + for (key, value) in event_providers.items() + if value.event_type in query.subscription_types + } + + for provider_name, provider in event_providers_filtered.items(): futures[provider_name] = executor.submit( provider.previous_event, db_session,