diff --git a/plextraktsync/sync.py b/plextraktsync/sync.py index 8b895be78bb..406298e9bd3 100644 --- a/plextraktsync/sync.py +++ b/plextraktsync/sync.py @@ -1,5 +1,6 @@ from __future__ import annotations +import asyncio from typing import TYPE_CHECKING from plextraktsync.decorators.cached_property import cached_property @@ -133,17 +134,21 @@ async def sync(self, walker: Walker, dry_run=False): if self.config.need_library_walk: async for movie in walker.find_movies(): - await self.sync_collection(movie, dry_run=dry_run) - await self.sync_ratings(movie, dry_run=dry_run) - await self.sync_watched(movie, dry_run=dry_run) + await asyncio.gather(*[ + self.sync_collection(movie, dry_run=dry_run), + self.sync_ratings(movie, dry_run=dry_run), + self.sync_watched(movie, dry_run=dry_run), + ]) if not is_partial: listutil.addPlexItemToLists(movie) shows = set() async for episode in walker.find_episodes(): - await self.sync_collection(episode, dry_run=dry_run) - await self.sync_ratings(episode, dry_run=dry_run) - await self.sync_watched(episode, dry_run=dry_run) + await asyncio.gather(*[ + self.sync_collection(episode, dry_run=dry_run), + self.sync_ratings(episode, dry_run=dry_run), + self.sync_watched(episode, dry_run=dry_run), + ]) if not is_partial: listutil.addPlexItemToLists(episode) if self.config.sync_ratings: