changeset 41:d4522af2c6e5

refactor
author Jeff Hammel <jhammel@mozilla.com>
date Sat, 28 Dec 2013 12:56:06 -0800
parents cb1d21648588
children 871c040668c0
files bitsyauth/dictionary.py example/persona.html
diffstat 2 files changed, 33 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bitsyauth/dictionary.py	Sat Dec 28 12:56:06 2013 -0800
@@ -0,0 +1,29 @@
+import random
+
+class Dictionary(object):
+    def __init__(self, dictionary_file='/usr/share/dict/american-english'):
+        self.dictionary_file = dictionary_file
+        with open(dictionary_file) as f:
+            self.wordlist = []
+            for line in f:
+                line = line.strip()
+                if not line or not line.isalpha():
+                    continue
+                line = line.lower()
+                self.wordlist.append(line)
+            self.wordlist = tuple(self.wordlist)
+        self._min_lengths = {}
+
+    def random_word(self, min_length=5):
+        """
+        choose random word
+
+        min_length -- minimum word length
+        """
+
+        if min_length not in self._min_lengths:
+            # cache
+            self._min_lengths[min_lengths] = [i for i in self.wordlist
+                                              if len(i) > min_length]
+        return random.Random().choice(self._min_lengths[min_length])
+
--- a/example/persona.html	Fri Dec 27 20:13:04 2013 -0800
+++ b/example/persona.html	Sat Dec 28 12:56:06 2013 -0800
@@ -47,11 +47,13 @@
   }
 });
 
+
 var signinLink = document.getElementById('signin');
 if (signinLink) {
-signinLink.onclick = function() { navigator.id.request();
+signinLink.onclick = function() {
+navigator.id.request();
 nclicks += 1;
-$('clickcounter').append('<li>This is click ' + nclicks + '</li>');
+$('#clickcounter').append('<li>This is click ' + nclicks + '</li>');
 };
 }