
    Q/Ph                        d dl mZmZmZ d dlmZ d dlZ	 ej        fdZe	dk    rd dl
Z
d dlZd Z eej                  dk    rej        d         n	 e            Zedk    rej        ZnZed	k    rej        ZnLed
k    rej        Zn>edk    rej        Zn0edk    rd Zn&edk    rej        Znedk    rej        Zn
 e              eej                  dk    rej        dd         ndZ eee           dS dS )    )absolute_importdivisionprint_function)ImageNc           	         d g }| D ]&|fdt          j                  D             z  }'i }t          |          D ]}	  |t          j        |                    }n)# t
          $ r}t          d|d|           Y d }~Bd }~ww xY w||v r>t          |dd                    ||                              d|v rt          d|           |                    |g           |gz   ||<   d S )	Nc                 .   |                                  }|                    d          pl|                    d          pW|                    d          pB|                    d          p-|                    d          pd|v p|                    d          S )Nz.pngz.jpgz.jpegz.bmpz.gifz.svg)lowerendswith)filenamefs     `/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/../../../bin/find_similar_images.pyis_imagez%find_similar_images.<locals>.is_image   s    nn!	
F		 
;qzz&11 
;::g
;**V,,
;::f
;1
;()

6(:(:;    c                 f    g | ]-} |          t           j                            |          .S  )ospathjoin).0r   r   userpaths     r   
<listcomp>z'find_similar_images.<locals>.<listcomp>   s;    ffftW_W_`dWeWefbgll8T22fffr   zProblem:withz  already exists as dupPictureszrm -v)	r   listdirsortedr   open	Exceptionprintr   get)		userpathshashfuncimage_filenamesimagesimghasher   r   s	          @@r   find_similar_imagesr(      sD   ; ; ;  g gXfffffrz(?S?Sffff//
?## 
. 
.S
(5:c??
#
#44	   Q$$$8888 
V^^#SXXfTl%;%;<<<s	'3D"%%-&,,
. 
.s   A##
B	-BB	__main__c                      t           j                            dt           j        d         z             t          j        d           d S )Na  SYNOPSIS: %s [ahash|phash|dhash|...] [<directory>]

Identifies similar images in the directory.

Method:
  ahash:          Average hash
  phash:          Perceptual hash
  dhash:          Difference hash
  whash-haar:     Haar wavelet hash
  whash-db4:      Daubechies wavelet hash
  colorhash:      HSV color hash
  crop-resistant: Crop-resistant hash

(C) Johannes Buchner, 2013-2017
r      )sysstderrwriteargvexitr   r   r   usager1   -   sD    *  
hqk    (1+++++r   r+   ahashphashdhashz
whash-haarz	whash-db4c                 .    t          j        | d          S )Ndb4)mode)	imagehashwhash)r%   s    r   r"   r"   I   s    
/#E
*
*
**r   	colorhashzcrop-resistant   .)r!   r"   )
__future__r   r   r   PILr   r8   average_hashr(   __name__r   r,   r1   lenr/   
hashmethodr"   r3   r4   r9   r:   crop_resistant_hashr!   r   r   r   <module>rD      s   @ @ @ @ @ @ @ @ @ @          
 -6,B . . . .8 z
  $ !S]]Q..chqkkEEGG'#((G_((G_((L  _((K+ + + +K (($$$*((%''' S]]Q..SXabb\\Cy8<<<<<<S r   