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