Example #1
0
def upsert_comment(mongo, identifier):
    """ Upsert root post or comment. """
    with suppress(PostDoesNotExist):
        p = Post(identifier)
        update = {'$set': strip_dot_from_keys(p.export())}
        if p.is_comment():
            return mongo.Comments.update(
                {'identifier': p.identifier},
                update, upsert=True)
        return mongo.Posts.update({'identifier': p.identifier}, update, upsert=True)
Example #2
0
def upsert_comment(mongo, identifier):
    """ Upsert root post or comment. """
    with suppress(PostDoesNotExist):
        p = Post(identifier)
        if p.is_comment():
            return mongo.Comments.update({'identifier': p.identifier},
                                         p.export(),
                                         upsert=True)
        return mongo.Posts.update({'identifier': p.identifier},
                                  p.export(),
                                  upsert=True)
def upsert_comment_chain(mongo, identifier, recursive=False):
    """ Upsert given comments and its parent(s).
    
    Args:
        mongo: mongodb instance
        identifier: Post identifier
        recursive: (Defaults to False). Recursively update all parent comments.
    """
    with suppress(PostDoesNotExist):
        p = Post(identifier)
        upsert_comment(mongo, p.identifier)
        if recursive and p.is_comment():
            parent_identifier = '@%s/%s' % (p.parent_author, p.parent_permlink)
            upsert_comment_chain(mongo, parent_identifier, recursive)
Example #4
0
def upsert_comment_chain(mongo, identifier, recursive=False):
    """ Upsert given comments and its parent(s).
    
    Args:
        mongo: mongodb instance
        identifier: Post identifier
        recursive: (Defaults to False). If True, recursively update all parent comments, incl. root post.
    """
    with suppress(PostDoesNotExist):
        p = Post(identifier)
        if p.is_comment():
            mongo.Comments.update({'identifier': p.identifier},
                                  p.export(),
                                  upsert=True)
            parent_identifier = '@%s/%s' % (p.parent_author, p.parent_permlink)
            if recursive:
                upsert_comment_chain(mongo, parent_identifier, recursive)
            else:
                upsert_comment(mongo, parent_identifier)
        else:
            return mongo.Posts.update({'identifier': p.identifier},
                                      p.export(),
                                      upsert=True)