def post(self): from libs.feedparser import parse user = users.get_current_user() url = self.request.get('url') p = parse(str(url)) try: d = p['items'][0] except IndexError: pass if user: q = Feeds.query(Feeds.user == user, Feeds.url == url) if q.get() is None: feed = Feeds() def txn(): feed.blog = p.feed.title feed.root = p.feed.link feed.user = user feed.feed = url feed.url = d.link feed.put() ndb.transaction(txn) deferred.defer(utils.new_bm, d, feed.key, _queue="admin") self.redirect(self.request.referer) else: self.redirect('/')
def index(request): if request.session.session_key: current_user = request.user if current_user.is_authenticated(): if request.method == 'POST': form = NewFeedForm(request.POST) if form.is_valid(): content = form.cleaned_data['content'] feed = Feeds(user=request.user, content=content, creat_time=datetime.datetime.now()).save() return HttpResponseRedirect('/') else: form = NewFeedForm() return render_to_response( 'accounts/broadcast.html', { 'form': form, 'current_user': current_user, 'STATIC_URL': STATIC_URL }, context_instance=RequestContext(request)) # 这里应该还有个else,来处理有sessiondata但是已经注销了的情况 else: if request.method == 'POST': if 'login' in request.POST: return indexlogin(request) elif 'signup' in request.POST: return indexsignup(request) else: form_login = AccountsLoginForm() form_signup = AccountsSignupForm() return render_to_response( 'index.html', { 'form_login': form_login, 'form_signup': form_signup, 'STATIC_URL': STATIC_URL }, context_instance=RequestContext(request)) else: if request.method == 'POST': if 'login' in request.POST: return indexlogin(request) elif 'signup' in request.POST: print 'signup' return indexsignup(request) else: form_login = AccountsLoginForm() form_signup = AccountsSignupForm() return render_to_response('index.html', { 'form_login': form_login, 'form_signup': form_signup, 'STATIC_URL': STATIC_URL }, context_instance=RequestContext(request))
def processFeedItem(self, item): """ adds news item to feeds table :param item: :return: """ fdItem = Feeds(**item) self.processDBentry(fdItem) return item
def create_feeds(): try: if not request.json: abort(400) else: feeds = Feeds(request.json['title'], request.json['author'], request.json['message'], request.json['lg_id'], int(time.time()), request.json['type']) session.add(feeds) session.commit() result = feeds.serialize() if 'recipients' in request.json: session.refresh(feeds) recipient = Recipient(request.json['recipients'], feeds.id) session.add(recipient) session.commit() result.update({'recipients': recipient.recipients}) if 'no_of_likes' in request.json: session.refresh(feeds) likes = Likes(feeds.id, request.json['no_of_likes']) session.add(likes) session.commit() result.update({'no_of_likes': likes.no_of_likes}) # return jsonify({ # "id": feeds.id, # "title": feeds.title, # "author": feeds.author, # "message": feeds.message, # "lg_id": feeds.lg_id, # "datetime": time.strftime('%d-%m-%Y %H:%M', time.localtime(feeds.datetime)), # "type": feeds.type, # "no_of_likes": likes.no_of_likes # }) return jsonify(result) except Exception as e: return (str(e))