def post(self): url = self.request.get("url") title = sanitizeHtml(self.request.get("title")) message = sanitizeHtml(self.request.get("message")) session = get_current_session() if session.has_key("user") and len(title) > 0: user = session["user"] # decide if its a message or a link, if its a link we need a try/catch around the save, the link might be invalid if len(message) == 0: try: post = Post(url=url, title=title, message=message, user=user) post.put() vote = Vote(user=user, post=post, target_user=post.user) vote.put() Post.remove_cached_count_from_memcache() self.redirect("/noticia/" + str(post.key())) except db.BadValueError: self.redirect("/agregar") else: post = Post(title=title, message=message, user=user) post.put() post.url = "http://" + urlparse(self.request.url).netloc + "/noticia/" + str(post.key()) post.put() Post.remove_cached_count_from_memcache() vote = Vote(user=user, post=post, target_user=post.user) vote.put() self.redirect("/noticia/" + str(post.key())) else: self.redirect("/")
def post(self): url = self.request.get('url') title = sanitizeHtml(self.request.get('title')) message = sanitizeHtml(self.request.get('message')) session = get_current_session() if session.has_key('user') and len(title) > 0: user = session['user'] # decide if its a message or a link, if its a link we need a try/catch around the save, the link might be invalid if len(message) == 0: try: post = Post(url=url,title=title,message=message, user=user) post.put() vote = Vote(user=user, post=post, target_user=post.user) vote.put() self.redirect('/noticia/' + str(post.key())); except db.BadValueError: self.redirect('/agregar') else: post = Post(title=title,message=message, user=user) post.put() post.url = "http://" + urlparse(self.request.url).netloc + "/noticia/" + str(post.key()) post.put() vote = Vote(user=user, post=post, target_user=post.user) vote.put() self.redirect('/noticia/' + str(post.key())); else: self.redirect('/')
def update_votes(item, request_handler, user_id): """ save the vote for an item :param item: {Item} :param request_handler: {BaseHandler} for the request :param user_id: {int} """ try: old_votes = Vote.query(Vote.voter == user_id, Vote.item == item.key) for v in old_votes: v.key.delete() vote = Vote() vote.item = item.key vote.voter = user_id vote.comment = unicode(request_handler.request.get('myComment')) vote.meal_kind = int(request_handler.request.get('kind')) vote.place_style= int(request_handler.request.get('style')) vote.cuisine = Category.get_by_id(request_handler.request.get('cuisine')).key vote_stars = int(request_handler.request.get("voteScore")) vote.stars = vote_stars if vote_stars == 0: vote_untried= bool(request_handler.request.get("voteUntried")) else: vote_untried = False vote.untried = vote_untried vote.put() ndb_models.mark_vote_as_updated(str(vote.key.id()), user_id) logging.info ('update_votes for %s "%s"=%d'% (item.place_name,vote.comment,vote.stars)) except Exception, ex: logging_ext.error("newOrUpdateItem votes exception", exc_info=True) raise
def post(self, post_id): session = get_current_session() if session.has_key('user'): message = helper.sanitizeHtml(self.request.get('message')) user = session['user'] if len(message) > 0: try: post = Post.all().filter( 'nice_url =', helper.parse_post_id(post_id)).get() if post == None: #If for some reason the post doesn't have a nice url, we try the id. This is also the case of all old stories post = db.get(helper.parse_post_id(post_id)) post.remove_from_memcache() comment = Comment(message=message, user=user, post=post) comment.put() vote = Vote(user=user, comment=comment, target_user=user) vote.put() Notification.create_notification_for_comment_and_user( comment, post.user) self.redirect('/noticia/' + post_id) except db.BadKeyError: self.redirect('/') else: self.redirect('/noticia/' + post_id) else: self.redirect('/login')
def post(self): loser = db.get(str(self.request.get('loser'))) winner = db.get(str(self.request.get('winner'))) vote = Vote(winner=winner, loser=loser) #To store username if the user is logged in client = OAuthClient("twitter", self) logged_in = client.get_cookie() if logged_in: info = client.get("/account/verify_credentials") vote.name = info["screen_name"] else: vote.name = 'Guest' #TODO: Stop spam-voting for same key from same ip repeatedly vote.ip = self.request.remote_addr if check_vote_spam(vote.ip, winner): self.redirect('/msg=You+appear+to+be+votespamming,+please+stop+or+try+again+later') else: vote.put() #Wins and losses loser.losses = loser.losses+1 loser.win_percentage = loser.calc_win_percentage() loser.put() winner.wins = winner.wins+1 winner.win_percentage = winner.calc_win_percentage() winner.put() #Redirect so that people cannot repost twice self.redirect('/?w=%s&l=%s' % (winner.key().id(), loser.key().id()))
def post(self, comment_id): session = get_current_session() if session.has_key('user'): message = helper.sanitizeHtml(self.request.get('message')) user = session['user'] if len(message) > 0: try: parentComment = db.get(comment_id) comment = Comment(message=message, user=user, post=parentComment.post, father=parentComment) comment.put() comment.post.remove_from_memcache() vote = Vote(user=user, comment=comment, target_user=user) vote.put() Notification.create_notification_for_comment_and_user( comment, parentComment.user) self.redirect('/noticia/' + str(parentComment.post.key())) except db.BadKeyError: self.redirect('/') else: self.redirect('/responder/' + comment_id) else: self.redirect('/login')
def update(self, votes, addCat): # Delete the old votes and replace them with the request data. # This avoids cases where the form data doesn't match the # current database (e.g. from the back button or a cloned # window). if self.ballot: db.delete(votes) ballot = self.ballot else: ballot = Ballot(voter=self.voter, year=self.year) ballot.anonymous = bool(self.request.get('anonymous')) ballot.preamble = self.request.get('preamble') ballot.postamble = self.request.get('postamble') numVotes = dict() for cat in Ballot.categories: numVotes[cat] = int(self.request.get(cat + 's')) ballot.honorable = numVotes['honorable'] if addCat == 'honorable': ballot.honorable += 10 ballot.notable = numVotes['notable'] if addCat == 'notable': ballot.notable += 10 ballot.put() for cat in Ballot.categories: for rank in range(1, numVotes[cat]+1): artist = self.request.get('%s%dartist' % (cat, rank)) title = self.request.get('%s%dtitle' % (cat, rank)) comments = self.request.get('%s%dcomments' % (cat, rank)) if artist or title or comments: vote = Vote(parent=ballot, ballot=ballot, category=cat, rank=rank, artist=artist, title=title, comments=comments) vote.put()
def post(self): url = self.request.get('url') title = sanitizeHtml(self.request.get('title')) message = sanitizeHtml(self.request.get('message')) session = get_current_session() if session.has_key('user') and len(title) > 0: user = session['user'] # decide if its a message or a link, if its a link we need a try/catch around the save, the link might be invalid if len(message) == 0: try: post = Post(url=url, title=title, message=message, user=user) post.put() vote = Vote(user=user, post=post, target_user=post.user) vote.put() Post.remove_cached_count_from_memcache() self.redirect('/noticia/' + str(post.key())) except db.BadValueError: self.redirect('/agregar') else: post = Post(title=title, message=message, user=user) post.put() post.url = "http://" + urlparse( self.request.url).netloc + "/noticia/" + str(post.key()) post.put() Post.remove_cached_count_from_memcache() vote = Vote(user=user, post=post, target_user=post.user) vote.put() self.redirect('/noticia/' + str(post.key())) else: self.redirect('/')
def vote(request, id): """ Add a vote for a feedback message, but not twice from the same IP. """ referer = request.META.get('HTTP_REFERER', '/feedback/') redirect = HttpResponseRedirect(referer) # Check if the selected feedback exists. feedback = Feedback.get_by_id(int(id)) if feedback is None: logging.debug("Feedback '%s' not found." % id) return redirect # Check if this feedback was posted from the same IP. ip = request.META.get('REMOTE_ADDR', '0.0.0.0') if feedback.ip == ip: logging.debug("Feedback '%s' was posted from the same IP." % id) return redirect # Check if this IP has already voted for this feedback. already = Vote.all().filter('feedback', feedback).filter('ip', ip).count() if already: logging.debug("Feedback '%s' was already voted %d times from this IP." % (id, already)) return redirect # Register this vote to prevent double voting. vote = Vote(feedback=feedback, ip=ip) vote.put() # Increase the points for this feedback. feedback.points += 1 feedback.put() return redirect
def post(self, post_id): session = get_current_session() if session.has_key('user'): message = helper.sanitizeHtml(self.request.get('message')) user = session['user'] key = self.request.get('comment_key') if len(message) > 0 and key == keys.comment_key: try: post = Post.all().filter('nice_url =', helper.parse_post_id( post_id ) ).get() if post == None: #If for some reason the post doesn't have a nice url, we try the id. This is also the case of all old stories post = db.get( helper.parse_post_id( post_id ) ) post.remove_from_memcache() comment = Comment(message=message,user=user,post=post) comment.put() helper.killmetrics("Comment","Root", "posted", session, "",self) vote = Vote(user=user, comment=comment, target_user=user) vote.put() Notification.create_notification_for_comment_and_user(comment,post.user) self.redirect('/noticia/' + post_id) except db.BadKeyError: self.redirect('/') else: self.redirect('/noticia/' + post_id) else: self.redirect('/login')
def vote(request, id): """ Add a vote for a feedback message, but not twice from the same IP. """ referer = request.META.get('HTTP_REFERER', '/feedback/') redirect = HttpResponseRedirect(referer) # Check if the selected feedback exists. feedback = Feedback.get_by_id(int(id)) if feedback is None: logging.info("Feedback '%s' not found." % id) return redirect # Check if this feedback was posted from the same IP. ip = request.META.get('REMOTE_ADDR', '0.0.0.0') if feedback.ip == ip: logging.info("Feedback '%s' was posted from the same IP." % id) return redirect # Check if this IP has already voted for this feedback. already = Vote.all().filter('feedback', feedback).filter('ip', ip).count() if already: logging.info("Feedback '%s' was already voted %d times from this IP." % (id, already)) return redirect # Register this vote to prevent double voting. vote = Vote(feedback=feedback, ip=ip) vote.put() # Increase the points for this feedback. feedback.points += 1 feedback.put() return redirect
def load_votes(self, user, vote_score, vote_comment): vote = Vote() vote.item = self.item vote.vote = vote_score vote.comment = vote_comment vote.voter = user.key.id() vote.put()
def _create_and_get_vote_object(row, game_night_key, voter, start_column): vote = Vote(game_night=game_night_key, voter=voter, appetizer=int(row[start_column]), main_course=int(row[start_column + 1]), dessert=int(row[start_column + 2]), game=int(row[start_column + 3])) vote.put() return vote
def post(self): session = get_current_session() url = self.request.get("url") title = helper.sanitizeHtml(self.request.get("title")) message = helper.sanitizeHtml(self.request.get("message")) nice_url = helper.sluglify(title) if session.has_key("user"): if len(nice_url) > 0: user = session["user"] if len(message) == 0: # is it a post or a message? # Check that we don't have the same URL within the last 'check_days' since_date = date.today() - timedelta(days=7) q = Post.all().filter("created >", since_date).filter("url =", url).count() url_exists = q > 0 q = Post.all().filter("nice_url", nice_url).count() nice_url_exist = q > 0 try: if not url_exists: if not nice_url_exist: post = Post(url=url, title=title, message=message, user=user, nice_url=nice_url) post.put() vote = Vote(user=user, post=post, target_user=post.user) vote.put() Post.remove_cached_count_from_memcache() self.redirect("/noticia/" + str(post.nice_url)) else: session["post_error"] = "Este titulo ha sido usado en una noticia anterior" self.redirect("/agregar") else: session["post_error"] = "Este link ha sido entregado en los ultimo 7 dias" self.redirect("/agregar") except db.BadValueError: session["post_error"] = "El formato del link no es valido" self.redirect("/agregar") else: q = Post.all().filter("nice_url", nice_url).count() nice_url_exist = q > 0 if not nice_url_exist: post = Post(title=title, message=message, user=user, nice_url=nice_url) post.put() post.url = helper.base_url(self) + "/noticia/" + post.nice_url post.put() Post.remove_cached_count_from_memcache() vote = Vote(user=user, post=post, target_user=post.user) vote.put() self.redirect("/noticia/" + post.nice_url) else: session["post_error"] = "Este titulo ha sido usado en una noticia anterior" self.redirect("/agregar") else: session["post_error"] = "Necesitas agregar un titulo" self.redirect("/agregar") else: self.redirect("/login")
def post(self): session = get_current_session() url = self.request.get('url') title = helper.sanitizeHtml(self.request.get('title')) message = helper.sanitizeHtml(self.request.get('message')) if session.has_key('user'): if len(title) > 0: user = session['user'] if len(message) == 0: #is it a post or a message? #Check that we don't have the same URL within the last 'check_days' since_date = date.today() - timedelta(days=7) q = Post.all().filter("created >", since_date).filter("url =", url).count() url_exists = q > 0 try: if not url_exists: post = Post(url=url, title=title, message=message, user=user) post.put() vote = Vote(user=user, post=post, target_user=post.user) vote.put() Post.remove_cached_count_from_memcache() self.redirect('/noticia/' + str(post.key())) else: session[ 'post_error'] = "Este link ha sido entregado en los ultimo 7 dias" self.redirect('/agregar') except db.BadValueError: session[ 'post_error'] = "El formato del link no es valido" self.redirect('/agregar') else: post = Post(title=title, message=message, user=user) post.put() post.url = helper.base_url(self) + "/noticia/" + str( post.key()) post.put() Post.remove_cached_count_from_memcache() vote = Vote(user=user, post=post, target_user=post.user) vote.put() self.redirect('/noticia/' + str(post.key())) else: session['post_error'] = "Necesitas agregar un titulo" self.redirect('/agregar') else: self.redirect('/login')
def increase_vote(item, owner, cur_votes): if item == None: return cur_votes # Check duplicate q = db.GqlQuery("SELECT * FROM Vote WHERE item = :1 AND owner = :2", item, owner) if q.count() > 0: ret = """<span id="vote_result">%d</span> <span id="vote_message" style="color: #666666;">(已推薦過)</span>""" % (cur_votes, ) return ret vote = Vote(owner=owner, item=item) vote.put() ret = """<span id="vote_result" style="color: #EB7F00; text-weight: bold">%d</span>""" % (item.vote_set.count(), ) return ret
def get(self, post_id): session = get_current_session() if session.has_key("user"): user = session["user"] try: post = db.get(post_id) if not post.already_voted(): vote = Vote(user=user, post=post, target_user=post.user) vote.put() post.remove_from_memcache() post.user.remove_from_memcache() self.response.out.write("Ok") else: self.response.out.write("No") except db.BadValueError: self.response.out.write("Bad") else: self.response.out.write("Bad")
def get(self,comment_id): session = get_current_session() if session.has_key('user'): user = session['user'] try: comment = db.get(comment_id) if not comment.already_voted(): vote = Vote(user=user, comment=comment, target_user=comment.user) vote.put() comment.remove_from_memcache() comment.user.remove_from_memcache() self.response.out.write('Ok') else: self.response.out.write('No') except db.BadValueError: self.response.out.write('Bad') else: self.response.out.write('Bad')
def get(self, post_id): session = get_current_session() if session.has_key('user'): user = session['user'] try: post = db.get(post_id) if not post.already_voted(): vote = Vote(user=user, post=post, target_user=post.user) vote.put() post.remove_from_memcache() post.user.remove_from_memcache() self.response.out.write('Ok') else: self.response.out.write('No') except db.BadValueError: self.response.out.write('Bad') else: self.response.out.write('Bad')
def post(self): title = self.request.get('title') description = self.request.get('description') owner = int(self.request.get('uid')) # Check duplicate q = db.GqlQuery("SELECT * FROM Item WHERE title = :1", title) if q.count(1) > 0: self.response.out.write(simplejson.dumps({'result': 'duplicated', 'title': title})) return # Not duplicated item = Item(title=title, description=description, owner=owner) key = item.put() vote = Vote(item=item, owner=owner) vote.put() self.response.out.write(simplejson.dumps({'result': 'added', 'title': title, 'key': key.id()}))
def get(self,post_id): session = get_current_session() if session.has_key('user'): user = session['user'] try: post = db.get(post_id) if not post.already_voted(): vote = Vote(user=user, post=post, target_user=post.user) vote.put() post.remove_from_memcache() post.user.remove_from_memcache() helper.killmetrics("Vote","News", "do", session, "",self) self.response.out.write('Ok') else: self.response.out.write('No') except db.BadValueError: self.response.out.write('Bad') else: self.response.out.write('Bad')
def post(self): session = get_current_session() url = self.request.get('url') title = helper.sanitizeHtml(self.request.get('title')) message = helper.sanitizeHtml(self.request.get('message')) if session.has_key('user'): if len(title) > 0: user = session['user'] if len(message) == 0: #is it a post or a message? #Check that we don't have the same URL within the last 'check_days' since_date = date.today() - timedelta(days=7) q = Post.all().filter("created >", since_date).filter("url =", url).count() url_exists = q > 0 try: if not url_exists: post = Post(url=url,title=title,message=message, user=user) post.put() vote = Vote(user=user, post=post, target_user=post.user) vote.put() Post.remove_cached_count_from_memcache() self.redirect('/noticia/' + str(post.key())); else: session['post_error'] = "Este link ha sido entregado en los ultimo 7 dias" self.redirect('/agregar') except db.BadValueError: session['post_error'] = "El formato del link no es valido" self.redirect('/agregar') else: post = Post(title=title,message=message, user=user) post.put() post.url = helper.base_url(self) + "/noticia/" + str(post.key()) post.put() Post.remove_cached_count_from_memcache() vote = Vote(user=user, post=post, target_user=post.user) vote.put() self.redirect('/noticia/' + str(post.key())); else: session['post_error'] = "Necesitas agregar un titulo" self.redirect('/agregar') else: self.redirect('/login')
def at_least_one_vote_per_item(self): # make sure each item has 1 vote items = Item.query() for it in items: vote = it.votes.filter("voter =", it.owner).get() if not vote: vote = Vote() vote.item = it vote.vote = VoteValue.VOTE_LIKED vote.voter = it.owner vote.comment = "blah" it.upVotes = 1 vote.put() it.save() if it.votesUp == it.votesDown == 0: if vote.vote == VoteValue.VOTE_LIKED: it.votesUp = 1 elif vote.vote == VoteValue.VOTE_DISLIKED: it.votesDown = -1 it.save()
def post(self, post_id): session = get_current_session() if session.has_key("user"): message = sanitizeHtml(self.request.get("message")) user = session["user"] if len(message) > 0: try: post = db.get(post_id) post.remove_from_memcache() comment = Comment(message=message, user=user, post=post) comment.put() vote = Vote(user=user, comment=comment, target_user=user) vote.put() self.redirect("/noticia/" + post_id) except db.BadKeyError: self.redirect("/") else: self.redirect("/noticia/" + post_id) else: self.redirect("/login")
def post(self,comment_id): session = get_current_session() if session.has_key('user'): message = sanitizeHtml(self.request.get('message')) user = session['user'] if len(message) > 0: try: parentComment = db.get(comment_id) comment = Comment(message=message,user=user,post=parentComment.post, father=parentComment) comment.put() comment.post.remove_from_memcache() vote = Vote(user=user, comment=comment, target_user=user) vote.put() self.redirect('/noticia/' + str(parentComment.post.key())) except db.BadKeyError: self.redirect('/') else: self.redirect('/responder/' + comment_id) else: self.redirect('/login')
def post(self, post_id): session = get_current_session() if session.has_key('user'): message = sanitizeHtml(self.request.get('message')) user = session['user'] if len(message) > 0: try: post = db.get(post_id) post.remove_from_memcache() comment = Comment(message=message, user=user, post=post) comment.put() vote = Vote(user=user, comment=comment, target_user=user) vote.put() self.redirect('/noticia/' + post_id) except db.BadKeyError: self.redirect('/') else: self.redirect('/noticia/' + post_id) else: self.redirect('/login')
def vote(netid, talk_id, direction): app.logger.info(dir(netid)) app.logger.info(netid) votes = Vote.all() votes.filter('talk_id =', talk_id) votes.filter('netid =', netid) votes_res = votes.fetch(1) netid = str(netid) if len(votes.fetch(1)) < 1 or (votes_res[0].direction != 'up' and votes_res[0].direction != 'down'): # User has not voted before new_vote = Vote(direction=direction, netid=str(netid), talk_id=talk_id) talk = Talk.get_by_id(talk_id) if direction == 'up': talk.votes += 1 elif direction == 'down': talk.votes -= 1 talk.put() new_vote.put() app.logger.info("Did a vote") return redirect(url_for('index')) elif votes_res[0].direction != direction: # The user has voted and is changing vote = votes_res[0] vote.direction = direction talk = Talk.get_by_id(talk_id) if direction == 'up': talk.votes += 2 elif direction == 'down': talk.votes -= 2 talk.put() vote.put() app.logger.info("Did a exist vote") return redirect(url_for('index')) else: # User is not allowed to vote return redirect(url_for('index'))
def post(self, post_id): session = get_current_session() if session.has_key('user'): message = helper.sanitizeHtml(self.request.get('message')) user = session['user'] if len(message) > 0: try: post = db.get(post_id) post.remove_from_memcache() comment = Comment(message=message,user=user,post=post) comment.put() vote = Vote(user=user, comment=comment, target_user=user) vote.put() Notification.create_notification_for_comment_and_user(comment,post.user) self.redirect('/noticia/' + post_id) except db.BadKeyError: self.redirect('/') else: self.redirect('/noticia/' + post_id) else: self.redirect('/login')
def post(self, boker_id): action = self.request.get('action') boker = Boker.get_by_id(int(boker_id)) user = User.get_by_key_name(self.current_user['id']) if boker and user and action == 'vote': # Avoid multi votes if not Vote.already_vote(user): vote = Vote(contest=Contest.active_contest(), user=user, boker=boker) vote.put() # Upate boker vote score boker.num_vote += 1 boker.save() # Trigger post action user_access_token = self.current_user['access_token'] boker_url = settings.APP_DOMAIN + self.uri_for('boker_view', boker_id=boker_id) deferred.defer(publish_vote_action, user_access_token, boker_url) self.redirect(self.uri_for('boker_view', boker_id=boker_id)+'?vote=1') self.redirect(self.uri_for('boker_view', boker_id=boker_id))
def post(self,comment_id): session = get_current_session() if session.has_key('user'): message = helper.sanitizeHtml(self.request.get('message')) user = session['user'] if len(message) > 0: try: parentComment = db.get(comment_id) comment = Comment(message=message,user=user,post=parentComment.post, father=parentComment) comment.put() helper.killmetrics("Comment","Child", "posted", session, "",self) comment.post.remove_from_memcache() vote = Vote(user=user, comment=comment, target_user=user) vote.put() Notification.create_notification_for_comment_and_user(comment,parentComment.user) self.redirect('/noticia/' + str(parentComment.post.key())) except db.BadKeyError: self.redirect('/') else: self.redirect('/responder/' + comment_id) else: self.redirect('/login')
def get(self, comment_id): session = get_current_session() if session.has_key('user'): user = session['user'] try: comment = db.get(comment_id) if not comment.already_voted(): vote = Vote(user=user, comment=comment, target_user=comment.user) vote.put() helper.killmetrics("Vote", "Comment", "do", session, "", self) comment.remove_from_memcache() comment.user.remove_from_memcache() self.response.out.write('Ok') else: self.response.out.write('No') except db.BadValueError: self.response.out.write('Bad') else: self.response.out.write('Bad')
def post(self): it_id = int(self.request.get('item_id')) it = Item.get_by_id(it_id) voteScore = int(self.request.get("vote")) voteUntried = bool(self.request.get("untried")) my_votes = Vote.query(Vote.voter == self.user_id, Vote.item == it.key) if my_votes.count() == 0: # a new vote new_vote = Vote() new_vote.item = it new_vote.voter = self.user_id else: # roll back the old vote new_vote = my_votes.get() oldVote, oldUntried = new_vote.stars, new_vote.untried new_vote.stars = voteScore new_vote.untried = voteUntried new_vote.comment = self.request.get("comment") new_vote.when = datetime.datetime.now() new_vote.put() it.save() # refresh cache self.response.out.write('OK')
def post(self): session = get_current_session() url = self.request.get('url') title = helper.sanitizeHtml(self.request.get('title')) message = helper.sanitizeHtml(self.request.get('message')) nice_url = helper.sluglify(title) if session.has_key('user'): if len(nice_url) > 0: user = session['user'] if len(message) == 0: #is it a post or a message? #Check that we don't have the same URL within the last 'check_days' since_date = date.today() - timedelta(days=7) q = Post.all().filter("created >", since_date).filter("url =", url).count() url_exists = q > 0 q = Post.all().filter("nice_url", nice_url).count() nice_url_exist = q > 0 try: if not url_exists: if not nice_url_exist: post = Post(url=url, title=title, message=message, user=user, nice_url=nice_url) post.put() helper.killmetrics("Submit", "Link", "do", session, "", self) vote = Vote(user=user, post=post, target_user=post.user) vote.put() Post.remove_cached_count_from_memcache() #index with indextank helper.indextank_document( helper.base_url(self), post) self.redirect('/noticia/' + str(post.nice_url)) else: session[ 'post_error'] = "Este titulo ha sido usado en una noticia anterior" self.redirect('/agregar') else: session[ 'post_error'] = "Este link ha sido entregado en los ultimo 7 dias" self.redirect('/agregar') except db.BadValueError: session[ 'post_error'] = "El formato del link no es valido" self.redirect('/agregar') else: q = Post.all().filter("nice_url", nice_url).count() nice_url_exist = q > 0 if not nice_url_exist: post = Post(title=title, message=message, user=user, nice_url=nice_url) post.put() helper.killmetrics("Submit", "Post", "do", session, "", self) post.url = helper.base_url( self) + "/noticia/" + post.nice_url post.put() Post.remove_cached_count_from_memcache() vote = Vote(user=user, post=post, target_user=post.user) vote.put() #index with indextank helper.indextank_document(helper.base_url(self), post) self.redirect('/noticia/' + post.nice_url) else: session[ 'post_error'] = "Este titulo ha sido usado en una noticia anterior" self.redirect('/agregar') else: session['post_error'] = "Necesitas agregar un titulo" self.redirect('/agregar') else: self.redirect('/login')
def post(self): session = get_current_session() url = self.request.get('url') title = helper.sanitizeHtml(self.request.get('title')) message = helper.sanitizeHtml(self.request.get('message')) nice_url = helper.sluglify(title) key = self.request.get('comment_key') if session.has_key('user') and key == keys.comment_key: if len(nice_url) > 0: user = session['user'] if len(message) == 0: #is it a post or a message? #Check that we don't have the same URL within the last 'check_days' since_date = date.today() - timedelta(days=7) q = Post.all().filter("created >", since_date).filter("url =", url).count() url_exists = q > 0 q = Post.all().filter("nice_url", nice_url).count() nice_url_exist = q > 0 try: if not url_exists: if not nice_url_exist: post = Post(url=url,title=title,message=message, user=user, nice_url=nice_url) post.put() helper.killmetrics("Submit","Link", "do", session, "",self) vote = Vote(user=user, post=post, target_user=post.user) vote.put() Post.remove_cached_count_from_memcache() #index with indextank helper.indextank_document( helper.base_url(self), post) self.redirect('/noticia/' + str(post.nice_url)); else: session['post_error'] = "Este titulo ha sido usado en una noticia anterior" self.redirect('/agregar') else: session['post_error'] = "Este link ha sido entregado en los ultimo 7 dias" self.redirect('/agregar') except db.BadValueError: session['post_error'] = "El formato del link no es valido" self.redirect('/agregar') else: q = Post.all().filter("nice_url", nice_url).count() nice_url_exist = q > 0 if not nice_url_exist: post = Post(title=title,message=message, user=user, nice_url=nice_url) post.put() helper.killmetrics("Submit","Post", "do", session, "",self) post.url = helper.base_url(self) + "/noticia/" + post.nice_url post.put() Post.remove_cached_count_from_memcache() vote = Vote(user=user, post=post, target_user=post.user) vote.put() #index with indextank helper.indextank_document( helper.base_url(self), post) self.redirect('/noticia/' + post.nice_url); else: session['post_error'] = "Este titulo ha sido usado en una noticia anterior" self.redirect('/agregar') else: session['post_error'] = "Necesitas agregar un titulo" self.redirect('/agregar') else: self.redirect('/login')