Exemple #1
0
 def get_form_kwargs(self):
     kwargs = super(SubmitNew, self).get_form_kwargs()
     kwargs['instance'] = Articles()
     if self.request.user.is_authenticated():
         kwargs['instance'].subject = '0'
         kwargs['instance'].name = self.request.user
     return kwargs
Exemple #2
0
def index():
    from models import Articles, Comments
    from forms import ArticlesForm, CommentsForm

    if request.method == 'POST':
        print(request.form)
        us_form = ArticlesForm(request.form)

        if us_form.validate():
            post_art = Articles(**us_form.data)
            db.session.add(post_art)
            db.session.commit()

            return 'Article was created'
        else:
            us_form = CommentsForm(request.form)

            if us_form.validate():
                post_com = Comments(**us_form.data)
                db.session.add(post_com)
                db.session.commit()
                return 'Commit was created'
            else:
                raise Exception
    if request.method == 'GET':
        vie_posts = Articles.query.all()
        return render_template('home.txt', posts=vie_posts)
Exemple #3
0
    def copyFromArticles(self, request):
        '''Copies articles and authors from legacy Articles Kind into new Article and Author kinds'''
        user = endpoints.get_current_user()
        if not user:
            raise endpoints.UnauthorizedException('Authorization required')

        for article in Articles().all():
            if '@' not in article.author:
                author_email = article.author + '@gmail.com'
            else:
                author_email = article.author

            a_key = ndb.Key(Author, author_email)
            author = a_key.get()
            # create new Author if not there
            if not author:
                author = Author(
                    key=a_key,
                    authorID=str(Author.allocate_ids(size=1)[0]),
                    displayName=author_email.split('@')[0],
                    mainEmail=author_email,
                )
                author.put()

            self.copyArticlesKind(article, author)

        return BooleanMessage(data=True)
Exemple #4
0
def handle_articles():

    #POST method
    if request.method == "POST":
        body = request.get_json()
        #Conditions for request!
        if body is None:
            raise APIException(
                "You need to specify the request body as a json object",
                status_code=400)
        if "title" not in body:
            raise APIException('You need to specify the title',
                               status_code=400)
        if "description" not in body:
            raise APIException('You need to specify the description',
                               status_code=400)

        article = Articles(title=body['title'],
                           description=body["description"])
        db.session.add(article)
        db.session.commit()

        return 'ok', 200

        #GET Method
    if request.method == 'GET':
        all_articles = Articles.query.all()
        all_articles = list(map(lambda x: x.serialize(), all_articles))
        return jsonify(all_articles), 200
Exemple #5
0
def test_db():

    from models import Articles
    try:
        t_book = Articles(name='aaaa', author='aaaaa', published=2001)
        db.session.add(t_book)
        db.session.commit()
    except Exception as e:
        return (str(e))
Exemple #6
0
def addArticleView():
    if request.method == 'POST':
        title = request.values.get("title")
        content = request.values.get("content")
        article = Articles(article_title=title, article_content=content)
        db.session.add(article)
        db.session.commit()
        flash('Add article succeed!')
        return redirect(url_for('adminArticlesView'))
    return render_template('adminAddArticle.html')
Exemple #7
0
def form():
    if request.form:
        new_article = Articles(name=request.form['name'],
                               title=request.form['title'],
                               sub_title=request.form['article_subtitle'],
                               body=request.form['description'],
                               url=request.form['url'])
        db.session.add(new_article)
        db.session.commit()
        return redirect(url_for('index'))
    return render_template('form.html')
Exemple #8
0
    def fetch_articles_from_specific_dates(self,
                                           query: str,
                                           date_from: str,
                                           date_to: str,
                                           page_size: int = 100) -> Articles:
        """Method to fetch articles from specific dates: dates should be in
        format in 2019-08-04"""

        if self.mode == 'NEWSPAPER':
            params = "q={0}&pageSize={1}&apiKey={2}&from={3}&to={4}".format(
                query, page_size, self.api_key, date_from, date_to)
        elif self.mode == 'GNEWS':
            params = "q={0}&max={1}&token={2}&mindate={3}&maxdate={4}".format(
                query, page_size, self.api_key, date_from, date_to)
        url = self.baseUrl + params
        results = requests.get(url).json()
        try:
            articles = results["articles"]
        except KeyError:
            return Articles([])
        return Articles(self.create_article_objects(articles))
def add_article():
    form = ArticleForm(request.form)
    if request.method == 'POST' and form.validate():
        title = form.title.data
        content = form.content.data
        author = session['username']
        new_article = Articles(title=title, content=content, author=author)
        db.session.add(new_article)
        db.session.commit()
        flash('Article created', 'success')
        return redirect(url_for('blog.dashboard'))
    return render_template('add_article.html', form=form)
Exemple #10
0
def Release():
    if request.method == 'GET':
        return render_template('release.html')
    else:
        title = request.form.get('title')
        content = request.form.get('content')
        article = Articles(title=title,content=content)

        article.author = g.user
        db.session.add(article)
        db.session.commit()
        return redirect(url_for('Index'))
        pass
Exemple #11
0
 def fetch_all_articles(self, query: str, page_size: int = 10) -> Articles:
     """Method to fetch all articles of a specific query.
     Note to get the full body use the get_body method"""
     if self.mode == 'NEWSPAPER':
         url_parameters = "q={0}&pageSize={1}&apiKey={2}".format(
             query, page_size, self.api_key)
     elif self.mode == 'GNEWS':
         url_parameters = "q={0}&max={1}&token={2}".format(
             query, page_size, self.api_key)
     url = self.baseUrl + url_parameters
     results = requests.get(url).json()
     all_articles = results["articles"]
     return Articles(self.create_article_objects(all_articles))
def process_articles_source(article_list):
    source_articles = []
    for art in article_list:
        source = art.get("source")
        author = art.get('author')
        title = art.get('title')
        description = art.get('description')
        url = art.get('url')
        urlToImage = art.get('urlToImage')
        publishedAt = art.get('publishedAt')
        
        article_object = Articles(source,author,title,description,url,urlToImage,publishedAt)
        source_articles.append(article_object)
    return source_articles
Exemple #13
0
def add_book():
    name=request.args.get('name')
    author=request.args.get('author')
    published=request.args.get('published')
    try:
        book=Articles(
            name=name,
            author=author,
            published=published
        )
        db.session.add(book)
        db.session.commit()
        return "Book added. book id={}".format(book.id)
    except Exception as e:
	    return(str(e))
def process_new_articles(articles_list):
    articles_outcome = []

    for one_article in articles_list:
        source = one_article.get("source")
        author = one_article.get("author")
        description = one_article.get("description")
        title = one_article.get("title")
        url = one_article.get("url")
        urlToImage = one_article.get("urlToImage")
        publishedAt = one_article.get("publishedAt") 
        new_article = Articles(source, author, title, description, url, urlToImage, publishedAt)
        articles_outcome.append(new_article)
    
    return articles_outcome
Exemple #15
0
def create_article():
    if request.method == 'POST':
        title = request.form['title']
        intro = request.form['intro']
        text = request.form['text']

        article = Articles(title=title, intro=intro, text=text)

        try:
            db.session.add(article)
            db.session.commit()
            return redirect('/posts')
        except:
            return 'При добавлении страницы произошла ошибка'

    else:
        return render_template('create-article.html')
Exemple #16
0
def test(request):
    title = u'何以解忧,唯有前行!'
    subtitle = u'何以解忧,唯有杜康'
    content = u'我其实很久以前就读了东野圭吾的《解忧杂货店》,感觉这是一本最不像东野圭吾的小说,没有他一贯的引人注目的悬疑和推理,看似十分凌乱。初读的时候,很容易被众多的人物和错乱的时空搞得莫名奇妙。但是,当你真正读懂读通,理清了小说的时间顺序和人物关系,你就会发现它仍旧是东野圭吾的风格,故事缜密又奇妙。'
    author = Author.objects.filter(name='xiaoxiao').first()
    categorys = Categorys.objects.get(pk=3)
    tag = Tags.objects.get(pk=3)
    article = Articles(title=title,
                       subtitle=subtitle,
                       content=content,
                       author=author,
                       categorys=categorys)
    # article = Articles.objects.all().first()
    for i in range(50):
        article.save()
        article.tags.add(tag)
    return HttpResponse('success')
Exemple #17
0
def articles_list():
    form = ArticlesForm()
    all_articles = Articles.query.all()
    all_authors = Author.query.all()
    if request.method == "POST":
        if form.validate() is not False:
            new_article = Articles(request.form.get('author'), form.title.data,
                                   form.slug.data, form.lead.data,
                                   form.body.data, datetime.datetime.now())
            db.session.add(new_article)
            db.session.commit()
            form = ArticlesForm()  # Re-render the form

    return render_template('articles.html',
                           form=form,
                           all_articles=all_articles,
                           all_authors=all_authors)
Exemple #18
0
def add_book_form():
    if request.method == 'POST':
        name=request.form.get('name')
        author=request.form.get('author')
        published=request.form.get('published')
        try:
            book=Articles(
                name=name,
                author=author,
                published=published
            )
            db.session.add(book)
            db.session.commit()
            return "Book added. book id={}".format(book.id)
        except Exception as e:
            return(str(e))
    return render_template("getdata.html")
Exemple #19
0
    def process_item(self, item, spider):
        """Save articles in the database.
		This method is called for every item pipeline component.
		"""

        session = self.Session()
        article = Articles(**item)

        try:
            session.add(article)
            session.commit()
        except:
            session.rollback()
            raise
        finally:
            session.close()

        return item
Exemple #20
0
def api_create_article():
    i = ctx.request.input(name='',
                          summary='',
                          category_id='',
                          tags='',
                          draft='',
                          publish_time='',
                          cover=None,
                          content='')
    if not i.cover:
        raise APIValueError('cover', 'Cover cannot be empty.')
    name = assert_not_empty(i.name, 'name')
    summary = assert_not_empty(i.summary, 'summary')
    category_id = _check_category_id(i.category_id)
    content = assert_not_empty(i.content, 'content')
    draft = i.draft.lower() == 'true'
    if draft:
        publish_time = time.time() + TIME_FEATURE
    else:
        publish_time = time2timestamp(
            i.publish_time) if i.publish_time else time.time()

    f = i.cover
    atta = uploaders.upload_cover(name, f.file.read())

    article_id = db.next_id()
    article = Articles( \
        _id = article_id, \
        user_id = ctx.user._id, \
        cover_id = atta._id, \
        category_id = category_id, \
        content_id = texts.set(article_id, content), \
        publish_time = publish_time, \
        draft = draft, \
        user_name = ctx.user.name, \
        name = name, \
        summary = summary, \
        tags = texts.format_tags(i.tags) \
    ).insert()
    return dict(_id=article._id)
Exemple #21
0
 def response(self):
     if self.request.method == 'POST':
         submitted = self.request.POST.items()
         try:
             self.get_form().validate(submitted)
         except deform.ValidationFailure as e:
             return Response(
                 env.get_template('create.html').render(form=e.render()))
         article = Articles(
             **{
                 'title': self.request.POST['title'],
                 'content': self.request.POST['content']
             })
         dbsession = Session()
         dbsession.add(article)
         dbsession.commit()
         dbsession.close()
         self.session = get_session(self.request).pop('csrf')
         return Response(status=302, location='/')
     return Response(
         env.get_template('create.html').render(
             form=self.get_form().render()))
Exemple #22
0
def article_add():
    if 'user_name' in session:
        # Fetch News Categories from DB
        news_categories = News_categories.query.order_by(
            News_categories.date_created).all()

        viewData = {
            'title': 'Add Article',
            'list_item_active': 'article_add',
            'news_categories': news_categories
        }

        if request.method == 'POST':
            category_id = request.form['category_id']
            author_id = session['userID']
            title = request.form['title']
            summary = request.form['summary']
            content = request.form['content']
            pub_status = request.form['pub_status']

            article = Articles(category_id=category_id,
                               author_id=author_id,
                               title=title,
                               summary=summary,
                               content=content,
                               pub_status=pub_status)

            try:
                db.session.add(article)
                db.session.commit()

                return redirect(url_for('index'))

            except:
                return 'There was an issue with creating new Article!'
        else:
            return render_template('article_add.html', data=viewData)
    else:
        return redirect(url_for('login'))
def itemAdd():
    if 'username' not in login_session:
        return redirect(url_for('login'))
    categories = session.query(Categories).all()
    if request.method == 'POST':
        title = request.form['title']
        about = request.form['description']
        category = request.form['category']
        picture = request.form['picture']
        newArticle = Articles(
            title=title,
            about=about,
            category_name=category,
            time=str(datetime.datetime.now()),
            user_id=login_session['user_id'],
            picture=picture)
        session.add(newArticle)
        session.commit()
        flash("Article has been added.")
        return redirect(url_for('homeHandler'))
    if request.method == 'GET':
        return render_template('newArticle.html', categories=categories)
Exemple #24
0
def publish():
    user_id=flask.session.get('id')
    if user_id:
        if flask.request.method=='GET':
            return flask.render_template('publish.html')
        else:
            title=flask.request.form.get('title')
            content=flask.request.form.get('content')
            tagname=flask.request.form.get('tagname')
            id=flask.request.form.get('id')
            tag=Tags.query.filter(Tags.tagname==tagname).first()
            if tag:
                tag_id=tag.id
            else:
                tag=Tags(tagname=tagname)
                db.session.add(tag)
                db.session.commit()
                tag_id = Tags.query.filter(Tags.tagname == tagname).first().id
            article=Articles(id=id,title=title,content=content,tag_id=tag_id)
            db.session.add(article)
            db.session.commit()
            return flask.redirect(flask.url_for('index'))
            # title = form.title.data
            # content = form.content.data
            # tagname = form.tagname.data
            # tag = Tags.query.filter(Tags.tagname == tagname).first()
            # if tag:
            #     tag_id = tag.id
            # else:
            #     tag=Tags(tagname=tagname)
            #     db.session.add(tag)
            #     db.session.commit()
            #     tag_id = Tags.query.filter(Tags.tagname == tagname).first().id
            # article=Articles(title=title,content=content,tag_id=tag_id)
            # db.session.add(article)
            # db.session.commit()
            # return flask.redirect(flask.url_for('index'))
    else:
        return flask.redirect(flask.url_for('login'))
Exemple #25
0
def front_add_article(request):
    if request.method == 'GET':
        categorys = Categorys.objects.all()
        tags = Tags.objects.all()
        context = {'categorys': categorys, 'tags': tags}
        if hasattr(request, 'front_user'):
            context['front_user'] = request.front_user
        return render(request, 'front_add_article.html', context)
    else:
        form = AddArticleForm(request.POST)
        if form.is_valid():
            title = form.cleaned_data.get('title')
            subtitle = form.cleaned_data.get('subtitle')
            data = request.POST
            tags = request.POST.getlist('tags[]')
            context = {}
            for k, v in data.iteritems():
                context[k] = v
            category_name = context['category']  #获取分类
            categoryModel = Categorys.objects.filter(
                name=category_name).first()
            current_user = request.front_user
            article_content = context['textarea_content']
            articleModel = Articles(title=title,
                                    subtitle=subtitle,
                                    categorys=categoryModel,
                                    author=current_user,
                                    content=article_content)
            articleModel.save()
            for tag in tags:
                tagModel = Tags.objects.filter(pk=tag).first()
                articleModel.tags.add(tagModel)
            data = {'code': 200, 'info': u'恭喜您!文章发布成功!'}
            return JsonResponse(data)
        else:
            return render(request, 'front_add_article.html',
                          {'error': '表单验证出错!'})
Exemple #26
0
def publish_article():
    if session.get('username'):
        if request.method == 'GET':
            return render_template('publish.html')
        else:
            article_type = request.values.get('article_type')
            title = request.form.get('title').strip()
            content = request.form.get('content').strip()
            if title and content:
                article = Articles(type=article_type,
                                   title=title,
                                   content=content)
                author = Users.query.filter(
                    Users.username == session['username']).first()
                article.author = author
                db.session.add(article)
                db.session.commit()
                return redirect(
                    url_for('article.article_info', article_id=article.id))
            else:
                flash(u'标题或内容不能为空', 'error')
                return render_template('publish.html')
    else:
        return redirect(url_for('auth.login'))
Exemple #27
0
    def setUp(self):

        self.new_article = Articles('')