Performance optimization / refactoring (#43)
This replaces #36 and adds some other fixes! Execution speed should be much faster now, especially when there are not many changes to synchronize. * Maintain track cache between different playlists (thanks to @joshrmcdaniel for amazing work on that!) * Fix incorrect tidal_playlist_is_dirty() implementation * Remove more redundant API calls * Avoid unnecessarily spinning up tasks for tracks that were in match failure cache * Introduce new rate_limit configuration parameter implemented with leaky bucket rate-limiting algorithm * Where possible, add new tracks to existing playlist instead of erasing the old ones * Use asyncio multithreading instead of multiprocessing * When user has large number of spotify playlists, fetch them in parallel instead of one by one * More typing hints / typing fixes
This commit is contained in:
@@ -27,11 +27,11 @@ def main():
|
||||
_sync.sync_list(spotify_session, tidal_session, [tidal_playlist], config)
|
||||
elif config.get('sync_playlists', None):
|
||||
# if the config contains a sync_playlists list of mappings then use that
|
||||
_sync.sync_list(spotify_session, tidal_session, _sync.get_playlists_from_config(config), config)
|
||||
_sync.sync_list(spotify_session, tidal_session, _sync.get_playlists_from_config(spotify_session, tidal_session, config), config)
|
||||
else:
|
||||
# otherwise just use the user playlists in the Spotify account
|
||||
_sync.sync_list(spotify_session, tidal_session, _sync.get_user_playlist_mappings(spotify_session, tidal_session, config), config)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
sys.exit(0)
|
||||
sys.exit(0)
|
||||
|
||||
Reference in New Issue
Block a user