forked from expo/troggle
5e5985376a
Copied from http://cucc@cucc.survex.com/svn/trunk/expoweb/troggle/, rev. 8159 by aaron @ 1/16/2009 2:40 AM
31 lines
1.0 KiB
Python
31 lines
1.0 KiB
Python
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
|