Files
LifeFaq/app/services/__pycache__/image_service.cpython-312.pyc

76 lines
8.3 KiB
Plaintext
Raw Normal View History

2024-12-29 04:34:54 +01:00
<EFBFBD>
<20>pg<70><00><00>l<00>ddlZddlmZddlmZddlmZmZmZddlm Z Gd<06>d<07>Z
Gd<08>d <09>Z y)
<EFBFBD>N)<01> HTTPException)<01> FileResponse)<03> APIRouter<65>Request<73>FastAPI)<01>Imagec<00>p<00>eZdZd<01>Zedefd<03><04>Zedefd<04><04>Zedefd<05><04>Zedefd<06><04>Z d<07>Z
y) <09> FileHandlerc<00>.<00>||_||_||_y<00>N)<03>filename<6D>category<72>
image_type)<04>selfrrr s <20>A/home/hjess/PycharmProjects/LifeFaq/app/services/image_service.py<70>__init__zFileHandler.__init__
s<00><00><1A>$<24>-<2D><1A>$<24>-<2D><1E>$<24>/<2F><00>returnc<00>T<00>d}|j|j|j<00><02>S)Nz!data/{category}/images/{filename}<7D>rr <00><03>formatrr )r<00>src_paths r<00>src_filezFileHandler.src_files"<00><00> 0<>(<28> <11><1F><1F>T<EFBFBD>]<5D>]<5D>t<EFBFBD>}<7D>}<7D><1F> N<>Nrc<00>T<00>d}|j|j|j<00><02>S)Nz/images/{category}/{filename}rr<00>r<00>base_urls r<00> dest_filezFileHandler.dest_files"<00><00> ,<2C>(<28> <11><1F><1F>T<EFBFBD>]<5D>]<5D>t<EFBFBD>}<7D>}<7D><1F> N<>Nrc<00>j<00>d}|j|j|j|j<00><02>S)Nz0static/images/{category}/{image_type}/{filename}<7D>rrr )rrrr rs r<00> dest_filenamezFileHandler.dest_filenames+<00><00> ?<3F>(<28> <11><1F><1F>T<EFBFBD>]<5D>]<5D><14><1F><1F>]a<>]j<>]j<><1F> l<>lrc<00>T<00>d}|j|j|j<00><02>S)Nz%static/images/{category}/{image_type})rr)rrrrs r<00> dest_pathzFileHandler.dest_paths"<00><00> 4<>(<28> <11><1F><1F>T<EFBFBD>]<5D>]<5D><14><1F><1F><1F> R<>Rrc <00><><00>d|j<00>d|j<00>d|j<00>d|j<00>d|j<00>d|j
<00>d<07> S)NzFileHandler(
filename='z',
category='z',
image_type='z',
src_file='z',
dest_file='z',
dest_filename='z'
))r rrrrr!<00>rs r<00>__str__zFileHandler.__str__#sj<00><00><12><16>-<2D>-<2D><1F>!<12><16>-<2D>-<2D><1F>!<14><18>O<EFBFBD>O<EFBFBD>$<24>%<12><16>-<2D>-<2D><1F>!<13><17>><3E>><3E>"<22>#<17><1B>)<29>)<29>*<2A>+<07> <08> rN) <0B>__name__<5F>
__module__<EFBFBD> __qualname__r<00>property<74>strrrr!r#r&<00>rrr
r
s<><00><00><1F>
 <0B>O<01>s<EFBFBD>O<01> <0B>O<01> <0B>O<01><03>O<01> <0B>O<01> <0B>m<01>C<EFBFBD>m<01> <0B>m<01> <0B>S<01><03>S<01> <0B>S<01>
rr
c<00><><00>eZdZdefd<02>Zd<03>Zdedefd<06>Zd<07>Z ded ed
efd <0B>Z
dd e de de de fd<10>Zdejd e de de fd<12>Zded ed
efd<13>Z
ddeded
edede de defd<15>Zy )<18> ImageService<63>appc<00><><00>t<00>|_||_|jjj|_|j <00>yr )r<00>routerr/<00>state<74> IMAGE_SIZES<45> _add_routes)rr/s rrzImageService.__init__3s4<00><00><19> <0B>$<24>+<2B> <10>$<24>(<28><19>X<EFBFBD>X<EFBFBD>^<5E>^<5E>/<2F>/<2F>$<24><12><06><12><12>rc <00>@<00>dj|jj<00>D<00><01>cgc] \}}|<01>d|<02><00><03><02>c}}<01>}dj|jj<00>D<00><01>cgc]\}}|<01>d|d<00>d|d<00><00><05><02>c}}<01>}d|<03>d|<04><00>Scc}}wcc}}w) z=
Provides a string representation of the class instance.
<09>
z: z: width=<3D>widthz , height=<3D>heightz<Class:ImageService Base Paths:z Image Sizes:
)<04>join<69>
base_paths<EFBFBD>items<6D> image_sizes)r<00>key<65>value<75>base_paths_str<74>image_sizes_strs rr&zImageService.__str__=s<><00><00><18>9<EFBFBD>9<EFBFBD>(,<2C><0F><0F>(=<3D>(=<3D>(?<3F>@<40>(?<3F>*<2A>#<23>u<EFBFBD>s<EFBFBD>e<EFBFBD>2<EFBFBD>e<EFBFBD>W<EFBFBD><15>(?<3F>@<40><04>.<2E><19>I<EFBFBD>I<EFBFBD><1B>&<26>&<26>,<2C>,<2C>.<2E><05>.<2E>
<EFBFBD><03>U<EFBFBD> <0B>e<EFBFBD>8<EFBFBD>E<EFBFBD>'<27>N<EFBFBD>#<23>9<EFBFBD>U<EFBFBD>8<EFBFBD>_<EFBFBD>,=<3D>><3E>.<2E><05><04>/<2F> +<2B>><3E>*:<3A>/<2F>/<2F>IZ<49> [<5B>[<5B><>A<01><>s <00>B
<EFBFBD>*B
rrc <00><><00>|jjj}||vr(td|<01>dt |j <00><00><00><00><04><00>||S)a
Retrieve the width and height for a given image type from the app state.
Args:
request (Request): FastAPI request object.
image_type (str): The type of the image (e.g., 'thumbnails').
Returns:
dict: A dictionary with 'width' and 'height'.
zInvalid image type: z. Must be one of )r/r2r3<00>
ValueError<EFBFBD>list<73>keys)rrr<s r<00>get_image_sizezImageService.get_image_sizeLsS<00><00><15><08><08><0E><0E>*<2A>*<2A>+<2B><0F>{<7B>"<22> <13>+<2B>J<EFBFBD><<3C>7H<37><14>{<7B>O_<4F>O_<4F>Oa<4F>Ic<49>Hd<48>e<> g<>g<> <14>Z<EFBFBD> <20> rc<00>`<00>|jjd|jdgt<00><03>y)Nz#/image/{category}/{type}/{filename}<7D>GET)<02>methods<64>response_class)r1<00> add_api_route<74> get_imagerr%s rr4zImageService._add_routes^s+<00><00><06>+<2B>+<2B><1B><1B>(<28><07>><3E>><3E> <11>7<EFBFBD><1E> <1C>rr<00>typer c<00><00>FK<00>|j|||<03>}t|<04>S<00>w)zB
Retrieve an image file from the specified category and type.
<09><02> _resolve_pathr<00>rrrLr <00> file_paths rrKzImageService.get_imagefs'<00><00><><00><13> <20> <20><18>4<EFBFBD><18>:<3A>)<29> <15>i<EFBFBD> <20> <20><><00>!NrQr7r8c<00><><00>tjj|j<00>sRt j
|j <00>5}t|j <00>|j||||<03>ddd<00>yt j
|j<00>5}|j|k7s|j|k7r |r|j||||<03> ddd<00>y ddd<00>y#1swYyxYw#1swYyxYw)NTF) <0B>os<6F>path<74>existsr!r<00>openr<00>print<6E> _resize_imager7r8)rrQr7r8<00> overwrite<74>imgs r<00>validate_imagezImageService.validate_imagems<><00><00> <0B><17><17><1E><1E><19>0<>0<> 2<> <0A>
<EFBFBD>
<EFBFBD>I<EFBFBD>&<26>&<26>(<28>C<EFBFBD> <09>)<29>
<1C>
<1C><1D><08><16><16><03>Y<EFBFBD><05>v<EFBFBD>7<> )<29> <0F> <0C>z<EFBFBD>z<EFBFBD>9<EFBFBD>*<2A>*<2A>,<2C><03> <09>i<EFBFBD>i<EFBFBD>5<EFBFBD><18>C<EFBFBD>J<EFBFBD>J<EFBFBD>&<26>0<><10> <09><17><17><13>i<EFBFBD><15><06>8<> <10> -<2D>,<2C>0<>-<2D>
<0E> )<29> <0F><>,<2C>
<0E>s<00> *C$<03>6C0<03>$C-<07>0C9r[c<00><><00>|j||ftjj<00>}t j
|j d<01><02>|j|j<00>y)NT)<01>exist_ok) <09>resizer<00>
Resampling<EFBFBD>LANCZOSrT<00>makedirsr#<00>saver!)rr[rQr7r8<00> resized_imgs rrYzImageService._resize_image{sJ<00><00><13>
<EFBFBD>
<EFBFBD>U<EFBFBD>F<EFBFBD>O<EFBFBD>U<EFBFBD>-=<3D>-=<3D>-E<>-E<>G<>+<2B><04>+<2B>+<2B>i<EFBFBD>!<21>!<21>T<EFBFBD>2<> <0A><12><12>I<EFBFBD>+<2B>+<2B>-rc<00><00>FK<00>|j|||<03>}t|<04>S<00>wr rNrPs rrKzImageService.get_image<67>s%<00><00><><00><12> <20> <20>(<28>D<EFBFBD>(<28><<3C>)<29> <15>y<EFBFBD> "<22>"<22>rR<00>altc<00><00>|j|<02>}|xs|jd<01>}|xs|jd<02>}t|||<03><03>}|j|||d<04><05>d|j<00>d|<04>d<08>} |r | d |<05>d<08>z } |r | d
|<06>d<08>z } | d z } | S) zS
Generate an HTML <img> tag with default sizes if dimensions are not provided.
r7r8r T)r7r8rZz
<img src="z" alt="<22>"z width="z height="<22>>)rE<00>getr
r\r!)
rrrr rfr7r8<00> default_sizerQ<00>tags
r<00> image_tagzImageService.image_tag<61>s<><00><00> <16>$<24>$<24>j<EFBFBD>1<>,<2C>
<0F>
.<2E><<3C>#<23>#<23>W<EFBFBD>.<2E>%<25> <11> 1<>\<5C>%<25>%<25>x<EFBFBD>1<>&<26>
<1A>X<EFBFBD>:<3A>QY<51>Z<>)<29><06><15><15>y<EFBFBD>%<25>v<EFBFBD>4<EFBFBD><15>Q<>
<14>Y<EFBFBD>,<2C>,<2C>-<2D>W<EFBFBD>S<EFBFBD>E<EFBFBD><11>;<3B>#<23>
<EFBFBD><06>H<EFBFBD>U<EFBFBD>G<EFBFBD>1<EFBFBD>
<1D><1D>3<EFBFBD> <0B><06>I<EFBFBD>f<EFBFBD>X<EFBFBD>Q<EFBFBD>
<1F><1F>3<EFBFBD><05><13>*<2A>#<23> <0C>*r)NNNT)<03>NN)r'r(r)rrr&r+<00>dictrEr4rKr
<00>int<6E>boolr\rrYrmr,rrr.r.1s<><00><00><15><07><15> \<01>!<21>c<EFBFBD>!<21>d<EFBFBD>!<21>$<04>!<21>S<EFBFBD>!<21><03>!<21>s<EFBFBD>!<21> <0E>K<EFBFBD> <0E>C<EFBFBD> <0E>S<EFBFBD> <0E>mq<6D> <0E>.<2E>e<EFBFBD>k<EFBFBD>k<EFBFBD>.<2E>k<EFBFBD>.<2E>#<23>.<2E>WZ<57>.<2E> #<23>S<EFBFBD>#<23><03>#<23>s<EFBFBD>#<23>ae<01>"<22> <0A>s<EFBFBD> <0A><03> <0A>s<EFBFBD> <0A><13> <0A>Z]<5D> <0A><1B> <0A>'*<2A> rr.) rT<00>fastapir<00>fastapi.responsesrrrr<00>PILrr
r.r,rr<00><module>rus.<00><01> <09>!<21>*<2A>/<2F>/<2F><15>%<04>%<04>Rk <0A>k r