Files
param-hub-python/modules/routes/__pycache__/api_cpus.cpython-310.pyc
T

53 lines
6.3 KiB
Plaintext
Raw Normal View History

2026-07-10 23:59:53 +08:00
o
€1Qjã@s,dZddlZddlZddlmZddlmZmZmZmZddl m
2026-07-10 23:59:53 +08:00
Z
ddl m Z m
Z
2026-07-10 23:59:53 +08:00
mZedeƒZdd „Zd
d Ze d ¡d
dƒZe d¡ddƒZejd dgdddƒZejddgdddƒZejddgdddƒZejddgdddƒZejddgdd d!„ƒZejd"ddgdd#d$„ƒZdS)%z
CPU CRUD API
éN)Údatetime)Ú BlueprintÚrequestÚjsonifyÚResponse)Ú CPUS_FILE)Ú load_dataÚ save_dataÚparse_date_to_timestampÚapi_cpuscCs$z ddl}t|ddƒWSYdS)NrÚREQUIRE_REVIEWF)ÚappÚgetattr)Ú
2026-07-10 23:59:53 +08:00
app_module©rú1works/param-hub-python/modules/routes/api_cpus.pyÚis_review_requireds
rcCs&| |¡}|dur|dvrdSdS|S)N)ÚcoresÚthreadsÚviewsrÚ©Úget)ÚkeyÚvalrrrÚ_safe_sort_keys
rz /api/cpuscttƒ}tj dd¡dk}|rdd|Dƒ}tj dd¡ ¡ ¡ˆr,‡fdd|Dƒ}tj dd ¡tj d
d ¡d k}ˆd krLt|d d
d}t|ƒSˆdvr[t|fdd
2026-07-10 23:59:53 +08:00
|d}t|ƒS)allÚ0cSsg|]
}| dd¡r|qS)ÚvisibleTr©Ú.0ÚcrrrÚ
<listcomp>"ózapi_cpus.<locals>.<listcomp>Úqrcs8g|]}ˆ| dd¡ ¡vsˆ| dd¡ ¡vr|qS)ÚnamerÚ manufacturer)rÚlowerr )Úkeywordrrr#%sÿÚsortÚdefaultÚorderÚdesccSs4| dd¡ t| dd¡ƒpt| dd¡ƒpd fS)NÚ is_pinnedFÚ publish_daterÚ
created_atr)rr
©rrrrÚ<lambda>*s ÿÿþzapi_cpus.<locals>.<lambda>)r)r&rrÚ price_usdr0r/rÚ
updated_atcs
t|ˆƒS)N)rr1)Úsort_byrrr21s
)rÚreverse) rrrÚargsrÚstripr(Úsortedr)ÚcpusÚ hide_hiddenr6r)r)r5rr sýz/api/cpus/<cpu_id>cs<ttƒ}tfdd|Dƒdƒ}|stddiƒdfSt|ƒS)Nc3ó |] }|dˆkr|VqdS©ÚidNrr ©Úcpu_idrrÚ <genexpr>8óz!api_cpu_detail.<locals>.<genexpr>Úerrorú
CPU not foundé”)rrÚnextr©r@r:Úcpurr?rÚapi_cpu_detail5s
2026-07-10 23:59:53 +08:00
rIÚPOST)ÚmethodscCst ¡}tƒr<ddlm}ddlm}|d|dd}| dd¡}|d d
|d d d
|dddœdtdd|ddœƒSt t
2026-07-10 23:59:53 +08:00
ƒ}t   ¡j
dd|d<t ¡ d¡|d<| dd¡|d<| dd¡|d<| dd¡|d<| dd¡|d<| |¡tt
|ƒt|ƒS)Nr)Úsubmit_for_review)Úcreate_notificationr:Úweb)Úsourcer&u未知u新产å“待审核u有新的CPU "u
"待审核ÚwarningÚreviewr>)Ú review_idÚcategory)ÚtitleÚmessageÚlevelrSÚdataTu*å·²æäº¤å®¡æ ¸ï¼Œè¯·ç­‰å¾…管ç†å‘˜ç¡®è®¤)ÚsuccessrUrRé ú%Y-%m-%d %H:%M:%Sr0rr/rrr.F)rÚget_jsonrÚmodules.routes.api_reviewsrLÚ modules.routes.api_notificationsrMrrrrÚuuidÚuuid4ÚhexrÚnowÚstrftimeÚappendr )rWrLrMrQÚ product_namer:rrrÚapi_create_cpu>s0   
 û
2026-07-11 00:34:47 +08:00

reÚPUTcsjt ¡}ttƒ}tfdd|Dƒdƒ}|stddiƒdfS| |¡t ¡  d¡|d<t
t|ƒt|ƒS)Nc3r<r=rr r?rrrAbrBz!api_update_cpu.<locals>.<genexpr>rCrDrErZr4) rr[rrrFrÚupdaterrarbr )r@rWr:rHrr?rÚapi_update_cpu^s
2026-07-11 00:34:47 +08:00

rhÚDELETEcs0ttƒ}fdd|Dƒ}tt|ƒtddiƒS)Ncsg|]
}|dˆkr|qS)r>rr r?rrr#nr$z"api_delete_cpu.<locals>.<listcomp>rXT)rrr r)r@r:rr?rÚapi_delete_cpuks
 rjz/api/cpus/<cpu_id>/visiblecsbttƒ}tfdd|Dƒdƒ}|stddiƒdfS| dd¡ |d<tt|ƒtd|ddœƒS) Nc3r<r=rr r?rrrAvrBz)api_toggle_cpu_visible.<locals>.<genexpr>rCrDrErT)rXr)rrrFrrr rGrr?rÚapi_toggle_cpu_visibless
2026-07-11 00:34:47 +08:00
rkz/api/cpus/exportÚGETc
Cz0ttƒ}d|t|ƒt ¡ d¡ddœ}tj|ddd}t|dd d
t ¡ d ¡d id
}|WSt yL}zt
dt |ƒiƒdfWYd}~Sd}~ww)u导出所有CPUæ•°æ®r:rZz1.0)ÚtypeÚitemsÚcountÚ export_timeÚversionFé)Ú ensure_asciiÚindentzapplication/jsonzContent-Dispositionz!attachment; filename=cpus-export-z %Y%m%d%H%M%Sz.json)ÚmimetypeÚheadersrCéôN) rrÚlenrrarbÚjsonÚdumpsrÚ ExceptionrÚstr)r:Ú export_dataÚjson_strÚresponseÚerrrÚapi_export_cpus€s& ûý ÿrú/api/cpus/importc
s8ztjdkrtddddidœƒWSt ¡}|rd|vr$tdd iƒd
fWStj dd ¡}ttƒ}|d}d d
2026-07-10 23:59:53 +08:00
d
gdœ}|D]9‰tfdd|Dƒdƒ}|rh|dkr^|  ˆ¡|dd7<q<|d 
ˆd¡q<| 
2026-07-10 23:59:53 +08:00
ˆ¡|dd7<q<t t|ƒt|ƒWSt y}ztdt
2026-07-11 00:34:47 +08:00
|ƒiƒdfWYd}~Sd}~ww)u导入CPUæ•°æ®rlrrJÚmodeumerge 或 replace)ÚendpointÚmethodÚparamsrnrCu缺少 items 字段iÚmergeTr)rXÚimportedÚupdatedÚskippedc3s$|]
}|dˆdkr|VqdSr=rr ©ÚitemrrrA©s€"z"api_import_cpus.<locals>.<genexpr>NÚreplacer‰ér>rˆrw)rr…rr[r7rrrrFrgrcr r{r|)Ú import_datarƒr:Úimported_itemsÚresultÚexistingr€rrrÚapi_import_cpus—s2