lesmianator back on main
[wolnelektury.git] / apps / lesmianator / views.py
index 231ab5c..8936772 100644 (file)
@@ -1,6 +1,6 @@
 # Create your views here.
 
 # Create your views here.
 
-import pickle
+import cPickle
 from django.shortcuts import render_to_response
 from django.template import RequestContext
 from random import randint
 from django.shortcuts import render_to_response
 from django.template import RequestContext
 from random import randint
@@ -23,7 +23,7 @@ def _choose_word(word):
 # load dictionary on start, it won't change
 try:
     f = open(os.path.join(os.path.dirname(__file__), 'dictionary.p'))
 # load dictionary on start, it won't change
 try:
     f = open(os.path.join(os.path.dirname(__file__), 'dictionary.p'))
-    _dictionary = pickle.load(f)
+    _dictionary = cPickle.load(f)
 except:
     _dictionary = {}
 
 except:
     _dictionary = {}
 
@@ -33,14 +33,22 @@ def poem(request):
     word = u''
     empty = -10
     left = 1000
     word = u''
     empty = -10
     left = 1000
+    lines = 0
     if not _dictionary:
         left = 0
     if not _dictionary:
         left = 0
-    while empty != 3 and left:
+    # want at least two lines, but let Lesmianator end his stanzas
+    while (empty < 2 or lines < 2) and left:
         letter = _choose_word(word)
         letters.append(letter)
         word = word[-2:] + letter
         if letter == u'\n':
         letter = _choose_word(word)
         letters.append(letter)
         word = word[-2:] + letter
         if letter == u'\n':
-            empty += 1
+            # count non-empty lines
+            if empty == 0:
+                lines += 1
+            # 
+            if lines >= 2:
+                empty += 1
+            lines += 1
         else:
             empty = 0
         left -= 1
         else:
             empty = 0
         left -= 1