From 10de61cb255cdf2f9b90dc924b4459970d6d9c2d Mon Sep 17 00:00:00 2001 From: Henrik Jess Nielsen Date: Sun, 29 Dec 2024 18:12:24 +0100 Subject: [PATCH] [main] Imagesizes in slider --- .../__pycache__/image_service.cpython-312.pyc | Bin 8524 -> 9124 bytes .../markdown_render.cpython-312.pyc | Bin 8142 -> 8389 bytes app/services/image_service.py | 23 +++++++++++++----- app/services/markdown_render.py | 17 +++++++------ data/Kultur/0200_kultur_unikt.md | 4 +-- data/Kultur/images/pic34.jpg | 0 data/Kultur/images/pic42.jpg | 0 data/Kultur/images/pic72.jpg | 0 data/Kultur/images/pic94.jpg | 0 static/images/Kultur/large/158170.jpg | Bin 0 -> 61963 bytes .../images/Kultur/large/Fachada_SaoJorge.jpg | Bin 0 -> 111603 bytes static/images/Kultur/thumbnails/158170.jpg | Bin 0 -> 2992 bytes .../Kultur/thumbnails/Fachada_SaoJorge.jpg | Bin 0 -> 16017 bytes 13 files changed, 29 insertions(+), 15 deletions(-) delete mode 100644 data/Kultur/images/pic34.jpg delete mode 100644 data/Kultur/images/pic42.jpg delete mode 100644 data/Kultur/images/pic72.jpg delete mode 100644 data/Kultur/images/pic94.jpg create mode 100644 static/images/Kultur/large/158170.jpg create mode 100644 static/images/Kultur/large/Fachada_SaoJorge.jpg create mode 100644 static/images/Kultur/thumbnails/158170.jpg create mode 100644 static/images/Kultur/thumbnails/Fachada_SaoJorge.jpg diff --git a/app/services/__pycache__/image_service.cpython-312.pyc b/app/services/__pycache__/image_service.cpython-312.pyc index d070e843974c96fc838ee4545d1ee13033ce3211..146cc590a713d69197123254f935813cc61c2a8c 100644 GIT binary patch delta 1505 zcmZvcTTC2P7{||dX7+v&SeAtacA*ifbI$pd!(m0tV%Oh_{N-A9{yy_I^Hz|8f*_+HmaQ_LgP@>@vY;5ou`JGs zYrKJ3(0C9v6huu2QDZ^Wd=NDiL@ly;4h5~Uh0!(zl1+Emo{z?qzR-jmQ^Vm~;&Yy$NN!z|iybkky!n;MLNgI^O(_W+)zUzo4@!kEvQHw#+@ zcJ5)|cbEkFp1Z0_hBfAL3!s}gj3X$FM|u!S<0PV^71eIjezuVNnHetlgvpS?Yxzwd z>k^#8%lO7w5v7GRP6+`tQpWT}8K=bek&HhOQg8*S7Fo#oLf(fPr71DYW_<;TXo^h* z>`ddUND>F84RRLk%}l%p2?xB{`O_nVK#ycr`7NnS#_&-aF4Q ziyj)0+q2TY+<)8jpj6rugd*{$QfVQuZ8XnEu0`hK*W$NcUKv^*S{Ys*zTLhW_|ARo zfw65@K%#lGRLTlSaAXnd+Os29_3WiBvt^-S!MpU#Y$8)}-*{*huby0OT<_g%sc+wS z_S^cvmd$nj#jJr9XRXNU{BzgCnpGnkCevf==@cblU|>M9(@x7vm>i>v7N6r?mYhR- zqKN%jJN?vh#ky;@VsWqBft}h>>o)+W=s&h5#wPm_=+$1gcVGi)VO=!id$x~#XQNFd$Bped;|T(GYBc#R{k4=wc3h$ zfJWNqtt$$1g#uxk_SQm(e(3eXBK_QZ&-(^1xWMrLlP%G^l`Sx={al%W=7Rx94QqH+ z67rjKiHi)=w$5lgQlpY^*P&MWQT5@XK^D~o_H!cq|AxqPyV~!Y;Fkwlx?NVrLzA)O zm>Qi{NGq-IbsKN767@4W>gy4FMivC#Ee7~%D)7`QfSr4zjwo$uj?xZ`u z!I|S+v5n&d2mg3U2}eCgJA*FD(QuORdB_=#^BjCAU5HL3b@5^%5hF4WnmIxolN={G zTpaw{ARUi!hFz$?GRz_RiU00%F6_vtS;UrgA-8PodtbV8-ezzlw{DeJW(8KXb-3{% zU-zZCs$?gP^y8X7e{PHaZmXL+;|X~(rko~e>Zq;ro&e_`h~d#?hyXZt5ob>8U*FPV A7XSbN delta 949 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 jw$KfsVi(KG`;)>bh?oU diff --git a/app/services/image_service.py b/app/services/image_service.py index ebf07f4..88c19e6 100644 --- a/app/services/image_service.py +++ b/app/services/image_service.py @@ -7,9 +7,10 @@ from PIL import Image class FileHandler: - def __init__(self, category, image_type, filename): + def __init__(self, category=None, image_type=None, filename=None): self.filename = filename self.category = category + self.image_type = image_type @property @@ -44,6 +45,20 @@ class FileHandler: f")" ) + def get_category(self, file_path): + # List all categories in the data directory + categories = [ + name for name in os.listdir( "data/" ) + if os.path.isdir( os.path.join( "data/", name ) ) + ] + + # Search for the category in the file path + for category in categories: + if f"/{category}/" in file_path or f"\\{category}\\" in file_path: + return category + + # Return None if no category matches + return None class ImageService: @@ -139,14 +154,10 @@ class ImageService: default_size = self.get_image_size( image_type) width = width or default_size.get( "width" ) height = height or default_size.get( "height" ) - - - - #file_path = self._resolve_path( category, image_type, filename ) file_path = FileHandler(category = category,image_type = image_type,filename = filename) self.validate_image( file_path, width = width,height=height, overwrite = True ) - tag = f'{alt}') for i, val in enumerate(images): self.image_service = ImageService( self.app ) - print(val) modal_id_current = f"{modal_id}_{i}" modal_id_next = f"{modal_id}_{i + 1}" if i + 1 < len(images) else f"{modal_id}_0" + category = FileHandler().get_category(self.file_path) + + thumbnal_img = self.image_service.image_tag(category = category, image_type = "thumbnails",filename = val,alt="A better description later on") + modal_img = self.image_service.image_tag(category = category, image_type = "large",filename = val,alt="A better description later on") html_content.append(f"""