def update(self, type, file, article_uuid=None, blck_uuid=None): uploader = Uploader(file) if article_uuid is None: raise Exception(_("Wrong value, need article uuid")) article = Article({"uuid": article_uuid}) if type == "video": url = uploader.video(article_uuid) block = Block({"title": file.filename, "type": "video", "uuid": blck_uuid}) block.set_content(url, "file") # return article.update_media_block(block_id=blck_uuid, content=url, title=file.filename).json() elif type == "image": url = uploader.image(article_uuid) block = Block({"title": file.filename, "type": "image", "uuid": blck_uuid}) block.set_content(url, "link") # return article.update_media_block(block_id=blck_uuid, content=url, title=file.filename).json() elif type == "file": url = uploader.file(article_uuid) block = Block({"title": file.filename, "type": "file", "uuid": blck_uuid}) block.set_content(url, "link") # return article.update_media_block(block_id=blck_uuid, content=url, title=file.filename).json() else: raise Exception(_("Wrong type")) return article.update_block_new(block).json()
def add_article(args, result): title = args[0] author = args[1] content = args[2] label = args[3] article = Article(title=title, author=author, content=content, label=label) article.save() result['status'] = 'success'
def delete(self, id): user = current_user() article = query_article(id) if article is None: return jsonify(falseReturn("该文章不存在")) if article.writer_student_number != user.student_number: return jsonify(falseReturn("非法删除,只有该文章的作者才可以删除文章")) Article.delete_article(article) return jsonify(trueReturn("删除文章成功"))
def addArticle(): form = request.form # 计算字数 就是计算字符串的长度 numbers = len(form['content']) if request.method == 'POST': with db.auto_commit(): article = Article() article.set_attrs(form) article.numbers = numbers db.session.add(article) return jsonify({'code': 200, 'message': '写入文章成功'})
def create_article(article_input: ArticleInput) -> Article: collection = Article.collection() document = article_input.dict() resp = collection.insert_one(document) inserted_id = resp.inserted_id document["_id"] = inserted_id return Article.from_mongodb(document)
def get_article_by_id(article_id: Union[str, ObjectId]) -> Optional[Article]: article_id = ensure_object_id(article_id) collection = Article.collection() found = collection.find_one(article_id) if not found: return None return Article.from_mongodb(found)
def add_article(self, form, user): try: article = Article(form=form) article.user_id = user.id article.read_count = 0 category = self.dao.getCategoryById(form['category']) article.category = [category] self.dao.add_article(article) return PublicMethod.true_return(data='', msg=u'发布成功') except Exception, e: traceback.print_exc() return PublicMethod.false_return(data='', msg=u'后台报错,请联系管理员')
def update_article_by_id(article_id: Union[str, ObjectId], article_args: ArticleInput) -> Optional[Article]: collection = Article.collection() article_id = ensure_object_id(article_id) resp = collection.update_one(dict(_id=article_id), {"$set": article_args.dict()}) if resp.modified_count == 1: return Article(id=str(article_id), **article_args.dict()) else: return None
def edit(): form = EditForm(request.form) uid = current_user.id user = User.query.filter_by(id=uid).first() form.author.data = user.nickname if request.method == 'POST' and form.validate(): article = Article() with db.auto_commit(): article.set_attrs(form.data) db.session.add(article) db.session.commit() return render_template('edit.html', form=form)
def scrap_and_save(url): #try: #_set_task_progress(0) data = [] page = scr.ScrapPage(url) # Using our Scrap module to scrap the website articles = page.Articles() n = len(articles) #i=0 for article in articles: b = scr.ScrapArticles() b.run(article, url) content = b.content if content != '': headline = b.headline authors = b.authors url_art = b.url summary = b.summary keywords = b.keywords json = tjs.ToJson(authors, content, url_art, headline, keywords, summary) article = Article(**json).save() json['id'] = article.id #print(json['headline']) data.append(json) #time.sleep(5) #i += 1 #data=Article.objects() return data
def key(): if request.method == 'POST': key=request.form.get('key') arts=Article.objects(keywords=key) return render_template('articles.html',arts=arts) #display articles in db else: return redirect(url_for('articles'))
def get(self, student_number): articles = query_someone_article(student_number) if articles is None: return jsonify(true_data_Return("null", "null", "无数据")) data = [] for i in articles: data.append(Article.get_simple_article(i)) return jsonify(true_data_Return(data, "", "获取数据成功"))
def get(self, id): article = query_article(id) if article is None: return jsonify(falseReturn("该文章不存在")) data = [] data.append(Article.get_article(article)) history("article", article.title, id) return jsonify(true_data_Return(data, "", "获取数据成功"))
def delete_article_by_id(article_id: str) -> bool: collection = Article.collection() article_id = ensure_object_id(article_id) resp = collection.delete_one(dict(_id=article_id)) return resp.deleted_count == 1
def prepare(): form = TODOForm() if form.validate(): with db.auto_commit(): article = Article(title=form.title.data, text=form.text.data) db.session.add(article) return redirect(url_for('main.index')) return render_template('prepare.html', form=form)
def get(self, keyword): try: articles = Article.objects(keywords=keyword).to_json() return Response(articles, mimetype="application/json", status=200) except DoesNotExist: raise ArticleNotExistsError except Exception: raise InternalServerError
def del_article(article_id, result): article = Article.objects(_id=article_id) if article: article.delete() result['status'] = 'success' else: result['status'] = 'fail' result['msg'] = 'article not exist'
def edit_article_importance(): request_body = request.get_json() # user_id = request_body['user_id'] article_id = request_body['article_id'] article_importance = request_body['article_importance'] article = Article.edit_article_importance( article_id=article_id, article_importance=article_importance) return Success(article)
def search_articles_by_label(required_label): tmp_list = list() articles = Article.objects() for article in articles: # whether list has contains relationship if set(required_label) <= set(article.label): tmp_list.append(article) return tmp_list
def create_article(): request_body = request.get_json() # user_id = request_body['user_id'] editorial_topic_id = request_body['editorial_topic_id'] article_id = request_body['article_id'] linked_editorial_topic = Article.create_article( editorial_topic_id=editorial_topic_id, article_id=article_id) return Success(linked_editorial_topic)
def delete_tag_from_article(): request_body = request.get_json() # user_id = request_body['user_id'] article_id = request_body['article_id'] article_tags = request_body['article_tags'] article = Article.delete_tag_from_article(article_id=article_id, article_tags=article_tags) return Success(article)
def upload_and_parse_url(): request_body = request.get_json() # user_id = request_body['user_id'] editorial_topic_id = request_body['editorial_topic_id'] target_url = request_body['target_url'] linked_editorial_topic = Article.upload_and_parse_url( editorial_topic_id=editorial_topic_id, target_url=target_url) return Success(linked_editorial_topic)
def get_news(url): """ RSSから記事情報をListで取得 Parameters ---------- url : String RSSのURL Returns ------- list[Article] 記事のList """ # RSS情報を取得 feeds = feedparser.parse(url) ai = predict() articles = list() for feed in feeds['entries']: article = Article() # 記事へのURL article.url = feed['link'] # 記事名 article.title = feed['title'] # タグ if app.config["TAG_JUDGMENT_BY_AI"]: article.tag = get_tag(feed) + "," + ai.tag_judgment(article.title) else: article.tag = get_tag(feed) # Rss内の画像取得 article.image = search_eyecatch_by_feed(feed) # 記事更新日 TODO:要改善 article.datetime = datetime.today().strftime("%Y/%m/%d %H:%M:%S") # サイトタイトル article.site_name = feeds['feed']['title'] articles.append(article) return articles
def post(self): try: body = request.get_json() article = Article(**body).save() id = article.id return {'id': str(id)}, 200 except (FieldDoesNotExist, ValidationError): raise SchemaValidationError except Exception as e: raise InternalServerError
def get_likes_status(args, result): id = args[0] phone_num = args[1] article = Article.objects(_id=id).first() if article: likes_list = article['point_praise_user_list'] if phone_num in likes_list: result['is_like'] = True else: result['status'] = 'fail' result['msg'] = 'article not exist'
def init_article_data(): about_us = Article.query.filter_by(type=util.ABOUT).first() if not about_us: about_us = Article( type=util.ABOUT, text="This is about us text paragraph", ) db.session.add(about_us) contact_us = Article.query.filter_by(type=util.CONTACT).first() if not contact_us: contact_us = Article(type=util.CONTACT, text="This is contact us text paragraphe") db.session.add(contact_us) contact = Contact.query.filter_by(phone1=admin_contact_number).first() if not contact: contact = Contact(phone1=admin_contact_number, email="*****@*****.**") db.session.add(contact)
def post(self): user = current_user() try: title = request.form['title'] content = request.form['content'] except: return jsonify(falseReturn("缺少部分必要信息")) article_id = create_id() new = Article(title, user.student_number, article_id, content) db.session.add(new) session_commit() return jsonify(trueReturn("上传文章成功"))
def edit_article(args, result): article_id = args[0] edit_type = args[1] edit_content = args[2] article = Article.objects(_id=article_id).first() if article: article[edit_type] = edit_content article.save() result['status'] = 'success' else: result['status'] = 'fail' result['msg'] = 'article not exist'
def test_delete_article_exist(client, mock_article_gen): collection = Article.collection() article1 = mock_article_gen(title="First") article2 = mock_article_gen(title="Second") assert collection.count_documents({}) == 2 resp = client.delete(f"/article/{article1.id}") print(resp.json()) assert resp.status_code == 200 assert collection.count_documents({}) == 1
def test_delete_article_doesnt_exist(client, mock_article_gen): collection = Article.collection() non_existent_id = ObjectId() article1 = mock_article_gen(title="First") article2 = mock_article_gen(title="Second") assert collection.count_documents({}) == 2 resp = client.delete(f"/article/{non_existent_id}") assert resp.status_code == 404 assert collection.count_documents({}) == 2
def publish(): message = dict(MESSAGE) reqp = reqparse.RequestParser() reqp.add_argument("title", type=str, required=True, location=["json", "form"]) reqp.add_argument("tag", type=list, required=False, location=["json", "form"]) reqp.add_argument("privacy", type=bool, required=True, location=["json", "form"]) reqp.add_argument("article", type=str, required=True, location=["json", "form"]) args = reqp.parse_args() today = datetime.datetime.now() tags = request.json['tag'] # print(request.json['tag']) if Article.query.filter_by(title=args["title"]).first() is not None: message["success"] = False message["message"] = "文章已存在!请换个标题。" return jsonify(message) article = Article(title=args["title"], tags="丨".join(tags), article=args["article"], privacy=args["privacy"], p_year=today.year, p_month=today.month, p_day=today.day) try: db.session.add(article) db.session.commit() # print(article.id) message["res"] = {"id": article.id} except Exception as e: print(e, flush=True) db.session.rollback() message["success"] = False message["message"] = "新建文章失败!" # print("--Log--: post article %s, %s" % (message["success"], message["message"]), flush=True) return jsonify(message)