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
735 B
735 B