git.fiddlerwoaroof.com
text_server.py
be9b2e82
 from twisted.internet import defer, threads
 from twisted.internet import reactor
 from twisted.web import static, server
 import twisted.python.log
 import time
 import datetime
 import os
 import os.path
 import stat
 import twisted.web.resource
 import collections
 import random
 import json
 
 def load_data(fil):
 	data = fil.read().split('---')
 	if data[0].startswith('T:'):
 		title, _, data[0] = data[0].partition('\n')
 		title = title[2:]
 	out = []
 	for chunk in data:
 		a,b = chunk.split('--')
 		a = filter(None, [x.strip() for x in a.split('\n\n')])
 		b = filter(None, [x.strip() for x in b.split('\n\n')])
c8cd57a1
 		print b[0], type(b[0])
be9b2e82
 
 		name = ''
 		if a[0].startswith('#'):
 			name = a[0][1:]
 			a.pop(0)
 
 		out.append(dict(name=name, orig=a, comment=b))
 	return title, out
 
 class ChunkResource(twisted.web.resource.Resource):
 
 	def __init__(self, collection):
 		twisted.web.resource.Resource.__init__(self)
 		self.data_store = collection
 
 	def load_data(self, name, fil):
 		title, out = load_data(fil)
 		self.data_store.insert(dict(title=title, content=out))
 
 	isLeaf = True
 
 	def render_GET(self, request):
 		idx = request.postpath[0]
c8cd57a1
 		data = self.data_store.find(idx)
 		title, cont = data
 		title = title.decode('utf-8')
 		cont = cont.decode('utf-8')
 		result = u'var text_title = "%s", objs = %s' % (title, cont)
be9b2e82
 		return bytes(result.encode('utf-8'))