Exemplo n.º 1
0
def addNodes(nodes):
    added = []
    for id in nodes:
        node,revision,tags = getNode(id)
        
        node['version'] = node['vid']
        node['user'] = node['uid']
        node['id'] = node['nid']
        revision['user'] = revision['uid']
        revision['id'] = revision['vid']
        revision['node'] = revision['nid']
        del(node['status'])
        del(node['uid'])
        del(node['nid'])
        del(node['vid'])
        del(revision['uid'])
        del(revision['nid'])
        del(revision['vid'])
        # add the nodes
        try:
            dbnode = Node.get(node['id']) 
            del(node['id'])
            dbnode.set(**node)
        except SQLObjectNotFound:
            dbnode = Node(**node)

        try:
            dbnoder = NodeRevision.get(revision['id'])
            del(revision['id'])
            dbnoder.set(**revision)
        except SQLObjectNotFound:
            dbnoder = NodeRevision(**revision)
        # add the termnodes
        for tag in tags:
            tag['node'] = tag['nid']
            tag['term'] = tag['tid']
            del(tag['nid'])
            del(tag['tid'])
            try:
                dbtag = Term.get(tag['term'])
            except SQLObjectNotFound:
                dbtag = addTags([tag['term']])[0]
            terms = list(TermNode.selectBy(node=dbnode,term=dbtag))
            if not terms:
                term = TermNode(**tag)
            else:
                term = terms[0]

        print "Node %d made!" % id
        added.append(id)
    return added
Exemplo n.º 2
0
def syncNodes():
    print "syncing nodes"
    tags_checked = []
    users_checked = []
    nodes_checked = []
    tags_new = []
    users_new = []
    nodes_new = []
    
    for node in getNewNodes():
        tid = node['tid']
        nid = node['nid']
        changed = node['changed']
        uid = node['uid']

        if tid not in tags_checked:
            try:
                term = Term.get(tid)
            except SQLObjectNotFound:
                tags_new.append(tid)
            tags_checked.append(tid)

        if uid not in users_checked:
            try:
                node = User.get(uid)
            except SQLObjectNotFound:
                users_new.append(uid)
            users_checked.append(uid)

        if nid not in nodes_checked:
            try:
                node = Node.get(nid)
                if node.changed < changed:
                    nodes_new.append(nid)                    
            except SQLObjectNotFound:
                nodes_new.append(nid)
            nodes_checked.append(nid)
    
    
    hub.begin()    
    # add new db information
    addTags(tags_new)
    addUsers(users_new)
    nodes = addNodes(nodes_new)
    setWeight()
    hub.commit()
    
    return nodes