Esempio n. 1
0
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)
Esempio n. 2
0
def delete_news(news_id):
    News.objects(id=news_id).delete()
    response_object = {
        'status': 'success',
        'news_id': news_id,
    }
    return jsonify(response_object), 200
Esempio n. 3
0
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")
Esempio n. 4
0
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))
Esempio n. 5
0
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")
Esempio n. 6
0
 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})
Esempio n. 7
0
 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})
Esempio n. 8
0
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))
Esempio n. 9
0
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")
Esempio n. 10
0
 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"})
Esempio n. 11
0
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
Esempio n. 12
0
 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"})
Esempio n. 13
0
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)
Esempio n. 14
0
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"
Esempio n. 15
0
def getVoice(request):
    nid = request.GET['id']
    result = News.objects(pk=nid).first()
    voice = result.voice.read()
    return HttpResponse(voice, mimetype="audio/mpeg")
Esempio n. 16
0
def getPicture(request):
    nid = request.GET['id']
    result = News.objects(pk=nid).first()
    image = result.picture.read()
    return HttpResponse(image, mimetype="image/jpeg")
Esempio n. 17
0
def deleteNews(request):
    News.objects(author=request.user).delete()
    return HttpResponse("delete all")
Esempio n. 18
0
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'])
Esempio n. 19
0
def delete_news(news_id):
    News.objects(id=news_id).delete()
    response_object = {
        'status': 'success',
        'news_id': news_id,
    }