def update_comment_votes(comments): from r2.models import CommentScoresByLink comments = tup(comments) link_map = {} for com in comments: link_map.setdefault(com.link_id, []).append(com) all_links = Link._byID(link_map.keys(), data=True) comment_trees = {} for link in all_links.values(): comment_trees[link._id] = get_comment_tree(link) for link_id, coms in link_map.iteritems(): link = all_links[link_id] for sort in ("_controversy", "_hot", "_confidence", "_score", "_date", "_qa"): cid_tree = comment_trees[link_id].tree scores_by_comment = _comment_sorter_from_cids(coms, sort, link, cid_tree, by_36=True) CommentScoresByLink.set_scores(link, sort, scores_by_comment)
def update_comment_votes(comments, write_consistency_level=None): from r2.models import CommentSortsCache, CommentScoresByLink comments = tup(comments) link_map = {} for com in comments: link_map.setdefault(com.link_id, []).append(com) all_links = Link._byID(link_map.keys(), data=True) comment_trees = {} for link in all_links.values(): comment_trees[link._id] = get_comment_tree(link) for link_id, coms in link_map.iteritems(): link = all_links[link_id] for sort in ("_controversy", "_hot", "_confidence", "_score", "_date", "_qa"): cid_tree = comment_trees[link_id].tree scores_by_comment = _comment_sorter_from_cids(coms, sort, link, cid_tree, by_36=True) # Cassandra always uses the id36 instead of the integer # ID, so we'll map that first before sending it c_key = sort_comments_key(link_id, sort) CommentSortsCache._set_values( c_key, scores_by_comment, write_consistency_level=write_consistency_level) CommentScoresByLink.set_scores(link, sort, scores_by_comment)
def update_comment_votes(comments, write_consistency_level = None): from r2.models import CommentSortsCache, CommentScoresByLink comments = tup(comments) link_map = {} for com in comments: link_map.setdefault(com.link_id, []).append(com) all_links = Link._byID(link_map.keys(), data=True) comment_trees = {} for link in all_links.values(): comment_trees[link._id] = get_comment_tree(link) for link_id, coms in link_map.iteritems(): link = all_links[link_id] for sort in ("_controversy", "_hot", "_confidence", "_score", "_date", "_qa"): cid_tree = comment_trees[link_id].tree scores_by_comment = _comment_sorter_from_cids( coms, sort, link, cid_tree, by_36=True) # Cassandra always uses the id36 instead of the integer # ID, so we'll map that first before sending it c_key = sort_comments_key(link_id, sort) CommentSortsCache._set_values(c_key, scores_by_comment, write_consistency_level=write_consistency_level) CommentScoresByLink.set_scores(link, sort, scores_by_comment)
def update_comment_votes(comments): from r2.models import CommentScoresByLink comments = tup(comments) link_map = {} for com in comments: link_map.setdefault(com.link_id, []).append(com) all_links = Link._byID(link_map.keys(), data=True) comment_trees = {} for link in all_links.values(): comment_trees[link._id] = get_comment_tree(link) for link_id, coms in link_map.iteritems(): link = all_links[link_id] for sort in ("_controversy", "_hot", "_confidence", "_score", "_date", "_qa"): cid_tree = comment_trees[link_id].tree scores_by_comment = _comment_sorter_from_cids(coms, sort, link, cid_tree, by_36=True) CommentScoresByLink.set_scores(link, sort, scores_by_comment)
def update_comment_votes(comments): from r2.models import CommentScoresByLink comments = tup(comments) comments_by_link_id = defaultdict(list) for comment in comments: comments_by_link_id[comment.link_id].append(comment) links_by_id = Link._byID(comments_by_link_id.keys(), data=True) for link_id, link_comments in comments_by_link_id.iteritems(): link = links_by_id[link_id] for sort in ("_controversy", "_confidence", "_score"): scores_by_comment = { comment._id36: getattr(comment, sort) for comment in link_comments } CommentScoresByLink.set_scores(link, sort, scores_by_comment) scores_by_comment = _get_qa_comment_scores(link, link_comments) CommentScoresByLink.set_scores(link, "_qa", scores_by_comment)
def update_comment_votes(comments): from r2.models import CommentScoresByLink comments = tup(comments) comments_by_link_id = defaultdict(list) for comment in comments: comments_by_link_id[comment.link_id].append(comment) links_by_id = Link._byID(comments_by_link_id.keys(), data=True) for link_id, link_comments in comments_by_link_id.iteritems(): link = links_by_id[link_id] for sort in ("_controversy", "_confidence", "_score"): scores_by_comment = { comment._id36: getattr(comment, sort) for comment in link_comments } CommentScoresByLink.set_scores(link, sort, scores_by_comment) scores_by_comment = _get_qa_comment_scores(link, link_comments) CommentScoresByLink.set_scores(link, "_qa", scores_by_comment)