|
@@ -42,7 +42,8 @@ async def search_news(
|
|
|
"content" : news_obj.content,
|
|
|
"files" : news_obj.files,
|
|
|
"URL" : news_obj.URL,
|
|
|
- "tags" : news_obj.tags
|
|
|
+ "tags" : news_obj.tags,
|
|
|
+ "cover_img": news_obj.cover_img
|
|
|
}
|
|
|
news_objs.append(news_tmp)
|
|
|
|
|
@@ -76,10 +77,20 @@ async def insert_news(
|
|
|
create_time :str = Form(default=datetime.now()),
|
|
|
content : str = Form(default=''),
|
|
|
URL :str = Form(default=''),
|
|
|
- tags : List[str] = Form(default=[]),
|
|
|
- files_url = Depends(create_upload_files)
|
|
|
+ tags : str = Form(default='[]'),
|
|
|
+ files_url = Depends(create_upload_files),
|
|
|
+ cover_img_file:UploadFile = File(default='')
|
|
|
):
|
|
|
try:
|
|
|
+ cover_img = ''
|
|
|
+ if cover_img_file != '':
|
|
|
+ contents = await cover_img_file.read()
|
|
|
+
|
|
|
+ #save the file
|
|
|
+ with open(f"{IMAGEDIR}{cover_img_file.filename}", "wb") as f:
|
|
|
+ f.write(contents)
|
|
|
+
|
|
|
+ cover_img = f"{IMAGEDIR_short}{cover_img_file.filename}"
|
|
|
|
|
|
new_news = await News.create(
|
|
|
title=title,
|
|
@@ -88,7 +99,8 @@ async def insert_news(
|
|
|
content=content,
|
|
|
files = str(files_url),
|
|
|
URL = URL,
|
|
|
- tags = tags
|
|
|
+ tags = tags,
|
|
|
+ cover_img = cover_img
|
|
|
)
|
|
|
|
|
|
return {"msg": "success", "code": 200, "new_news": new_news.id}
|
|
@@ -103,8 +115,9 @@ async def update_news(
|
|
|
create_time :str = Form(default=datetime.now()),
|
|
|
content : str = Form(default=''),
|
|
|
URL :str = Form(default=''),
|
|
|
- tags : List[str] = Form(default=[]),
|
|
|
- files_url = Depends(create_upload_files)
|
|
|
+ tags : str = Form(default='[]'),
|
|
|
+ files_url = Depends(create_upload_files),
|
|
|
+ cover_img_file:UploadFile = File(default=''),
|
|
|
):
|
|
|
try:
|
|
|
if news_id == 0 :
|
|
@@ -127,8 +140,17 @@ async def update_news(
|
|
|
if URL.strip() != '':
|
|
|
news_obj.URL = URL
|
|
|
|
|
|
- if tags != []:
|
|
|
+ if tags != '[]':
|
|
|
news_obj.tags = tags
|
|
|
+
|
|
|
+
|
|
|
+ if cover_img_file != '':
|
|
|
+ contents = await cover_img_file.read()
|
|
|
+
|
|
|
+ with open(f"{IMAGEDIR}{cover_img_file.filename}", "wb") as f:
|
|
|
+ f.write(contents)
|
|
|
+
|
|
|
+ news_obj.cover_img = f"{IMAGEDIR_short}{cover_img_file.filename}"
|
|
|
|
|
|
news_obj.files = str(files_url)
|
|
|
|
|
@@ -144,4 +166,35 @@ async def delete_news(id: int = 0):
|
|
|
await News.filter(id=id).delete()
|
|
|
return {"msg": "success", "code": 200}
|
|
|
else :
|
|
|
- return {"msg": "please input ID", "code": 200}
|
|
|
+ return {"msg": "please input ID", "code": 200}
|
|
|
+
|
|
|
+@news.get("/search_news_like")
|
|
|
+async def search_class_like(keyword: str):
|
|
|
+ try:
|
|
|
+ news_list = await News.filter(
|
|
|
+ Q(title__icontains=keyword)|
|
|
|
+ Q(category__icontains=keyword)|
|
|
|
+ Q(content__icontains=keyword)|
|
|
|
+ Q(tags__icontains=keyword)
|
|
|
+ ).all()
|
|
|
+
|
|
|
+ news_objs = []
|
|
|
+ for news_obj in news_list:
|
|
|
+ news_tmp = {
|
|
|
+ "news_id": news_obj.id,
|
|
|
+ "title": news_obj.title,
|
|
|
+ "category": news_obj.category,
|
|
|
+ "create_time" : news_obj.create_time,
|
|
|
+ "click_time" : news_obj.click_time,
|
|
|
+ "content" : news_obj.content,
|
|
|
+ "files" : news_obj.files,
|
|
|
+ "URL" : news_obj.URL,
|
|
|
+ "tags" : news_obj.tags,
|
|
|
+ "cover_img": news_obj.cover_img
|
|
|
+ }
|
|
|
+ news_objs.append(news_tmp)
|
|
|
+
|
|
|
+ return {"msg": "success", "code": 200, "news": news_objs}
|
|
|
+ except Exception as e:
|
|
|
+ return {"msg": str(e), "code": 500}
|
|
|
+
|