예제 #1
0
def handle_tiddler_div(bagname, tiddler_div, store):
    """
    Create a new Tiddler from a tiddler div, in beautifulsoup
    form.
    """
    new_tiddler = Tiddler(tiddler_div['title'], bag=bagname)

    try:
        new_tiddler.text = _html_decode(tiddler_div.find('pre').contents[0])
    except IndexError:
        # there are no contents in the tiddler
        new_tiddler.text = ''

    for attr, value in tiddler_div.attrs:
        data = tiddler_div.get(attr, None)
        if data and attr != 'tags':
            if attr in (['modifier', 'created', 'modified']):
                new_tiddler.__setattr__(attr, data)
            else:
                new_tiddler.fields[attr] = data
    new_tiddler.tags = _tag_string_to_list(tiddler_div.get('tags', ''))

    try:
        store.put(new_tiddler)
    except OSError, exc:
        # This tiddler has a name that we can't yet write to the
        # store. For now we just state the error and carry on.
        import sys
        print >> sys.stderr, 'Unable to write %s: %s' % (new_tiddler.title, exc)
def _get_tiddler_from_div(node):
    """
    Create a Tiddler from an HTML div element.
    """
    tiddler = Tiddler(node.getAttribute('title'))
    tiddler.text = _html_decode(_get_text(node.getElementsByTagName('pre')))

    for attr, value in node.attributes.items():
        data = value
        if data and attr != 'tags':
            if attr in (['modifier', 'created', 'modified']):
                tiddler.__setattr__(attr, data)
            elif (attr not in ['title', 'changecount'] and
                    not attr.startswith('server.')):
                tiddler.fields[attr] = data
    if not node.attributes.get('modified', None) and tiddler.created:
        tiddler.modified = tiddler.created
    tiddler.tags = string_to_tags_list(str(node.getAttribute('tags')))

    return tiddler
예제 #3
0
def _get_tiddler_from_div(node):
    """
    Create a Tiddler from an HTML div element.
    """
    tiddler = Tiddler(node.getAttribute('title'))
    tiddler.text = _html_decode(_get_text(node.getElementsByTagName('pre')))

    for attr, value in node.attributes.items():
        data = value
        if data and attr != 'tags':
            if attr in (['creator', 'modifier', 'created', 'modified']):
                tiddler.__setattr__(attr, data)
            elif (attr not in ['title', 'changecount']
                  and not attr.startswith('server.')):
                tiddler.fields[attr] = data
    if not node.attributes.get('modified', None) and tiddler.created:
        tiddler.modified = tiddler.created
    tiddler.tags = string_to_tags_list(node.getAttribute('tags'))

    return tiddler