예제 #1
0
 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
예제 #2
0
 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
예제 #3
0
 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
예제 #4
0
파일: parsers.py 프로젝트: peicheng/zine
 def parse(self, input_data, reason):
     rv = parse_zeml(input_data, reason, self.app.markup_extensions)
     if reason == 'comment':
         rv = sanitize(rv)
     return rv
예제 #5
0
    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)
예제 #6
0
파일: parsers.py 프로젝트: jace/zine-main
 def parse(self, input_data, reason):
     rv = parse_zeml(input_data, self.app.zeml_element_handlers)
     if reason == 'comment':
         rv = sanitize(rv)
     return rv
예제 #7
0
 def parse(self, input_data, reason):
     rv = parse_zeml(input_data, reason, self.app.markup_extensions)
     if reason == 'comment':
         rv = sanitize(rv)
     return rv