def getNewsList(request): # depend on the friends depart num = request.GET['num'] allFriends = Account.objects(pk__in=request.user.friends).all() number = News.objects(author__in=allFriends).count() if int(num)*15>number: result=[] return HttpResponse(dumps(result)) result = News.objects(author__in=allFriends)[int(num)*15:int(num)*15 + 15].order_by("-time").as_pymongo() result = list(result) for news in result: del(news['_types']) del(news['_cls']) news['picture'] = endpoint + "news/getPicture?id=" + str(news['_id']) news['voice'] = endpoint + "news/getVoice?id=" + str(news['_id']) uid = news['author'] user = News.objects(author=uid).first().author gid = news['good'] good = News.objects(good=gid).first().good news['good'] = endpoint + "goods/getGoods?id=" + str(good.pk) news['author'] = {"portrait": endpoint + "users/getPortrait?id=" + str(user.pk), "name": user.username} news['comments'] = endpoint + "news/getComments?id=" + str(news['_id']) # news['_id'] = endpoint + "news/getNewsDetail?id=" + str(news['_id']) del(news['_id']) news['time']=str(news['time']) result = dumps(result) return HttpResponse(result)
def delete_news(news_id): News.objects(id=news_id).delete() response_object = { 'status': 'success', 'news_id': news_id, } return jsonify(response_object), 200
def tags(tag, page=1): page = int(page) count_news = News.objects(category=tag).count() posts = News.objects(category=tag).order_by('-date').skip((page - 1) * NEWS_ON_PAGE).limit(NEWS_ON_PAGE) pagination = Pagination(page=page, per_page=NEWS_ON_PAGE, total=count_news, record_name='News', format_total=True, format_number=True) return render_template("news.html", posts=posts, pagination=pagination, title="Cryptocurrency news today")
def getNewsDetail(request): nid=request.GET['id'] news=News.objects(pk=nid).first().to_mongo() del(news['_types']) del(news['_cls']) news['picture'] = endpoint + "news/getPicture?id=" + str(news['_id']) news['voice'] = endpoint + "news/getVoice?id=" + str(news['_id']) uid = news['author'] user = News.objects(author=uid).first().author gid = news['good'] good = News.objects(good=gid).first().good news['good'] = endpoint + "goods/getGoods?id=" + str(good.pk) news['author'] = {"portrait": endpoint + "users/getPortrait?id=" + str(user.pk), "name": user.username} news['comments'] = endpoint + "news/getComments?id=" + str(news['_id']) # news['_id'] = endpoint + "news/getNewsDetail?id=" + str(news['_id']) del(news['_id']) news['time']=str(news['time']) return HttpResponse(dumps(news))
def getCommentVoice(request): vid=request.GET['vid'] a=News.objects(comments__voice=ObjectId(str(vid))).first() comments=a.comments voice=None for comment in comments: mongo=comment.to_mongo() if str(mongo['voice'])==str(vid): voice=comment.voice return HttpResponse(voice.read(),mimetype="audio/mpeg")
def post(self, request): try: api_news_ids = request.data top_news_id_list = [] for news_id in api_news_ids: row = News.objects(news_id=news_id).first() if not row: top_news_id_list.append(news_id) return Response({"data": top_news_id_list, "statusCode" : 200}) except Exception, e: log.debug(str(e) + " IN TopNewsIdApi ") return Response({"data": "failure", "statusCode" : 404})
def post(self, request): try: top_news_ids = request.data top_news_list = [] for news_id in top_news_ids: a = News.objects(news_id=news_id).first() if a: news_details_json = {"news_id": a.news_id, "username": a.username, "title": a.title, "url": a.url, "score": a.score, "description": a.description, "descendants": a.descendants, "confidence": a.confidence, "sentiment": a.sentiment} top_news_list.append(news_details_json) return Response({"data": top_news_list, "statusCode" : 200}) except Exception, e: log.debug(str(e) + " IN DisplayNewsApi ") return Response({"statusCode" : 404})
def getComments(request): nid=request.GET['id'] news=News.objects(pk=nid).as_pymongo() comments=list(news)[0]["comments"] for comment in comments: del(comment["_types"]) del(comment["_cls"]) uid=comment["author"] user = Account.objects(pk=uid.id).first() if comment["voice"]!=None: comment["voice"]=endpoint + "news/getCommentVoice?vid="+str(comment["voice"]) else: comment["voice"]="" comment["username"]=user.username comment["portrait"]=endpoint+"users/getPortrait?id="+str(user.pk) del(comment["author"]) return HttpResponse(dumps(comments))
def addComment(request): result=urlparse.urlparse(request.POST['comment_url']) params=urlparse.parse_qs(result.query,True) nid=params['id'] comment = Comment() comment.content ="" if request.POST.has_key("content"): content = request.POST['content'] comment.content = content if request.FILES.has_key("voice"): voice =open(request.FILES['voice'].temporary_file_path(), "rb") # change to data from request comment.voice = voice comment.author = request.user news = News.objects(pk=nid[0]).first() news.comments = news.comments + [comment] news.save() return HttpResponse("success")
def post(self, request): try: top_news_ids = request.data top_news_ids = json.dumps(top_news_ids) top_news_ids = ast.literal_eval(top_news_ids) top_news_ids = top_news_ids.keys()[0] top_news_ids = ast.literal_eval(top_news_ids) top_new_news_id_list = [] for news_id in top_news_ids: news_id = long(news_id) a = News.objects(news_id=news_id).first() # News.objects(news_id=news_id).delete() if not a: top_new_news_id_list.append(news_id) return Response({"new_news_id": top_new_news_id_list}) except Exception, e: log.debug(str(e) + " IN TopNewsIdApi ") return Response({"status": "failure"})
def sitemap(): pages = [] ten_days_ago = datetime.now().date().isoformat() for rule in app.url_map.iter_rules(): if "GET" in rule.methods and len(rule.arguments) == 0: pages.append( [rule.rule, ten_days_ago] ) for news in News.objects(): pages.append(['/news/' + news.link, news.date.date().isoformat()]) for el in os.listdir(PATH_TO_GUIDES): pages.append( ['/guides/' + el.split('.')[0], ten_days_ago] ) url_root = "http://cryptocoiners.net" sitemap_xml = render_template('sitemap.xml', pages=pages, url_root=url_root) response = app.make_response(sitemap_xml) response.headers["Content-Type"] = "application/xml" return response
def post(self, request): try: top_news_ids = request.data top_news_ids = json.dumps(top_news_ids) top_news_ids = ast.literal_eval(top_news_ids) top_news_ids = top_news_ids.keys()[0] top_news_ids = ast.literal_eval( top_news_ids) top_news_list = [] for news_id in top_news_ids: a = News.objects(news_id=news_id).first() if a: news_details_json = {"news_id": a.news_id, "username": a.username, "title": a.title, "url": a.url, "score": a.score, "description": a.description, "descendants": a.descendants, "confidence": a.confidence, "sentiment": a.sentiment} top_news_list.append(news_details_json) return Response({"status": "success", "top_news_list": top_news_list}) except Exception, e: log.debug(str(e) + " IN DisplayNewsApi ") return Response({"status": "failure"})
import time from mongoengine import connect connect('newsclient') from models import News #for news in News.objects(facebook_count__gte=800).limit(1000): for news in News.objects(hatebu_count__exists=0).limit(1000): if "rssad" in news.url: continue if news.twitter_count is None: news.get_twitter_count() if news.facebook_count is None: news.get_facebook_count() if news.hatebu_count is None: news.get_hatebu_count() if news.hatebu_count > 100 or\ news.facebook_count > 800 or\ news.twitter_count > 1200: print "tw", news.twitter_count print "fb", news.facebook_count print "hatebu", news.hatebu_count print news.og_title print news.url news.save() time.sleep(1)
import time from mongoengine import connect from mongoengine import Q from models import News connect('newsclient') queryset = News.objects(\ Q(generated_summary__exists=0) &\ Q(url__not__contains="rssad") )# &\ #Q(url__not__contains="nhk") ).limit(50) for news in queryset: print ">>>>>>>>>>-------------------" print news.url print news.og_title news.extract_content_() news.generate_summary() print news.generated_summary news.save() #time.sleep(5) print "-------------------<<<<<<<<<<\n"
def getVoice(request): nid = request.GET['id'] result = News.objects(pk=nid).first() voice = result.voice.read() return HttpResponse(voice, mimetype="audio/mpeg")
def getPicture(request): nid = request.GET['id'] result = News.objects(pk=nid).first() image = result.picture.read() return HttpResponse(image, mimetype="image/jpeg")
def deleteNews(request): News.objects(author=request.user).delete() return HttpResponse("delete all")
def news(link): news = News.objects(link=unquote(link)).first() news.popular = news.popular + 1 if news.popular else 1 news.save() return render_template("single_news.html", news=news, title=news['title'])
def delete_news(news_id): News.objects(id=news_id).delete() response_object = { 'status': 'success', 'news_id': news_id, }