Beispiel #1
0
    def generate_resource_id(self, entry=None, slug=None, info=None):
        if slug:
            return slug.replace(" ", "_").decode("utf-8")
        else:
            # if not then we use the last segment of the
            # link as the id of the resource in the storage
            links = entry.xml_xpath('/atom:entry/atom:link[@rel="edit"]')
            if links:
                return extract_url_trail(links[0].href)

        # fallback
        return str(time.time())
Beispiel #2
0
    def make_entry(self, msg, node):
        uuid = generate_uuid_uri()
        entry = E.load('./entry.atom').xml_root
        entry.get_child('id', ns=entry.xml_ns).xml_text =  uuid
        dt = get_isodate()
        entry.get_child('author', ns=entry.xml_ns).get_child('name', ns=entry.xml_ns).xml_text = unicode(self.profile.username)
        entry.get_child('published', ns=entry.xml_ns).xml_text = dt
        entry.get_child('updated', ns=entry.xml_ns).xml_text = dt
        entry.get_child('content', ns=entry.xml_ns).xml_text = unicode(msg)

        if node != self.pubsub_top_level_node:
            tag = extract_url_trail(node)
            E(u'category', namespace=entry.xml_ns, prefix=entry.xml_prefix,
              attributes={u'term': unicode(tag)}, parent=entry)
        
        return uuid, entry