diff --git a/server/djrandom/model/markov.py b/server/djrandom/model/markov.py index baaeb33dd491e492ed7d25bd47601741971aefcf..ac2f7da58ac770993fdb9dee8309e16d435653bf 100644 --- a/server/djrandom/model/markov.py +++ b/server/djrandom/model/markov.py @@ -79,6 +79,17 @@ class MarkovModel(object): if off > r: return self._i2hash[value] + def generate_sequence(self, prev, n, count): + if len(prev) < n: + prev = ([None] * (n - len(prev))) + prev + out = [] + for i in xrange(count): + song = self.suggest(prev) + prev.pop(0) + prev.append(song) + out.append(song) + return out + def main(): parser = optparse.OptionParser() diff --git a/server/djrandom/model/mp3.py b/server/djrandom/model/mp3.py index 91f280dd5fb5e2c963f28d05a2cf5827947cc205..0e570ab3bbe4369a7ca649c5192de94f6962c738 100644 --- a/server/djrandom/model/mp3.py +++ b/server/djrandom/model/mp3.py @@ -58,7 +58,7 @@ class PlayLog(Base): if plog.prev: hashes = plog.prev.split(',')[:n] if len(hashes) < n: - hashes.extend([None] * (n - len(hashes))) + hashes = ([None] * (n - len(hashes))) + hashes else: hashes = [None] * n yield (plog.sha1, hashes)