From 204ad6c5ff4dd9973fe517e4447120faebc30019 Mon Sep 17 00:00:00 2001
From: ale <ale@incal.net>
Date: Wed, 3 Aug 2011 10:50:57 +0100
Subject: [PATCH] generate full sequences; fix padding error in tuple
 generation

---
 server/djrandom/model/markov.py | 11 +++++++++++
 server/djrandom/model/mp3.py    |  2 +-
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/server/djrandom/model/markov.py b/server/djrandom/model/markov.py
index baaeb33..ac2f7da 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 91f280d..0e570ab 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)
-- 
GitLab