cnki:add model

main
zhaoxiangpeng 1 week ago
parent 3b3a647fc7
commit 8773bc7b03

@ -8,7 +8,7 @@ from typing import Union, List, Dict
from datetime import datetime, timedelta
from science_article_cnki.models.enum_cls import (
ResourceType, SourceDatabaseEnum,
ResourceType, SourceDatabaseEnum, ResourceLanguageEnum, KuaKuCodeEnum,
SearchTypeId, SearchFieldEnum, OperatorEnum, LogicEnum,
SingleResultEnum
)
@ -436,6 +436,17 @@ def add_search_word(search_content: str, base_query: dict = None):
return words_query
def add_muti_filters(base_query: dict, filters: List[dict] = None):
"""
对一个检索式批量添加多个筛选项
"""
if not filters:
return base_query
for filter in filters:
add_muti_group(**filter, base_query=base_query)
return base_query
def add_muti_group(
project: Union[SingleResultEnum, str],
value: Union[str, List[str]],
@ -586,6 +597,7 @@ def temp_refine_search(
year: int = None,
updated_date: str = None,
resource_type: str = '学术期刊',
lang: Union[str, ResourceLanguageEnum] = ResourceLanguageEnum.中文,
**kwargs
):
"""
@ -594,9 +606,12 @@ def temp_refine_search(
:param updated_date: 更新时间不限最近一周/一月/半年/一年今年迄今上一年度
:param year: 指定筛选的年份如果需要与updated_date参数同时使用需要在限制更新时间后再筛选
:param resource_type:
:param lang:
:param kwargs:
:return:
"""
if isinstance(lang, str):
lang = ResourceLanguageEnum[lang]
_query = {
"Platform": "",
"Resource": ResourceType[resource_type].value,
@ -614,8 +629,8 @@ def temp_refine_search(
},
"ExScope": "1",
"SearchType": 1,
"Rlang": "CHINESE",
"KuaKuCode": "",
"Rlang": lang.value,
"KuaKuCode": KuaKuCodeEnum[resource_type].value,
"Expands": {},
"View": "changeDBOnlyFT",
"SearchFrom": 1
@ -644,6 +659,16 @@ def temp_query_search(query_body, query: str = None, page: int = 1, page_size: i
:param updated_date: 默认不限
:return:
"""
def getFromString():
rr = kwargs.get('resource_type', "总库")
d = ""
d += f"资源范围:{rr}; "
time_range = '更新时间:%(updated_date)s' % {"updated_date": updated_date}
d += f'时间范围:{time_range}; '
if rr == '学术期刊':
d += '来源类别:全部期刊'
d += '; '
return d
page = str(page)
page_size = str(page_size)
if page == '1':
@ -658,8 +683,7 @@ def temp_query_search(query_body, query: str = None, page: int = 1, page_size: i
"dstyle": "listmode",
"boolSortSearch": "false",
"aside": aside,
"searchFrom": "资源范围:学术期刊; 仅看有全文,中英文扩展; 时间范围:更新时间:%(updated_date)s; 来源类别:全部期刊; " % {
"updated_date": updated_date},
"searchFrom": getFromString(),
"subject": "",
"language": "",
"uniplatform": "",

Loading…
Cancel
Save