def __init__(self, id, message, user=Ellipsis): self.message = parse_zeml(message, 'system') self.id = id self.sent_date = datetime.utcnow() if user is Ellipsis: self.user = get_request().user else: self.user = user
def parse(self, input_data, reason): intro_t, body_t = htmlize_markup(input_data, reason) intro = sanitize(parse_zeml(intro_t)) body = sanitize(parse_zeml(body_t)) # The following complicated procedure is required only because # Zine provides no way to cast RootElement objects (which `intro` # and `body` are) into Element objects (which `intro` needs to become) if intro_t: newintro = Element('intro') newintro.children.extend(intro.children) newintro.text = intro.text for child in newintro.children: child.parent = newintro body.children.insert(0, newintro) newintro.parent = body newintro.tail = body.text body.text = u'' return body
def parse(self, input_data, reason): rv = parse_zeml(input_data, reason, self.app.markup_extensions) if reason == 'comment': rv = sanitize(rv) return rv
depart_pre = depart_sourcecode def visit_a(self, element): self.curpar.append('`') def depart_a(self, element): if 'href' not in element.attributes: return self.curpar.append(' <%s>`_' % element.attributes['href']) def to_rst(zeml): return RSTTextifier(ignore_relative_urls=False).multiline(zeml) engine = create_engine('postgresql:///lucumr', convert_unicode=True) results = [] for item in engine.execute('select post_id, slug, title, text from posts'): filename = os.path.join('dumps', item.slug.strip('/') + '.rst') try: os.makedirs(os.path.dirname(filename)) except OSError: pass zeml = parse_zeml('<h1>%s</h1>%s' % (item.title, item.text), 'text') open(filename, 'w').write(to_rst(zeml).encode('utf-8')) results.append((filename, engine.execute('select count(*) from comments where post_id = %d and status != 3' % item.post_id).fetchone()[0])) results.sort(key=lambda x: x[1]) for filename, comments in results: print '%-10d %s' % (comments, filename)
def parse(self, input_data, reason): rv = parse_zeml(input_data, self.app.zeml_element_handlers) if reason == 'comment': rv = sanitize(rv) return rv