From 5aa8e47ddf353bc34510a3f5fc405de3166522c9 Mon Sep 17 00:00:00 2001 From: aj Date: Tue, 9 Jul 2019 11:01:32 +0100 Subject: [PATCH] added random sample, changed to f strings --- generateplaylists.py | 6 +++--- spotframework/engine/filter/addedbefore.py | 2 +- spotframework/engine/filter/addedsince.py | 2 +- spotframework/engine/filter/randomsample.py | 17 +++++++++++++++++ spotframework/engine/playlistengine.py | 6 +++--- 5 files changed, 25 insertions(+), 8 deletions(-) create mode 100644 spotframework/engine/filter/randomsample.py diff --git a/generateplaylists.py b/generateplaylists.py index 368010a..e952d09 100644 --- a/generateplaylists.py +++ b/generateplaylists.py @@ -121,10 +121,10 @@ def go(): requests.post(os.environ['SLACKHOOK'], json={"text": "spot playlists: config json not found"}) log.dump_log() - except: - log.log("exception occured") + except Exception as e: + log.log("exception occured", e) if 'SLACKHOOK' in os.environ: - requests.post(os.environ['SLACKHOOK'], json={"text": "spot playlists: exception occured"}) + requests.post(os.environ['SLACKHOOK'], json={"text": f"spot playlists: exception occured {e}"}) log.dump_log() diff --git a/spotframework/engine/filter/addedbefore.py b/spotframework/engine/filter/addedbefore.py index 1118a3b..2898a55 100644 --- a/spotframework/engine/filter/addedbefore.py +++ b/spotframework/engine/filter/addedbefore.py @@ -5,7 +5,7 @@ import datetime class AddedBefore(AbstractProcessor): def __init__(self, boundary, names=[]): - self.playlist_names = names + super().__init__(names) self.boundary = boundary def check_date(self, track): diff --git a/spotframework/engine/filter/addedsince.py b/spotframework/engine/filter/addedsince.py index b1ebb0d..3eec831 100644 --- a/spotframework/engine/filter/addedsince.py +++ b/spotframework/engine/filter/addedsince.py @@ -5,7 +5,7 @@ import datetime class AddedSince(AbstractProcessor): def __init__(self, boundary, names=[]): - self.playlist_names = names + super().__init__(names) self.boundary = boundary def check_date(self, track): diff --git a/spotframework/engine/filter/randomsample.py b/spotframework/engine/filter/randomsample.py new file mode 100644 index 0000000..c604e6c --- /dev/null +++ b/spotframework/engine/filter/randomsample.py @@ -0,0 +1,17 @@ +from .abstractprocessor import AbstractProcessor + +import random + + +class RandomSample(AbstractProcessor): + + def __init__(self, sample_size, names=[]): + super().__init__(names) + self.sample_size = sample_size + + def process(self, tracks): + + return_tracks = list(tracks) + random.shuffle(return_tracks) + + return return_tracks[:self.sample_size] diff --git a/spotframework/engine/playlistengine.py b/spotframework/engine/playlistengine.py index 048cc90..6848f5f 100644 --- a/spotframework/engine/playlistengine.py +++ b/spotframework/engine/playlistengine.py @@ -20,7 +20,7 @@ class PlaylistEngine: self.playlists += self.net.get_user_playlists() def get_playlist_tracks(self, playlist): - log.log("pulling tracks for {}".format(playlist.name)) + log.log(f"pulling tracks for {playlist.name}") playlist.tracks = self.net.get_playlist_tracks(playlist.playlistid) def make_playlist(self, playlist_parts, processors=[]): @@ -44,9 +44,9 @@ class PlaylistEngine: tracks += [i for i in playlist_tracks if i['is_local'] is False] else: - log.log("requested playlist {} not found".format(part)) + log.log(f"requested playlist {part} not found") if 'SLACKHOOK' in os.environ: - requests.post(os.environ['SLACKHOOK'], json={"text": "spot playlists: {} not found".format(part)}) + requests.post(os.environ['SLACKHOOK'], json={"text": f"spot playlists: {part} not found"}) for processor in [i for i in processors if len(i.playlist_names) <= 0]: tracks = processor.process(tracks)