def get(self): killmetrics_key = '' if hasattr(keys, 'base_url') and hasattr( keys, 'killmetrics_dev') and helper.base_url(self) != keys.base_url: killmetrics_key = keys.killmetrics_dev if hasattr(keys, 'base_url') and hasattr( keys, 'killmetrics_prod') and ( helper.base_url(self) == keys.base_url or helper.base_url(self) == keys.base_url_custom_url): killmetrics_key = keys.killmetrics_prod if killmetrics_key == '': return killmetrics_base_url = "http://alertify.appspot.com/" userUID = urllib.quote(self.request.get("userUID")) sessionUID = urllib.quote(self.request.get("sessionUID")) category = urllib.quote(self.request.get("category")) subcategory = urllib.quote(self.request.get("subcategory")) verb = urllib.quote(self.request.get("verb")) user_agent = urllib.quote(self.request.get("user-agent")) url = killmetrics_base_url + '/data-point/' + killmetrics_key + '?userUID=' + userUID + '&sessionUID=' + sessionUID + '&category=' + category + '&subcategory=' + subcategory + '&verb=' + verb + '&user_agent=' + user_agent result = urlfetch.fetch(url)
def get(self): posts = Post.all().order('-created').fetch(20) prefetch.prefetch_posts_list(posts) items = [] for post in posts: if len(post.message) == 0: rss_poster = '<a href="' + post.url + '">' + post.url + '</a>' else: rss_poster = post.message rss_poster += ' por <a href="' + helper.base_url( self ) + '/perfil/' + post.user.nickname + '">' + post.user.nickname + '</a>' link = helper.base_url(self) + '/noticia/' + str(post.key()) if post.nice_url: link = helper.base_url(self) + '/noticia/' + str(post.nice_url) items.append( PyRSS2Gen.RSSItem(title=post.title, link=link, description=rss_poster, guid=PyRSS2Gen.Guid("guid1"), pubDate=post.created)) rss = PyRSS2Gen.RSS2(title="Noticias Hacker", link="http://noticiashacker.com/", description="Noticias Hacker", lastBuildDate=datetime.now(), items=items) print 'Content-Type: text/xml' self.response.out.write(rss.to_xml('utf-8'))
def get(self): posts = Post.all().order('-created').fetch(20) prefetch.prefetch_posts_list(posts) items = [] for post in posts: if len(post.message) == 0: rss_poster = '<a href="'+post.url+'">'+post.url+'</a>' else: rss_poster = post.message rss_poster += ' por <a href="'+helper.base_url(self)+'/perfil/'+post.user.nickname+'">'+post.user.nickname+'</a>' link = helper.base_url(self)+'/noticia/' + str(post.key()) if post.nice_url: link = helper.base_url(self)+'/noticia/' + str(post.nice_url) items.append(PyRSS2Gen.RSSItem( title = post.title, link = link, description = rss_poster, guid = PyRSS2Gen.Guid("guid1"), pubDate = post.created )) rss = PyRSS2Gen.RSS2( title = "Noticias Hacker", link = "http://noticiashacker.com/", description = "Noticias Hacker", lastBuildDate = datetime.now(), items = items ) print 'Content-Type: text/xml' self.response.out.write(rss.to_xml('utf-8'))
def get(self): session = get_current_session() if session.has_key('post_error'): post_error = session.pop('post_error') if session.has_key('user'): if hasattr(keys, 'comment_key'): comment_key = keys.comment_key user = session['user'] #### Killmetrics test killmetrics_session_id = helper.get_session_id(session) killmetrics_key = '' if hasattr(keys,'base_url') and hasattr(keys,'killmetrics_dev') and helper.base_url(self) != keys.base_url: killmetrics_key = keys.killmetrics_dev if hasattr(keys,'base_url') and hasattr(keys,'killmetrics_prod') and (helper.base_url(self) == keys.base_url or helper.base_url(self) == keys.base_url_custom_url): killmetrics_key = keys.killmetrics_prod #### Killmetrics test get_url = helper.sanitizeHtml(self.request.get('url_bookmarklet')) get_title = helper.sanitizeHtml(self.request.get('title_bookmarklet')) self.response.out.write(template.render('templates/submit.html', locals())) else: self.redirect('/login')
def post(self, post_id): session = get_current_session() title = helper.sanitizeHtml(self.request.get('title')) message = helper.sanitizeHtml(self.request.get('message')) if session.has_key('user'): user = session['user'] try: post = db.get(helper.parse_post_id(post_id)) if post.can_edit(): if len(title) > 0: post.title = title if post.message is not None and message is not None: post.message = message post.edited = True post.put() #index with indextank helper.indextank_document(helper.base_url(self), post) self.redirect('/noticia/' + str(post.key())) else: self.redirect('/') except db.BadKeyError: self.redirect('/') else: self.redirect('/')
def get(self): posts = Post.all().fetch(10000) base_url = helper.base_url(self) for post in posts: taskqueue.add(url='/admin/re-index-tank-task', params={ 'post_key': str(post.key()), 'base_url': base_url }) 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() 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 sendMessageToTwitter(self, post): bitlyApi = bitly.Api(login=keys.bitly_login, apikey=keys.bitly_apikey) auth = tweepy.OAuthHandler(keys.consumer_key, keys.consumer_secret) auth.set_access_token(keys.access_token, keys.access_token_secret) twitterapi = tweepy.API(auth) url = helper.base_url(self) + "/noticia/" + str(post.key()) shortUrl = bitlyApi.shorten(url) title = post.title[:115] message = title + "... " + shortUrl twitterapi.update_status(message) return message
def get(self): page = helper.sanitizeHtml(self.request.get('pagina')) perPage = 20 page = int(page) if page else 1 realPage = page - 1 if realPage > 0: prevPage = realPage if (page * perPage) < Post.get_cached_count(): nextPage = page + 1 session = get_current_session() on_main = True if session.has_key('user'): user = session['user'] #### Killmetrics test killmetrics_session_id = helper.get_session_id(session) killmetrics_key = '' if hasattr(keys,'base_url') and hasattr(keys,'killmetrics_dev') and helper.base_url(self) != keys.base_url: killmetrics_key = keys.killmetrics_dev if hasattr(keys,'base_url') and hasattr(keys,'killmetrics_prod') and (helper.base_url(self) == keys.base_url or helper.base_url(self) == keys.base_url_custom_url): killmetrics_key = keys.killmetrics_prod #### Killmetrics test posts = Post.all().order('-karma').fetch(perPage, realPage * perPage) prefetch.prefetch_posts_list(posts) i = perPage * realPage + 1 for post in posts: post.number = i i = i + 1 if helper.is_json(self.request.url): posts_json = [p.to_json() for p in posts] if(self.request.get('callback')): self.response.headers['Content-Type'] = "application/javascript" self.response.out.write(self.request.get('callback')+'('+simplejson.dumps({'posts':posts_json})+');') else: self.response.headers['Content-Type'] = "application/json" self.response.out.write(simplejson.dumps({'posts':posts_json})) else: self.response.out.write(template.render('templates/main.html', locals()))
def get(self): killmetrics_key = '' if hasattr(keys,'base_url') and hasattr(keys,'killmetrics_dev') and helper.base_url(self) != keys.base_url: killmetrics_key = keys.killmetrics_dev if hasattr(keys,'base_url') and hasattr(keys,'killmetrics_prod') and (helper.base_url(self) == keys.base_url or helper.base_url(self) == keys.base_url_custom_url): killmetrics_key = keys.killmetrics_prod if killmetrics_key == '': return killmetrics_base_url = "http://www.killmetrics.com/" userUID = urllib.quote(self.request.get("userUID")) sessionUID = urllib.quote(self.request.get("sessionUID")) category = urllib.quote(self.request.get("category")) subcategory = urllib.quote(self.request.get("subcategory")) verb = urllib.quote(self.request.get("verb")) user_agent = urllib.quote(self.request.get("user-agent")) url = killmetrics_base_url + '/data-point/'+killmetrics_key+'?userUID='+userUID+'&sessionUID='+sessionUID+'&category='+category+'&subcategory='+subcategory+'&verb='+verb+'&user_agent='+user_agent result = urlfetch.fetch(url)
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 get(self,post_id): session = get_current_session() if session.has_key('user'): user = session['user'] #### Killmetrics test killmetrics_session_id = helper.get_session_id(session) killmetrics_key = '' if hasattr(keys,'base_url') and hasattr(keys,'killmetrics_dev') and helper.base_url(self) != keys.base_url: killmetrics_key = keys.killmetrics_dev if hasattr(keys,'base_url') and hasattr(keys,'killmetrics_prod') and (helper.base_url(self) == keys.base_url or helper.base_url(self) == keys.base_url_custom_url): killmetrics_key = keys.killmetrics_prod #### Killmetrics test if hasattr(keys, 'comment_key'): comment_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 ) ) comments = Comment.all().filter("post =", post.key()).order("-karma").fetch(1000) comments = helper.order_comment_list_in_memory(comments) prefetch.prefetch_comment_list(comments) display_post_title = True prefetch.prefetch_posts_list([post]) if helper.is_json(post_id): comments_json = [c.to_json() for c in comments if not c.father_ref()] if(self.request.get('callback')): self.response.headers['Content-Type'] = "application/javascript" self.response.out.write(self.request.get('callback')+'('+simplejson.dumps({'post':post.to_json(),'comments':comments_json})+')') else: self.response.headers['Content-Type'] = "application/json" self.response.out.write(simplejson.dumps({'post':post.to_json(),'comments':comments_json})) else: self.response.out.write(template.render('templates/post.html', locals())) except db.BadKeyError: self.redirect('/')
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 get(self): if hasattr(keys, 'consumer_key') and hasattr( keys, 'consumer_secret') and hasattr( keys, 'access_token') and hasattr( keys, 'access_token_secret') and hasattr( keys, 'bitly_login') and hasattr( keys, 'bitly_apikey') and hasattr( keys, 'base_url') and helper.base_url( self) == keys.base_url: posts = Post.all().order('-karma').fetch(20) for post in posts: if not post.twittered: post.twittered = True post.put() out = sendMessageToTwitter(self, post) self.response.out.write("Printed:" + out) return self.response.out.write("No more message") else: self.response.out.write("No keys")
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')
def get(self): if hasattr(keys,'consumer_key') and hasattr(keys,'consumer_secret') and hasattr(keys,'access_token') and hasattr(keys,'access_token_secret') and hasattr(keys,'bitly_login') and hasattr(keys,'bitly_apikey') and hasattr(keys,'base_url') and helper.base_url(self) == keys.base_url: posts = Post.all().order('-karma').fetch(20) for post in posts: if not post.twittered: post.twittered = True post.put() out = sendMessageToTwitter(self,post) self.response.out.write("Printed:" + out) return self.response.out.write("No more message") else: self.response.out.write("No keys")
def get(self): posts = Post.all().fetch(10000) base_url = helper.base_url(self) for post in posts: taskqueue.add(url='/admin/re-index-tank-task', params={'post_key': str(post.key()), 'base_url': base_url}) self.response.out.write("ok")