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'))