diff options
author | substantialnoninfringinguser <substantialnoninfringinguser@gmail.com> | 2009-05-13 05:30:04 +0100 |
---|---|---|
committer | substantialnoninfringinguser <substantialnoninfringinguser@gmail.com> | 2009-05-13 05:30:04 +0100 |
commit | 5e5985376afb2ab6d7bfc6a2bd7d9172f962454e (patch) | |
tree | 90a17b63a2cef1c1851459f7b01b07a3ca15e2cd | |
parent | 1190c54e13a9e08a98c2f14f6866d86806a6d5f8 (diff) | |
download | troggle-5e5985376afb2ab6d7bfc6a2bd7d9172f962454e.tar.gz troggle-5e5985376afb2ab6d7bfc6a2bd7d9172f962454e.tar.bz2 troggle-5e5985376afb2ab6d7bfc6a2bd7d9172f962454e.zip |
[svn] randomLogbookSentance.py renamed to randSent.py, and expanded
Copied from http://cucc@cucc.survex.com/svn/trunk/expoweb/troggle/, rev. 8159 by aaron @ 1/16/2009 2:40 AM
-rw-r--r-- | expo/randSent.py | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/expo/randSent.py b/expo/randSent.py new file mode 100644 index 0000000..5cdc66f --- /dev/null +++ b/expo/randSent.py @@ -0,0 +1,30 @@ +import troggle.settings as settings
+from django import forms
+from expo.models import LogbookEntry
+import random
+import re
+
+def weighted_choice(lst):
+ n = random.uniform(0,1)
+ for item, weight in lst:
+ if n < weight:
+ break
+ n = n - weight
+ return item
+
+def randomLogbookSentence():
+ randSent={}
+
+ #Choose a random logbook entry
+ randSent['entry']=LogbookEntry.objects.order_by('?')[0]
+
+ #Choose again if there are no sentances (this happens if it is a placeholder entry)
+ while len(re.findall('[A-Z].*?\.',randSent['entry'].text))==0:
+ randSent['entry']=LogbookEntry.objects.order_by('?')[0]
+
+ #Choose a random sentence from that entry. Store the sentence as randSent['sentence'], and the number of that sentence in the entry as randSent['number']
+ sentenceList=re.findall('[A-Z].*?\.',randSent['entry'].text)
+ randSent['number']=random.randrange(0,len(sentenceList))
+ randSent['sentence']=sentenceList[randSent['number']]
+
+ return randSent
|