git.fiddlerwoaroof.com
Raw Blame History
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')])
		print b[0], type(b[0])

		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]
		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)
		return bytes(result.encode('utf-8'))