From 11a02332b67ead330a940d9485e7ca6cc4c9167e Mon Sep 17 00:00:00 2001
From: ale <ale@ks.incal.net>
Date: Mon, 1 Aug 2011 15:17:29 +0200
Subject: [PATCH] a few fixes

---
 server/djrandom/model/markov.py | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/server/djrandom/model/markov.py b/server/djrandom/model/markov.py
index bc95601..8bc7ff7 100644
--- a/server/djrandom/model/markov.py
+++ b/server/djrandom/model/markov.py
@@ -14,18 +14,20 @@ log = logging.getLogger(__name__)
 class MarkovModel(object):
 
     def __init__(self):
-        self._hash2i = {}
-        self._i2hash = []
+        self._hash2i = {'nil': 0}
+        self._i2hash = ['nil']
         self._map = {}
         self._rnd = random.Random()
 
     def _to_i(self, sha1):
+        if sha1 is None:
+            sha1 = 'nil'
         if sha1 not in self._hash2i:
             n = len(self._i2hash)
             self._i2hash.append(sha1)
             self._hash2i[sha1] = n
         else:
-            n = self._i2hash[sha1]
+            n = self._hash2i[sha1]
         return n
 
     def save(self, filename):
@@ -73,6 +75,7 @@ class MarkovModel(object):
 def main():
     parser = optparse.OptionParser()
     parser.add_option('--db_url')
+    parser.add_option('--output', default='markov.dat')
     utils.read_config_defaults(
         parser, os.getenv('DJRANDOM_CONF', '/etc/djrandom.conf'))
     opts, args = parser.parse_args()
@@ -86,7 +89,10 @@ def main():
     markov_model = MarkovModel()
     markov_model.create(PlayLog.generate_tuples())
     markov_model.normalize()
-    markov_model.save('markov.dat')
+    markov_model.save(opts.output)
+
+    from pprint import pprint
+    pprint(markov_model._map)
 
 
 if __name__ == '__main__':
-- 
GitLab