Zine

open source content publishing system


Changeset 946:b12a04d25c3d


Ignore:
Timestamp:
01/10/09 22:32:12 (3 years ago)
Author:
mitsuhiko
Branch:
default
Message:

improved importing of ZXA feeds (importers import the correct
syntax instead of HTML now). This fixes #137.

Files:
3 edited

Legend:

Unmodified
Added
Removed
  • CHANGES

    r925 r946  
    2525  dropdown. 
    2626- fixed importing of ZXA feeds with tags. 
     27- improved importing of ZXA feeds (importers import the correct 
     28  syntax instead of HTML now) 
    2729- fixed wrong content type exporting in ZXA feeds. 
    2830- fixed bug in tag-cloud query.  Too many items were counted for 
  • zine/importers/__init__.py

    r910 r946  
    170170                    uid=old_post.uid) 
    171171        if old_post.parser_data is not None: 
    172             post.parser_data = old_post.parser_data 
     172            post.parser_data.clear() 
     173            post.parser_data.update(old_post.parser_data) 
    173174        yield u'<li><strong>%s</strong>' % escape(post.title) 
    174175 
  • zine/importers/feed.py

    r910 r946  
    3131 
    3232 
    33 def _get_text_content(elements): 
     33def _get_text_content(elements, fallback=True): 
    3434    """Return the text content from the best element match.""" 
    35     if not elements: 
    36         return u'' 
    3735    for element in elements: 
    3836        if element.attrib.get('type') == 'text': 
    3937            return element.text or u'' 
    40     for element in elements: 
    41         if element.attrib.get('type') == 'html': 
    42             return to_text(element) 
    43     return to_text(elements[0]) 
     38    if fallback: 
     39        if not elements: 
     40            return u'' 
     41        for element in elements: 
     42            if element.attrib.get('type') == 'html': 
     43                return to_text(element) 
     44        return to_text(elements[0]) 
    4445 
    4546 
     
    394395        if author is None: 
    395396            element = self._lookup_user(self._dependencies, 
    396                                         id=dependency)[0] 
     397                                        id=str(dependency))[0] 
    397398            author = Author( 
    398399                element.findtext(zine.username), 
     
    431432 
    432433    def postprocess_post(self, post): 
     434        post.parser_data = _parser_data(post.element.findtext(zine.parser_data)) 
     435        content = _get_text_content(post.element.findall(atom.content), 
     436                                    fallback=False) 
     437        if content is not None: 
     438            post.body = content 
    433439        content_type = post.element.findtext(zine.content_type) 
    434440        if content_type is not None: 
     
    455461            dependency = author.attrib.get('dependency') 
    456462            if dependency is not None: 
    457                 author = self._get_author(author) 
     463                author = self._get_author(dependency) 
    458464                email = www = None 
    459465            else: 
Note: See TracChangeset for help on using the changeset viewer.