o
    ^"<f  ã                   @   sd   d dl Z d dlZd dlZd dlmZ d dlmZ d dlmZm	Z	 d dl
mZmZ G dd„ deƒZdS )é    N)Úinput)Úsettings)ÚBaseCommandÚCommandError)ÚEXCLUDEÚ
EXTENSIONSc                   @   s$   e Zd ZdZdZdd„ Zdd„ ZdS )ÚCommandz<media_path>z>Remove Image-Versions within FILEBROWSER_DIRECTORY/MEDIA_ROOT.c                 O   s&  d}t |ƒr
|d }tj tj|¡}tj |¡std| ƒ‚| j 	d| j
 ¡ | j 	d| ¡ d}	 | j 	d¡ | j 	d	¡ td
| ƒ}|rL|dkrL|}|dkr]|dkr]tj 	d¡ d }q1	 	 tdƒ}|dkrp| j 	d¡ d }q^	 |  |||dk¡}t |ƒdkr¹| j 	d¡ |d d… D ]
}	| j 	d|	 ¡ qŒ| j 	d¡ | j 	d¡ |t |ƒd d … D ]
}	| j 	d|	 ¡ q­n| j 	d¡ |D ]
}	| j 	d|	 ¡ qÁt |ƒdkrÚ| j 	d¡ d S | j 	dt |ƒ ¡ d}
| j 	d¡ tdƒ}
|
dkr|D ]}	t |	¡ q÷| j 	dt |ƒ ¡ d S | j 	d¡ d S )NÚ r   zE<media_path> must be a directory in MEDIA_ROOT. "%s" is no directory.z
%s
zin this case: %s
Úsé   zV
Older versions of the FileBrowser used to prefix the filename with the version name.
zDCurrent version of the FileBrowser adds the version name as suffix.
z9"p" for prefix or "s" for suffix (leave blank for "%s"): Úpz.Error: "p" and "s" are the only valid inputs.
z(
version name as defined with VERSIONS: z)Error: You have to enter a version name.
é   z
First/Last 5 files to remove:
é   z%s
z...
z
Files to remove:
z0 files removed.

z%d file(s) will be removed.

z)Are Sure you want to delete these files?
z1"y" for Yes or "n" for No (leave blank for "n"): Úyz%d file(s) removed.

zNo files removed.

)ÚlenÚosÚpathÚjoinr   Ú
MEDIA_ROOTÚisdirr   ÚstdoutÚwriteÚhelpr   ÚsysÚstderrÚ	get_filesÚremove)ÚselfÚargsÚoptionsÚ
media_pathr   Údefault_prefix_or_suffixÚprefix_or_suffixÚversion_nameÚfilesÚcurrent_fileÚ	do_remove© r'   úh/var/www/html/kck/venv/lib/python3.10/site-packages/filebrowser/management/commands/fb_version_remove.pyÚhandle   sl   ÿ
ÿzCommand.handlec                 C   sÞ   g }g }t D ]
}| t |¡¡ qtj|ddD ]T\}}}	|	D ]L}
d}|
 d¡r)q|D ]	}| |
¡r4d}q+|r8qtj 	|
¡\}}|t
d v rk|rZ| |d ¡rY| tj ||
¡¡ q| d| ¡rk| tj ||
¡¡ qq|S )NT)ÚfollowlinksFÚ.ÚImageÚ_)r   ÚappendÚreÚcompiler   ÚwalkÚ
startswithÚsearchr   Úsplitextr   r   Úendswith)r   r   r#   Úsearch_for_prefixÚ	file_listÚ	filter_reÚexpÚdirpathÚdirnamesÚ	filenamesÚfilenameÚfilteredÚ	re_prefixÚfilename_noextÚ	extensionr'   r'   r(   r   d   s4   

€€€ízCommand.get_filesN)Ú__name__Ú
__module__Ú__qualname__r   r   r)   r   r'   r'   r'   r(   r      s
    Sr   )r   r/   r   Ú	six.movesr   Údjango.confr   Údjango.core.management.baser   r   Úfilebrowser.settingsr   r   r   r'   r'   r'   r(   Ú<module>   s   