test/custom-admin-ui #3

Merged
orion merged 673 commits from test/custom-admin-ui into master 2026-06-05 17:20:58 +08:00
37 changed files with 27 additions and 43 deletions
Showing only changes of commit f79be8a111 - Show all commits
+4 -20
View File
@@ -1,27 +1,11 @@
FROM node:18-alpine as webui FROM python:3.9.5-slim-buster
COPY . /app
WORKDIR /app/fcb-fronted/
ENV NPM_CONFIG_LOGLEVEL=verbose
RUN npm i
RUN npm run build-only
RUN mv dist/logo_small.png dist/assets/
FROM python:3.9.5-alpine as FileCodeBox
LABEL author="Lan" LABEL author="Lan"
LABEL email="vast@tom.com" LABEL email="vast@tom.com"
LABEL version="6"
COPY . /app
# 先安装依赖可以产生缓存
WORKDIR /app
COPY requirements.txt /app
# 安装gcc
RUN apk add --no-cache gcc musl-dev
RUN /usr/local/bin/python -m pip install --upgrade pip && pip install -r requirements.txt
COPY ./backend/ /app
COPY --from=webui /app/fcb-fronted/dist/ /app/dist
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo 'Asia/Shanghai' >/etc/timezone RUN echo 'Asia/Shanghai' >/etc/timezone
WORKDIR /app
RUN pip install -r requirements.txt
EXPOSE 12345 EXPOSE 12345
CMD ["python","main.py"] CMD ["python","main.py"]
@@ -1 +1 @@
import{d as a,Q as n,F as c,D as e,J as r,H as o,u as s,o as u}from"./index-db871d30.js";const i={style:{"text-align":"center"}},l={style:{color:"#333"},href:"https://github.com/vastsa/FileCodeBox"},f=a({__name:"AboutView",setup(_){const{t}=n();return(m,d)=>(u(),c("main",i,[e("span",null,[r(o(s(t)("admin.about.source1"))+" ",1),e("em",null,[e("a",l,o(s(t)("admin.about.source2")),1)])])]))}});export{f as default}; import{d as a,Q as n,F as c,D as e,J as r,H as o,u as s,o as u}from"./index-f94d1b67.js";const i={style:{"text-align":"center"}},l={style:{color:"#333"},href:"https://github.com/vastsa/FileCodeBox"},f=a({__name:"AboutView",setup(_){const{t}=n();return(m,d)=>(u(),c("main",i,[e("span",null,[r(o(s(t)("admin.about.source1"))+" ",1),e("em",null,[e("a",l,o(s(t)("admin.about.source2")),1)])])]))}});export{f as default};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
import{d as T,k as F,e as j,o as C,s as _,b as N,g as v,p as K,q as E,m as R,r as p,t as u,v as B,j as q,f as J,l as W,n as Y,S as H,w as Q}from"./el-popper-841245e0.js";import{ak as m,am as M,ah as V,al as X,aJ as Z}from"./request-fce5f68e.js";function k(t,e){for(var n=-1,o=t==null?0:t.length;++n<o&&e(t[n],n,t)!==!1;);return t}function z(t,e){return t&&T(e,F(e),t)}function tt(t,e){return t&&T(e,j(e),t)}function et(t,e){return T(t,C(t),e)}var rt=Object.getOwnPropertySymbols,nt=rt?function(t){for(var e=[];t;)N(e,C(t)),t=v(t);return e}:_;const x=nt;function at(t,e){return T(t,x(t),e)}function ot(t){return K(t,j,x)}var st=Object.prototype,ct=st.hasOwnProperty;function it(t){var e=t.length,n=new t.constructor(e);return e&&typeof t[0]=="string"&&ct.call(t,"index")&&(n.index=t.index,n.input=t.input),n}function ft(t,e){var n=e?E(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.byteLength)}var gt=/\w*$/;function bt(t){var e=new t.constructor(t.source,gt.exec(t));return e.lastIndex=t.lastIndex,e}var w=m?m.prototype:void 0,I=w?w.valueOf:void 0;function yt(t){return I?Object(I.call(t)):{}}var ut="[object Boolean]",Tt="[object Date]",lt="[object Map]",jt="[object Number]",pt="[object RegExp]",At="[object Set]",dt="[object String]",$t="[object Symbol]",St="[object ArrayBuffer]",mt="[object DataView]",wt="[object Float32Array]",It="[object Float64Array]",Ot="[object Int8Array]",ht="[object Int16Array]",Ft="[object Int32Array]",Ct="[object Uint8Array]",Et="[object Uint8ClampedArray]",Bt="[object Uint16Array]",Mt="[object Uint32Array]";function xt(t,e,n){var o=t.constructor;switch(e){case St:return E(t);case ut:case Tt:return new o(+t);case mt:return ft(t,n);case wt:case It:case Ot:case ht:case Ft:case Ct:case Et:case Bt:case Mt:return R(t,n);case lt:return new o;case jt:case dt:return new o(t);case pt:return bt(t);case At:return new o;case $t:return yt(t)}}var Lt="[object Map]";function Ut(t){return M(t)&&p(t)==Lt}var O=u&&u.isMap,Pt=O?B(O):Ut;const Dt=Pt;var Gt="[object Set]";function _t(t){return M(t)&&p(t)==Gt}var h=u&&u.isSet,Nt=h?B(h):_t;const vt=Nt;var Kt=1,Rt=2,qt=4,L="[object Arguments]",Jt="[object Array]",Wt="[object Boolean]",Yt="[object Date]",Ht="[object Error]",U="[object Function]",Qt="[object GeneratorFunction]",Vt="[object Map]",Xt="[object Number]",P="[object Object]",Zt="[object RegExp]",kt="[object Set]",zt="[object String]",te="[object Symbol]",ee="[object WeakMap]",re="[object ArrayBuffer]",ne="[object DataView]",ae="[object Float32Array]",oe="[object Float64Array]",se="[object Int8Array]",ce="[object Int16Array]",ie="[object Int32Array]",fe="[object Uint8Array]",ge="[object Uint8ClampedArray]",be="[object Uint16Array]",ye="[object Uint32Array]",r={};r[L]=r[Jt]=r[re]=r[ne]=r[Wt]=r[Yt]=r[ae]=r[oe]=r[se]=r[ce]=r[ie]=r[Vt]=r[Xt]=r[P]=r[Zt]=r[kt]=r[zt]=r[te]=r[fe]=r[ge]=r[be]=r[ye]=!0;r[Ht]=r[U]=r[ee]=!1;function l(t,e,n,o,g,s){var a,b=e&Kt,y=e&Rt,D=e&qt;if(n&&(a=g?n(t,o,g,s):n(t)),a!==void 0)return a;if(!V(t))return t;var A=X(t);if(A){if(a=it(t),!b)return q(t,a)}else{var f=p(t),d=f==U||f==Qt;if(J(t))return W(t,b);if(f==P||f==L||d&&!g){if(a=y||d?{}:Y(t),!b)return y?at(t,tt(a,t)):et(t,z(a,t))}else{if(!r[f])return g?t:{};a=xt(t,f,b)}}s||(s=new H);var $=s.get(t);if($)return $;s.set(t,a),vt(t)?t.forEach(function(c){a.add(l(c,e,n,c,t,s))}):Dt(t)&&t.forEach(function(c,i){a.set(i,l(c,e,n,i,t,s))});var G=D?y?ot:Q:y?j:F,S=A?void 0:G(t);return k(S||t,function(c,i){S&&(i=c,c=t[i]),Z(a,i,l(c,e,n,i,t,s))}),a}export{l as b}; import{d as T,k as F,e as j,o as C,s as _,b as N,g as v,p as K,q as E,m as R,r as p,t as u,v as B,j as q,f as J,l as W,n as Y,S as H,w as Q}from"./el-popper-ccc40c61.js";import{ak as m,am as M,ah as V,al as X,aJ as Z}from"./request-b86d3b3e.js";function k(t,e){for(var n=-1,o=t==null?0:t.length;++n<o&&e(t[n],n,t)!==!1;);return t}function z(t,e){return t&&T(e,F(e),t)}function tt(t,e){return t&&T(e,j(e),t)}function et(t,e){return T(t,C(t),e)}var rt=Object.getOwnPropertySymbols,nt=rt?function(t){for(var e=[];t;)N(e,C(t)),t=v(t);return e}:_;const x=nt;function at(t,e){return T(t,x(t),e)}function ot(t){return K(t,j,x)}var st=Object.prototype,ct=st.hasOwnProperty;function it(t){var e=t.length,n=new t.constructor(e);return e&&typeof t[0]=="string"&&ct.call(t,"index")&&(n.index=t.index,n.input=t.input),n}function ft(t,e){var n=e?E(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.byteLength)}var gt=/\w*$/;function bt(t){var e=new t.constructor(t.source,gt.exec(t));return e.lastIndex=t.lastIndex,e}var w=m?m.prototype:void 0,I=w?w.valueOf:void 0;function yt(t){return I?Object(I.call(t)):{}}var ut="[object Boolean]",Tt="[object Date]",lt="[object Map]",jt="[object Number]",pt="[object RegExp]",At="[object Set]",dt="[object String]",$t="[object Symbol]",St="[object ArrayBuffer]",mt="[object DataView]",wt="[object Float32Array]",It="[object Float64Array]",Ot="[object Int8Array]",ht="[object Int16Array]",Ft="[object Int32Array]",Ct="[object Uint8Array]",Et="[object Uint8ClampedArray]",Bt="[object Uint16Array]",Mt="[object Uint32Array]";function xt(t,e,n){var o=t.constructor;switch(e){case St:return E(t);case ut:case Tt:return new o(+t);case mt:return ft(t,n);case wt:case It:case Ot:case ht:case Ft:case Ct:case Et:case Bt:case Mt:return R(t,n);case lt:return new o;case jt:case dt:return new o(t);case pt:return bt(t);case At:return new o;case $t:return yt(t)}}var Lt="[object Map]";function Ut(t){return M(t)&&p(t)==Lt}var O=u&&u.isMap,Pt=O?B(O):Ut;const Dt=Pt;var Gt="[object Set]";function _t(t){return M(t)&&p(t)==Gt}var h=u&&u.isSet,Nt=h?B(h):_t;const vt=Nt;var Kt=1,Rt=2,qt=4,L="[object Arguments]",Jt="[object Array]",Wt="[object Boolean]",Yt="[object Date]",Ht="[object Error]",U="[object Function]",Qt="[object GeneratorFunction]",Vt="[object Map]",Xt="[object Number]",P="[object Object]",Zt="[object RegExp]",kt="[object Set]",zt="[object String]",te="[object Symbol]",ee="[object WeakMap]",re="[object ArrayBuffer]",ne="[object DataView]",ae="[object Float32Array]",oe="[object Float64Array]",se="[object Int8Array]",ce="[object Int16Array]",ie="[object Int32Array]",fe="[object Uint8Array]",ge="[object Uint8ClampedArray]",be="[object Uint16Array]",ye="[object Uint32Array]",r={};r[L]=r[Jt]=r[re]=r[ne]=r[Wt]=r[Yt]=r[ae]=r[oe]=r[se]=r[ce]=r[ie]=r[Vt]=r[Xt]=r[P]=r[Zt]=r[kt]=r[zt]=r[te]=r[fe]=r[ge]=r[be]=r[ye]=!0;r[Ht]=r[U]=r[ee]=!1;function l(t,e,n,o,g,s){var a,b=e&Kt,y=e&Rt,D=e&qt;if(n&&(a=g?n(t,o,g,s):n(t)),a!==void 0)return a;if(!V(t))return t;var A=X(t);if(A){if(a=it(t),!b)return q(t,a)}else{var f=p(t),d=f==U||f==Qt;if(J(t))return W(t,b);if(f==P||f==L||d&&!g){if(a=y||d?{}:Y(t),!b)return y?at(t,tt(a,t)):et(t,z(a,t))}else{if(!r[f])return g?t:{};a=xt(t,f,b)}}s||(s=new H);var $=s.get(t);if($)return $;s.set(t,a),vt(t)?t.forEach(function(c){a.add(l(c,e,n,c,t,s))}):Dt(t)&&t.forEach(function(c,i){a.set(i,l(c,e,n,i,t,s))});var G=D?y?ot:Q:y?j:F,S=A?void 0:G(t);return k(S||t,function(c,i){S&&(i=c,c=t[i]),Z(a,i,l(c,e,n,i,t,s))}),a}export{l as b};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
import{c as S,ax as _,b as P,y as V,u as W,M as k,k as y,_ as M,w as $}from"./request-fce5f68e.js";import{d as B,c as H,o as d,F as I,D as m,r as v,b as i,u as l,a as h,w as g,q as C,E as b,G as w,e as T,T as F}from"./index-db871d30.js";let f;const A=s=>{var a;if(!S)return 0;if(f!==void 0)return f;const o=document.createElement("div");o.className=`${s}-scrollbar__wrap`,o.style.visibility="hidden",o.style.width="100px",o.style.position="absolute",o.style.top="-9999px",document.body.appendChild(o);const n=o.offsetWidth;o.style.overflow="scroll";const e=document.createElement("div");e.style.width="100%",o.appendChild(e);const c=e.offsetWidth;return(a=o.parentNode)==null||a.removeChild(o),f=n-c,f};function J(s,a){if(!S)return;if(!a){s.scrollTop=0;return}const o=[];let n=a.offsetParent;for(;n!==null&&s!==n&&s.contains(n);)o.push(n),n=n.offsetParent;const e=a.offsetTop+o.reduce((t,u)=>t+u.offsetTop,0),c=e+a.offsetHeight,r=s.scrollTop,p=r+s.clientHeight;e<r?s.scrollTop=e:c>p&&(s.scrollTop=c-s.clientHeight)}const L=s=>["",..._].includes(s),R=P({type:{type:String,values:["success","info","warning","danger",""],default:""},closable:Boolean,disableTransitions:Boolean,hit:Boolean,color:{type:String,default:""},size:{type:String,values:_,default:""},effect:{type:String,values:["dark","light","plain"],default:"light"},round:Boolean}),q={close:s=>s instanceof MouseEvent,click:s=>s instanceof MouseEvent},D=B({name:"ElTag"}),G=B({...D,props:R,emits:q,setup(s,{emit:a}){const o=s,n=V(),e=W("tag"),c=H(()=>{const{type:t,hit:u,effect:E,closable:z,round:N}=o;return[e.b(),e.is("closable",z),e.m(t),e.m(n.value),e.m(E),e.is("hit",u),e.is("round",N)]}),r=t=>{a("close",t)},p=t=>{a("click",t)};return(t,u)=>t.disableTransitions?(d(),I("span",{key:0,class:i(l(c)),style:T({backgroundColor:t.color}),onClick:p},[m("span",{class:i(l(e).e("content"))},[v(t.$slots,"default")],2),t.closable?(d(),h(l(y),{key:0,class:i(l(e).e("close")),onClick:b(r,["stop"])},{default:g(()=>[C(l(k))]),_:1},8,["class","onClick"])):w("v-if",!0)],6)):(d(),h(F,{key:1,name:`${l(e).namespace.value}-zoom-in-center`,appear:""},{default:g(()=>[m("span",{class:i(l(c)),style:T({backgroundColor:t.color}),onClick:p},[m("span",{class:i(l(e).e("content"))},[v(t.$slots,"default")],2),t.closable?(d(),h(l(y),{key:0,class:i(l(e).e("close")),onClick:b(r,["stop"])},{default:g(()=>[C(l(k))]),_:1},8,["class","onClick"])):w("v-if",!0)],6)]),_:3},8,["name"]))}});var K=M(G,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tag/src/tag.vue"]]);const O=$(K);export{O as E,A as g,L as i,J as s,R as t}; import{c as S,ax as _,b as P,y as V,u as W,M as k,k as y,_ as M,w as $}from"./request-b86d3b3e.js";import{d as B,c as H,o as d,F as I,D as m,r as v,b as i,u as l,a as h,w as g,q as C,E as b,G as w,e as T,T as F}from"./index-f94d1b67.js";let f;const A=s=>{var a;if(!S)return 0;if(f!==void 0)return f;const o=document.createElement("div");o.className=`${s}-scrollbar__wrap`,o.style.visibility="hidden",o.style.width="100px",o.style.position="absolute",o.style.top="-9999px",document.body.appendChild(o);const n=o.offsetWidth;o.style.overflow="scroll";const e=document.createElement("div");e.style.width="100%",o.appendChild(e);const c=e.offsetWidth;return(a=o.parentNode)==null||a.removeChild(o),f=n-c,f};function J(s,a){if(!S)return;if(!a){s.scrollTop=0;return}const o=[];let n=a.offsetParent;for(;n!==null&&s!==n&&s.contains(n);)o.push(n),n=n.offsetParent;const e=a.offsetTop+o.reduce((t,u)=>t+u.offsetTop,0),c=e+a.offsetHeight,r=s.scrollTop,p=r+s.clientHeight;e<r?s.scrollTop=e:c>p&&(s.scrollTop=c-s.clientHeight)}const L=s=>["",..._].includes(s),R=P({type:{type:String,values:["success","info","warning","danger",""],default:""},closable:Boolean,disableTransitions:Boolean,hit:Boolean,color:{type:String,default:""},size:{type:String,values:_,default:""},effect:{type:String,values:["dark","light","plain"],default:"light"},round:Boolean}),q={close:s=>s instanceof MouseEvent,click:s=>s instanceof MouseEvent},D=B({name:"ElTag"}),G=B({...D,props:R,emits:q,setup(s,{emit:a}){const o=s,n=V(),e=W("tag"),c=H(()=>{const{type:t,hit:u,effect:E,closable:z,round:N}=o;return[e.b(),e.is("closable",z),e.m(t),e.m(n.value),e.m(E),e.is("hit",u),e.is("round",N)]}),r=t=>{a("close",t)},p=t=>{a("click",t)};return(t,u)=>t.disableTransitions?(d(),I("span",{key:0,class:i(l(c)),style:T({backgroundColor:t.color}),onClick:p},[m("span",{class:i(l(e).e("content"))},[v(t.$slots,"default")],2),t.closable?(d(),h(l(y),{key:0,class:i(l(e).e("close")),onClick:b(r,["stop"])},{default:g(()=>[C(l(k))]),_:1},8,["class","onClick"])):w("v-if",!0)],6)):(d(),h(F,{key:1,name:`${l(e).namespace.value}-zoom-in-center`,appear:""},{default:g(()=>[m("span",{class:i(l(c)),style:T({backgroundColor:t.color}),onClick:p},[m("span",{class:i(l(e).e("content"))},[v(t.$slots,"default")],2),t.closable?(d(),h(l(y),{key:0,class:i(l(e).e("close")),onClick:b(r,["stop"])},{default:g(()=>[C(l(k))]),_:1},8,["class","onClick"])):w("v-if",!0)],6)]),_:3},8,["name"]))}});var K=M(G,[["__file","/home/runner/work/element-plus/element-plus/packages/components/tag/src/tag.vue"]]);const O=$(K);export{O as E,A as g,L as i,J as s,R as t};
File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 42 KiB

File diff suppressed because one or more lines are too long
@@ -1 +1 @@
import{X as A,K as N}from"./index-db871d30.js";var o=(E=>(E[E.TEXT=1]="TEXT",E[E.CLASS=2]="CLASS",E[E.STYLE=4]="STYLE",E[E.PROPS=8]="PROPS",E[E.FULL_PROPS=16]="FULL_PROPS",E[E.HYDRATE_EVENTS=32]="HYDRATE_EVENTS",E[E.STABLE_FRAGMENT=64]="STABLE_FRAGMENT",E[E.KEYED_FRAGMENT=128]="KEYED_FRAGMENT",E[E.UNKEYED_FRAGMENT=256]="UNKEYED_FRAGMENT",E[E.NEED_PATCH=512]="NEED_PATCH",E[E.DYNAMIC_SLOTS=1024]="DYNAMIC_SLOTS",E[E.HOISTED=-1]="HOISTED",E[E.BAIL=-2]="BAIL",E))(o||{});const e=E=>{const _=A(E)?E:[E],S=[];return _.forEach(T=>{var r;A(T)?S.push(...e(T)):N(T)&&A(T.children)?S.push(...e(T.children)):(S.push(T),N(T)&&((r=T.component)!=null&&r.subTree)&&S.push(...e(T.component.subTree)))}),S};export{o as P,e as f}; import{X as A,K as N}from"./index-f94d1b67.js";var o=(E=>(E[E.TEXT=1]="TEXT",E[E.CLASS=2]="CLASS",E[E.STYLE=4]="STYLE",E[E.PROPS=8]="PROPS",E[E.FULL_PROPS=16]="FULL_PROPS",E[E.HYDRATE_EVENTS=32]="HYDRATE_EVENTS",E[E.STABLE_FRAGMENT=64]="STABLE_FRAGMENT",E[E.KEYED_FRAGMENT=128]="KEYED_FRAGMENT",E[E.UNKEYED_FRAGMENT=256]="UNKEYED_FRAGMENT",E[E.NEED_PATCH=512]="NEED_PATCH",E[E.DYNAMIC_SLOTS=1024]="DYNAMIC_SLOTS",E[E.HOISTED=-1]="HOISTED",E[E.BAIL=-2]="BAIL",E))(o||{});const e=E=>{const _=A(E)?E:[E],S=[];return _.forEach(T=>{var r;A(T)?S.push(...e(T)):N(T)&&A(T.children)?S.push(...e(T.children)):(S.push(T),N(T)&&((r=T.component)!=null&&r.subTree)&&S.push(...e(T.component.subTree)))}),S};export{o as P,e as f};
+1 -1
View File
@@ -8,7 +8,7 @@
<meta name="keywords" content="{{keywords}}" /> <meta name="keywords" content="{{keywords}}" />
<meta name="generator" content="FileCodeBox2.0" /> <meta name="generator" content="FileCodeBox2.0" />
<title>{{title}}</title> <title>{{title}}</title>
<script type="module" crossorigin src="/assets/index-db871d30.js"></script> <script type="module" crossorigin src="/assets/index-f94d1b67.js"></script>
<link rel="stylesheet" href="/assets/index-76720517.css"> <link rel="stylesheet" href="/assets/index-76720517.css">
</head> </head>
<body style="background: url('{{background}}') no-repeat center center fixed;background-size: cover;"> <body style="background: url('{{background}}') no-repeat center center fixed;background-size: cover;">
+1 -1
View File
@@ -62,7 +62,7 @@ function renderMarkdown(message: string) {
} }
function getQrCodeUrl(code: string) { function getQrCodeUrl(code: string) {
return code.startsWith('http') ? code : window.location.origin + code; return code.toString().startsWith('http') ? code : window.location.origin + code;
} }
</script> </script>
+4 -4
View File
@@ -31,20 +31,20 @@ app.add_middleware(
async def assets(file_path: str): async def assets(file_path: str):
if settings.max_save_seconds > 0: if settings.max_save_seconds > 0:
if re.match(r'SendView-[\d|a-f|A-F]+\.js', file_path): if re.match(r'SendView-[\d|a-f|A-F]+\.js', file_path):
with open(BASE_DIR / f'./dist/assets/{file_path}', 'r', encoding='utf-8') as f: with open(BASE_DIR / f'fcb-fronted/dist/assets/{file_path}', 'r', encoding='utf-8') as f:
# 删除永久保存选项 # 删除永久保存选项
content = f.read() content = f.read()
content = content.replace('_(c,{label:e(r)("send.expireData.forever"),value:"forever"},null,8,["label"]),', '') content = content.replace('_(c,{label:e(r)("send.expireData.forever"),value:"forever"},null,8,["label"]),', '')
return HTMLResponse(content=content, media_type='text/javascript') return HTMLResponse(content=content, media_type='text/javascript')
if re.match(r'index-[\d|a-f|A-F]+\.js', file_path): if re.match(r'index-[\d|a-f|A-F]+\.js', file_path):
with open(BASE_DIR / f'./dist/assets/{file_path}', 'r', encoding='utf-8') as f: with open(BASE_DIR / f'fcb-fronted/dist/assets/{file_path}', 'r', encoding='utf-8') as f:
# 更改本文描述 # 更改本文描述
desc_zh, desc_en = await max_save_times_desc(settings.max_save_seconds) desc_zh, desc_en = await max_save_times_desc(settings.max_save_seconds)
content = f.read() content = f.read()
content = content.replace('天数<7', desc_zh) content = content.replace('天数<7', desc_zh)
content = content.replace('Days <7', desc_en) content = content.replace('Days <7', desc_en)
return HTMLResponse(content=content, media_type='text/javascript') return HTMLResponse(content=content, media_type='text/javascript')
return FileResponse(f'./dist/assets/{file_path}') return FileResponse(f'fcb-fronted/dist/assets/{file_path}')
register_tortoise( register_tortoise(
@@ -79,7 +79,7 @@ async def startup_event():
@app.get('/') @app.get('/')
async def index(): async def index():
return HTMLResponse( return HTMLResponse(
content=open(BASE_DIR / './dist/index.html', 'r', encoding='utf-8').read() content=open(BASE_DIR / 'fcb-fronted/dist/index.html', 'r', encoding='utf-8').read()
.replace('{{title}}', str(settings.name)) .replace('{{title}}', str(settings.name))
.replace('{{description}}', str(settings.description)) .replace('{{description}}', str(settings.description))
.replace('{{keywords}}', str(settings.keywords)) .replace('{{keywords}}', str(settings.keywords))