#bot.py
import cPickle
from random import randint as rint
print 'Init.'
with open('db','r') as f:
db = cPickle.load(f)
print 'Init\'ed db.'
if __name__ == "__main__":
word = 'lolol'
length = 10
i = 0
sentence = word + ' '
lastword = word
while i != length:
print 'word: ' +str(word)
row = db[word]
max = row['blahblahmax']
while word == lastword:
for w in row:
if w != 'blahblahmax' and w!= '' and w!=word:
if ((row[w] == max and rint(0,50) <40) or rint(0,40) < 1):
word = w
sentence += word + ' '
lastword = word
i += 1
print sentence
#createdb.py
import cPickle
with open('#xkcd.log','r') as f:
db = { }
curLine = 0
for line in f:
curLine += 1
if curLine%100 == 0:
print '100 lines done. Now at '+ str(curLine)
if curLine == 1000000:
break;
if not line.count('<reply>') and not line.count('<action>') \
and not line.count('bucket') and not line.count('-!-') and \
line.count('>'):
msg = line.split('>',1)[1]
if msg.count(':')>0:
msg = msg.split(':',1)[1]
msg = msg.lower()
for i in '":!.,?\'\\/=+-)(*&^%$#@`~|][{}<>;\r\n':
msg = msg.replace(i,' ')
while msg.count(' ')>0:
msg = msg.replace(' ',' ')
words = msg.split(' ')
for i in range(0,len(words)-1):
word = words[i]
prevword = words[i+1]
if word not in db:
db[word] = { 'blahblahmax' : 0}
if prevword not in db[word]:
db[word][prevword] = 0
db[word][prevword] += 1
if db[word][prevword]>db[word]['blahblahmax']:
db[word]['blahblahmax'] = db[word][prevword]
with open('db','w') as f:
cPickle.dump(db,f)