Releases: ATawzer/Storm-Old
Releases · ATawzer/Storm-Old
Cleaning and Preparation
Refined the logging and documentation for the project. Type hinting was added to all classes except runner.py, which is intended on being removed in a future version. Logging replaced print statements and console loading bars for a cleaner running experience. New methods added for retrieving the audio analysis of tracks.
MySQL storm_analytics Update
- Adds in a storm_analytics DB into the process for examination and eventually ML. This will require a user to setup both a MongoDB and a MySQL database to process the storm fully. In a future release these will be optional components
- Playlist History view for monitoring playlist evolution
- Playlist Info for seeing current information about playlists
- Run history view for seeing storm runs and their performance
- Track info view for seeing track information
- storm_analytics pipeline created via the StormAnalyticsController class, which leverages the logic of the StormViewGenerator class to move and aggregate data from MongoDB to MySQL database for reporting (and ML planned for v2.2.0)
- analytics_pipeline will now fire after all storm runs are complete if called from Storm
Backend Implementation
- Moves entirely away from CSV and fixed file, entire storm runs from a mongodb backend which updates per storm run
- Storms now run from MongoDB documents specifying configuration parameters (dynamic time windows)
- Storm and User clients separated so non-authorized operations can occur without needing a user
- Database, client and running operations split to allow for easier code maintenance
- Blacklist support added directly into spotify as a playlist for easy artist filtering
Track Filtering patch
- Due to large track numbers by default assumes the user only wants new releases in date window
- Adds the ability to specify when to acquire all unseen tracks or just new releases
- If track amount exceeds 10,000 will automatically filter the tracks before writing
Base Release
The Storm is full functioning on a set of manually specified input and output playlists.