Files
vvveb-cms/utils/__pycache__/media_manager.cpython-313.pyc

38 lines
4.6 KiB
Plaintext
Raw Normal View History

2026-05-26 11:53:28 +08:00
<EFBFBD>
+j<> <00><01>t<00>SSKJr SSKrSSKrSSKJr SSKJr SSKJr SSK r S
Sjr
S Sjr S Sjr S S jr g)<0E>)<01> annotationsN)<01>datetime)<01>Path)<01>Anyc<01>J<00>[R"5RS5$)Nz%Y-%m-%dT%H:%M:%S)r<00>utcnow<6F>strftime<6D><00><00>qC:\Users\USER\SynologyDrive\LCY94_drive_root\1.網站架設開發\web_builder-test\vvvebjs\utils\media_manager.py<70>_now_isor s<00><00> <13>?<3F>?<3F> <1C> %<25> %<25>&9<> :<3A>:r c<01><><00>US- S- n[R"5RS5nX#- nURSSS9 UR=(d Sn[ U5R R5=(d Sn[R"5RU3nXG- nUR[U55 Sn S S
K Jn
US ;amU
R[U55n U R!S 5 [R"5RS U3n XI- n U R[U 55 UUSUSU3U (aSUSU 3OSUR%5R&[)5S.n US- n0nUR+5(a$[,R."UR1SS95nUR3U/5R5UUU SU SS.5 UR6RSSS9 UR9[,R:"USSS9SS9 U $!["a Sn N<>f=f!["a 0nN<>f=f)zaSave uploaded file under project media directory and generate thumbnail.
Returns metadata dict.
<EFBFBD>media<69>imagesz%Y-%mT)<02>parents<74>exist_ok<6F>uploadz.binNr)<01>Image)z.jpgz.jpegz.pngz.webpz.gif)<02><>r<00>_thumbz/sites/{slug}/media/images/<2F>/)<06>filename<6D> original_name<6D>url<72>thumb<6D>size<7A> uploaded_at<61> uploads.json<6F>utf-8<><01>encodingrr)rrrrF<>)<02> ensure_ascii<69>indent)rrr <00>mkdirrr<00>suffix<69>lower<65>uuid<69>uuid4<64>hex<65>save<76>str<74>PILr<00>open<65> thumbnail<69> Exception<6F>stat<61>st_sizer <00>exists<74>json<6F>loads<64> read_text<78>
setdefault<EFBFBD>append<6E>parent<6E>
write_text<EFBFBD>dumps)<10> project_dir<69> file_storage<67> uploads_dir<69> date_folder<65>
target_dirr<00>ext<78> safe_name<6D> target_path<74>
thumb_namer<00>im<69>
thumb_path<EFBFBD>meta<74> uploads_index<65>datas r <00> save_uploadrJsE<00><00>
<1E><07>'<27>(<28>2<>K<EFBFBD><1A>/<2F>/<2F>#<23>,<2C>,<2C>W<EFBFBD>5<>K<EFBFBD><1C>*<2A>J<EFBFBD><0E><14><14>T<EFBFBD>D<EFBFBD><14>1<> <20>)<29>)<29>5<>X<EFBFBD>M<EFBFBD>
<0E>}<7D>
<1D>
$<24>
$<24>
*<2A>
*<2A>
,<2C>
6<EFBFBD><06>C<EFBFBD><17>:<3A>:<3A><<3C>#<23>#<23>$<24>S<EFBFBD>E<EFBFBD>*<2A>I<EFBFBD><1C>(<28>K<EFBFBD><11><15><15>c<EFBFBD>+<2B>&<26>'<27><16>J<EFBFBD>
<1A><1D> <0E><<3C> <<3C><16><1A><1A>C<EFBFBD> <0B>,<2C>-<2D>B<EFBFBD> <0E>L<EFBFBD>L<EFBFBD><1A> $<24> <20>J<EFBFBD>J<EFBFBD>L<EFBFBD>,<2C>,<2C>-<2D>V<EFBFBD>C<EFBFBD>5<EFBFBD>9<>J<EFBFBD>#<23>0<>J<EFBFBD> <0E>G<EFBFBD>G<EFBFBD>C<EFBFBD>
<EFBFBD>O<EFBFBD> $<24>
<1E>&<26>.<2E>{<7B>m<EFBFBD>1<EFBFBD>Y<EFBFBD>K<EFBFBD>H<>PZ<50>1<>+<2B><1D>a<EFBFBD>
<EFBFBD>|<7C>L<>`d<><1B> <20> <20>"<22>*<2A>*<2A><1F>z<EFBFBD>  <06>D<EFBFBD> <20>.<2E>0<>M<EFBFBD> <0A>D<EFBFBD><14><1B><1B><1D><1D> <16><17>:<3A>:<3A>m<EFBFBD>5<>5<>w<EFBFBD>5<>G<>H<>D<EFBFBD> <09>O<EFBFBD>O<EFBFBD>K<EFBFBD><12>$<24>+<2B>+<2B><1D>&<26><14>V<EFBFBD> <0C><1B>M<EFBFBD>*<2A> -<06><07> <12><18><18><1E><1E>t<EFBFBD>d<EFBFBD><1E>;<3B><11><1C><1C>T<EFBFBD>Z<EFBFBD>Z<EFBFBD><04>5<EFBFBD><11>K<>V]<5D><1C>^<5E> <0F>K<EFBFBD><4B>; <15><1A><19>
<EFBFBD><1A><>$<19> <16><15>D<EFBFBD> <16>s%<00>A9H)<00>#H;<00>) H8<03>7H8<03>; I
<03> I
c<01>,<00>US- S- nUS- nUR5(d/$[R"URSS95n/nUR 5H#upVUHnUR SU0UE5 M M% U$![a /s$f=f)Nrrrrr <00>date)r3r4r5r6r0<00>itemsr8)r<r>rHrIrMr?<00>files<65>fs r <00>
list_mediarPLs<><00><00><1D><07>'<27>(<28>2<>K<EFBFBD><1F>.<2E>0<>M<EFBFBD> <18> <1F> <1F> !<21> !<21><11> <09><12><13>z<EFBFBD>z<EFBFBD>-<2D>1<>1<>7<EFBFBD>1<>C<>D<><04> <0F>E<EFBFBD>"<22>j<EFBFBD>j<EFBFBD>l<EFBFBD><1A> <0B><16>A<EFBFBD> <11>L<EFBFBD>L<EFBFBD><16> <0B><0E><13><0E> <0F><17>+<2B> <11>L<EFBFBD><4C> <15><12><11> <09><12>s<00>#B<00> B<03>Bc<01><00>X- R5n[U5R[UR555(dgUR5(dgUR 5 g![
a gf=f)NFT)<06>resolver,<00>
startswithr3<00>unlinkr0)r<<00>rel_path<74>targets r <00> delete_mediarW_sn<00><00><19>$<24> -<2D> -<2D> /<2F>F<EFBFBD> <0E>v<EFBFBD>;<3B> !<21> !<21>#<23>k<EFBFBD>&9<>&9<>&;<3B>"<<3C> =<3D> =<3D><14> <11>=<3D>=<3D>?<3F>?<3F><14><15><0E> <0A> <0A><0F> <10><> <15><15><14><15>s<00>!A2<00>2
A?<03>>A?)<02>returnr,)r<rrXzdict[str, Any])r<rrXzlist[dict[str, Any]])r<rrUr,rX<00>bool)<0E>
__future__rr4<00>osr<00>pathlibr<00>typingrr(r rJrPrWr
r r <00><module>r^s/<00><01>"<22> <0B> <09><1D><18><16> <0B>;<3B>:<10>z<11>&
r