Exemplo n.º 1
0
def parse_text_to_db(url):
    article = ArticleModel(url)
    text = get_text(url)
    tokens, entities, parse_tree = analyze_text(text)

    # upsert article item
    fields = {
        "url": url,
        "text": text,
        "tokens": tokens,
        "entities": entities,
        "tree": parse_tree
    }

    return article.upsert(fields)
Exemplo n.º 2
0
    def put(self, title):
        article = ArticleModel.find_by_title(title)
        if not article:
            return {'message': 'Article not found'}, 404

        data = Article.parser.parse_args()
        updated_article = ArticleModel(title, **data)
        article.content = updated_article.content

        try:
            article.save_to_db()
        except:
            return {"message": "An error occurred updating the article."}, 500

        return article.json(), 201
Exemplo n.º 3
0
 def get(self):
     if request.args:
         keys = request.args['keys']
     else:
         keys = ""
     articles = ArticleModel.get_all_article(keys)
     return {"articles": articles}, 200
Exemplo n.º 4
0
    def post(self):
        data = Article.parser.parse_args()
        article = ArticleModel(**data)

        if data["title"] == "":
            return {"message": "error"}, 400

        try:
            article.save_to_db()
        except:
            return {
                "message":
                "Something was wrong when you try to insert this article"
            }, 500

        return {'article': article.json()}, 201
Exemplo n.º 5
0
    def post(self):
        data = Article.parser.parse_args()
        url = data["url"]

        existing = ArticleModel.find_by_id(url)
        if existing:
            return {
                "message": "A text with url '{}' already exists".format(url)
            }, 400

        # send to nlp pipeline
        try:
            article = ArticleModel(url)
            article.save()
            parse_text_to_db.delay(url)
        except:
            return {"message": "An error occurred inserting the item"}, 500

        return {"url": url}, 201
Exemplo n.º 6
0
 def get(self):
     _article_parser = reqparse.RequestParser()
     _article_parser.add_argument('id',
                                  type=non_empty_string,
                                  required=True,
                                  help="The id field is required!")
     data = _article_parser.parse_args()
     article = ArticleModel.find_by_id(data['id'])
     if article:
         return article.json()
     return {'message': 'Article not found'}, 404
Exemplo n.º 7
0
 def delete(self):
     _article_parser = reqparse.RequestParser(bundle_errors=True)
     _article_parser.add_argument('id',
                                  type=non_empty_string,
                                  required=True,
                                  help="The id field is required!")
     data = _article_parser.parse_args()
     article = ArticleModel.find_by_id(data['id'])
     if article:
         article.delete_from_db()
     return {'message': 'Article Deleted'}
Exemplo n.º 8
0
    def put(self, title):
        data = Article.parser.parse_args()

        article = ArticleModel.find_by_title(title)

        if article:
            article.price = data['price']
        else:
            article = ArticleModel(title, **data)

        article.save_to_db()

        return article.json()
Exemplo n.º 9
0
    def post(self, title):
        if ArticleModel.find_by_title(title):
            return {
                'message':
                "An article with title '{}' already exists.".format(title)
            }, 400

        data = Article.parser.parse_args()

        article = ArticleModel(title, **data)

        try:
            article.save_to_db()
        except:
            return {"message": "An error occurred inserting the article."}, 500

        return article.json(), 201
Exemplo n.º 10
0
    def post(self):
        _article_parser = reqparse.RequestParser(bundle_errors=True)
        _article_parser.add_argument('title',
                                     type=non_empty_string,
                                     required=True,
                                     help="The title field is required!")
        _article_parser.add_argument('slug',
                                     type=non_empty_string,
                                     required=True,
                                     help="The slug field is required!")
        _article_parser.add_argument('image_url',
                                     type=non_empty_string,
                                     required=True,
                                     help="The image_url field is required!")
        _article_parser.add_argument('description',
                                     type=non_empty_string,
                                     required=True,
                                     help="The description field is required!")
        _article_parser.add_argument('category_id',
                                     type=non_empty_string,
                                     required=True,
                                     help="The category field is required!")
        data = _article_parser.parse_args()
        if ArticleModel.find_by_title(data['title']):
            return {
                'message':
                "A article with name {} already exists".format(data['title'])
            }, 400

        article = ArticleModel(**data)
        try:
            article.save_to_db()
        except Exception as e:
            return {
                'message': 'An error occurred while creating the article.'
            }, 500

        return article.json(), 201
Exemplo n.º 11
0
 def get(self):
     docs = ArticleModel.all()
     return [parse_article(doc) for doc in docs]
Exemplo n.º 12
0
 def get(self, id):
     article = ArticleModel.find_by_id(id)
     return parse_article(article)
Exemplo n.º 13
0
 def delete(self, title):
     article = ArticleModel.find_by_title(title)
     if article:
         article.delete_from_db()
         return {'message': 'Article deleted.'}
     return {'message': 'Article not found.'}, 404
Exemplo n.º 14
0
    def put(self):
        data = Article.parser.parse_args()
        # article = ArticleModel(**data)
        article = ArticleModel.find_by_article_id(data["id"])
        if article is None:
            article = ArticleModel(**data)
        else:
            article.id = data["id"]
            article.title = data["title"]
            article.tag = data["tag"]
            article.sortDescription = data["sortDescription"]
            article.date = data["date"]
            article.key = data["key"]
            article.handleCode = data["handleCode"]
            article.user_id = data["user_id"]

        try:
            article.save_to_db()
        except:
            return {
                "message":
                "Something was wrong when you try to update this article"
            }, 500

        return article.json()
Exemplo n.º 15
0
 def delete(self):
     data = Article.parser.parse_args()
     article = ArticleModel.find_by_article_id(data['id'])
     if article:
         article.delete_db()
     return {"message": "Article deleted."}
Exemplo n.º 16
0
    def put(self, article_id):
        _article_parser = reqparse.RequestParser(bundle_errors=True)

        _article_parser.add_argument('title',
                                     type=non_empty_string,
                                     required=False,
                                     help="The title field is required!")
        _article_parser.add_argument('slug',
                                     type=non_empty_string,
                                     required=False,
                                     help="The slug field is required!")
        _article_parser.add_argument('image_url',
                                     type=non_empty_string,
                                     required=True,
                                     help="The image_url field is required!")
        _article_parser.add_argument('description',
                                     type=non_empty_string,
                                     required=False,
                                     help="The description field is required!")
        _article_parser.add_argument('category_id',
                                     type=non_empty_string,
                                     required=False,
                                     help="The category field is required!")
        data = _article_parser.parse_args()
        article = ArticleModel.find_by_id(article_id)

        if article is None:
            article = ArticleModel(**data)
        else:
            article.title = data['title'] if data[
                'title'] is not None else article.title
            article.slug = data['slug'] if data[
                'slug'] is not None else article.slug
            article.image_url = data['image_url'] if data[
                'image_url'] is not None else article.image_url
            article.description = data['description'] if data[
                'description'] is not None else article.description
            article.category_id = data['category_id'] if data[
                'category_id'] is not None else article.category_id

        try:
            article.save_to_db()
        except Exception as e:
            return {
                'message': 'An error occurred while creating the article.'
            }, 500

        return article.json(), 201
Exemplo n.º 17
0
 def get(self):
     return {
         'articles': [article.json() for article in ArticleModel.objects()]
     }
Exemplo n.º 18
0
 def get(self, title):
     article = ArticleModel.find_by_title(title)
     if article:
         return article.json()
     return {'message': 'Article not found'}, 404
Exemplo n.º 19
0
# generate articles
for _ in range(50):

    # generate article
    article = {}
    article['title'] = fake.sentence()
    article['content'] = fake.text()
    article['author'] = fake.name()
    article['date'] = fake.date()
    article['article_type'] = article_type[random.randint(
        0,
        len(article_type) - 1)]

    # append to list
    article_model = ArticleModel(**article)
    articles.append(article_model)

# initialize list
services = []

# generate services
for _ in range(100):
    service = {}
    service['name'] = fake.job()

    # append to list
    service_model = ServiceModel(**service)
    services.append(service_model)

#print("Users")
Exemplo n.º 20
0
 def get(self):
     return {'articles': [x.json() for x in ArticleModel.find_all()]}