HEX
Server: Apache
System: Linux opal14.opalstack.com 3.10.0-1160.108.1.el7.x86_64 #1 SMP Thu Jan 25 16:17:31 UTC 2024 x86_64
User: curbgloabal_opal (1234)
PHP: 8.1.29
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //usr/share/inkscape/extensions/webslicer_export.pyo
�
��Yc@s|dZddlZddlZddlZddlTddlZdefd��YZedkrxe�Z	e	j
�ndS(s�
Copyright (C) 2010 Aurelio A. Heckert, aurium (a) gmail dot com

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
i����N(t*tWebSlicer_ExportcBseZd�ZdZd�Zd�ZgZd�Zd�Zd�Z	d�Z
d�Zd	�Zd
�Z
dZd�Zd
�Zd�Zd�Zd�Zd�ZiZd�Zed�Zd�Zd�ZiZd�Zddd�ZgZd�Zd�Z d�Z!RS(cCs�tj|�|jjd�|jjdddddddd	d
�|jjdddddd
tddd	d
�|jjdddddd
tddd	d
�dS(Ns--tabs--dirtactiontstorettypetstringtdesttdirthelpts--create-dirtinkbooltdefaultt
create_dirs--with-codet	with_code(tWebSlicer_Effectt__init__tOptionParsert
add_optiontFalse(tself((s2/usr/share/inkscape/extensions/webslicer_export.pyRs 
s{http://www.w3.org/2000/svg}cCsst|jj�r0tjtd��idd6S|jjddks\|jjddkrx|jjdd!|j_ntjj|jj�s,|jj	rytj
|jj�Wq)tk
r}tjtd�|jj�tjtd�|�id	d6SXq,tjtd
�|jj�dSn|j�}|dkrbtjtd��idd6S|j|�dS(Ns/You must give a directory to export the slices.terrori����t/s\isCan't create "%s".s	Error: %ss%Can't create the directory to export.s#The directory "%s" does not exists.sNo slicer layer found.(tis_emptytoptionsRtinkexterrormsgt_tostpathtexistsRtmakedirst	Exceptiontget_slicer_layertNonetunique_html_id(Rtetslicer_layer((s2/usr/share/inkscape/extensions/webslicer_export.pytvalidate_inputs4s*,
cCs�tjdkr d|d}ntj|dd�}|j�}|j�}|dkrcd}n|ddkr�|d }n||fS(	Ntwin32s{ s; }s 2>&1trii����s
(tsystplatformRtpopentreadtcloseR!(Rtcmdtpipettexttsts((s2/usr/share/inkscape/extensions/webslicer_export.pytget_cmd_outputSs	
cCsx|j�D]}|j|jd|jd|jd|jdgkr
|j|�}|d|jkr�tjtd�|d�d}x/|ddt|�|jkr�|d	7}q�W|dcdt|�7<n|jj	|d�|j
||�|j|�q
q
WdS(
NtrectRtcircletgshtml-ids1You have more than one element with "%s" html-id.it-i(tgetchildrenttagtsvgNStget_el_conft	_html_idsRRRtstrtappendt	save_confR"(Rteltchildtconftn((s2/usr/share/inkscape/extensions/webslicer_export.pyR"cs	$cCs4|jd�\}}|dko*d|k|_dS(Nsconvert --versionitImageMagick(R1t
has_magick(Rtstatustoutput((s2/usr/share/inkscape/extensions/webslicer_export.pyttest_if_has_imagemagicktscCs�|j�|j�}|r |S|jddd�|j�|j|j��|jjrs|j�|j	�n|j
�dS(Ntbodys
text-aligntcenter(RFR%treg_csstcreate_the_temporary_svgtexport_chids_ofR RR
tmake_html_filet
make_css_filetdelete_the_temporary_svg(RR((s2/usr/share/inkscape/extensions/webslicer_export.pyteffectys



cCsmttjj|jjd�d�}|jdddddd|j�d	d
dd�|j�dS(
Nslayout.htmltws<html>
<head>
s$  <title>Web Layout Testing</title>
s)  <style type="text/css" media="screen">
s    @import url("style.css")
s  </style>
s</head>
<body>
s-  <p style="position:absolute; bottom:10px">
s/  This HTML code is not done to the web. <br/>
s4  The automatic HTML and CSS code are only a helper.s</p>
</body>
</html>(	topenRRtjoinRRtwritet	html_codeR,(Rtf((s2/usr/share/inkscape/extensions/webslicer_export.pyRL�s
$
-cCsUttjj|jjd�d�}|jdddd|j��|j�dS(Ns	style.cssRPs/*
s)** This CSS code is not done to the web.
s6** The automatic HTML and CSS code are only a helper.
s*/
(	RQRRRRRRRStcss_codeR,(RRU((s2/usr/share/inkscape/extensions/webslicer_export.pyRM�s
$cCswtjd�\}|_|j�}d|jkr@|jdpCd}d|jd<|jj|j�||jd<dS(Ns.svgtstyleR	sdisplay:none(ttempfiletmkstempttmp_svgR tattribtdocumentRS(Rtreftlayert
current_style((s2/usr/share/inkscape/extensions/webslicer_export.pyRJ�s"
cCstj|j�dS(N(RtremoveRZ(R((s2/usr/share/inkscape/extensions/webslicer_export.pyRN�sicCs*|j|jd�}i}|dkr@tjj|d�}n|jdkr[d|_nx_|jjd�D]K}|jd�dkrn|jd�}|dj�||dj�<qnqnWd|kr&||j	�kr�idd6S|j
d7_
d	t|j
�|d<|jd
|d7_n|S(NtdescR	s
t:iishtml-ids#body#selement-s	
html-id:(tfindR8R!Rtetreet
SubElementR/tsplittstripR tnoid_element_countR;(RR>RaR@tline((s2/usr/share/inkscape/extensions/webslicer_export.pyR9�s"%cCsd|jd�}|dk	r`g}x'|D]}|j|d||�q(Wdj|�|_ndS(Ns {http://www.w3.org/2000/svg}descs : s
(RcR!R<RRR/(RR@R>Ratconf_atk((s2/usr/share/inkscape/extensions/webslicer_export.pyR=�s
cCs�|j|�d}x�|j�D]�}|j|�}|j|jdkrz|jjrj|j||�qz|j|�n|j|jd|jd|jdgkr |jjr�|j|||�n|j	||�q q WdS(Nshtml-idR4R2RR3(
R9R6R7R8RR
tregister_group_codeRKtregister_unity_codet
export_img(Rtparentt	parent_idR>tel_conf((s2/usr/share/inkscape/extensions/webslicer_export.pyRK�s-cCs�|jd|�d|d}|j|dd�|j|�}|j|dtt|d��d�|j|d	tt|d
��d�|j|dtt|d��d�|j|d
tt|d��d�|j|�dS(Ntdivt#shtml-idtpositiontabsolutettoptytpxtlefttxtwidthRPtheightth(treg_htmlRItget_relative_el_geometryR;tintRK(RtgroupR@tselectgeometry((s2/usr/share/inkscape/extensions/webslicer_export.pyRl�s''''cCs6d|krd|d<nd|kr2d|d<n|S(Nslayout-dispositionsbg-el-norepeatslayout-position-anchortmc((RR@((s2/usr/share/inkscape/extensions/webslicer_export.pyt__validate_slice_conf�s


c	Cs?|j|�}d|d}d}|j||�}|ddd!dkrh|ddd!d	kr�|d
krxd}n
d|}|ddkr�d
}n|ddkr�d}n|ddkr�d}n|d}|dkr�d}n|dkrd}n|dkrd}n|dkr+d}n|dkr@d}n|dkrUd}n|dkrjd }n|d!krd"}n|d#kr�d$}n|j|d%d&|||f�q;|jd'|�|j|d%d(|df�|j|d)d*�|j|t�}|j|d+|d,�|j|d-|d.�|j|d/|d0�|j|d1|d2�n�|jd3|�|dd4kr�|j|d)d*�|j|�}|j|d-t|d.�d5�|j|d+t|d,�d5�n|dd6kr|j|d7d8�n|dd9kr;|j|d7d8�ndS(:NRsshtml-ids	no-repeatslayout-dispositioniitbgi	s	bg-parents#body#RGsbg-parent-repeattrepeatsbg-parent-repeat-xsrepeat-xsbg-parent-repeat-ysrepeat-yslayout-position-anchorttlstop leftttcs
top centerttrs	top righttmlsmiddle leftR�s
middle centertmrsmiddle righttblsbottom lefttbcs
bottom centertbrsbottom rightt
backgroundsurl("%s") %s %sRrsurl("%s") %sRtRuRvRwRyRzR{RPR|R}timgsimg-posRxsimg-float-lefttfloattrightsimg-float-right(t&_WebSlicer_Export__validate_slice_conftimg_nameRIR~RtTrueR;(	RR>R@Rptcss_selectort	bg_repeatR�t
lay_anchortgeo((s2/usr/share/inkscape/extensions/webslicer_export.pyRm�sn	
			
									!$cCs<d|j}|j|�\}}i|_|dkr�x�|jd�D]}|jd�}t|�dkrGit|d�d6t|d�d	6t|d
�d6t|d�d
6|j|d<qGqGWn|j|jj�j	d��}|j|jj�j	d��}idd6dd	6|d6|d
6|jd<dS(Nsinkscape --query-all is
t,iiRziRwiRPiR}R{R|swebslicer-layer(
RZR1tel_geoRftlenR�tunittouuR\tgetroottget(Rtink_cmmRDRER>tdoc_wtdoc_h((s2/usr/share/inkscape/extensions/webslicer_export.pytregister_all_els_geometry,s
	%:!!cCs�|js|j�n|j|�}|j|jd}|dc|j|jdd8<|dc|j|jdd8<|r�x/|D]$}tt||��d||<q�Wn|S(NtidRzRwRx(R�R�t
getParentNodeR[R;R�(RR>tvalue_to_cssRoR�Rk((s2/usr/share/inkscape/extensions/webslicer_export.pyR;s	
""
%cCs|jdd|dS(NR�t.tformat(R[(RR>R@((s2/usr/share/inkscape/extensions/webslicer_export.pyR�Jsc	Cs*|js)tjtd��d|d<ntjj|jj|j	||��}|}|ddkrs|d}nd}d|kr�|d|dd7}nd	|kr�|d
|d	7}nd|kr�|dj
d�}|d
|dd|d7}n|jd||jd||j
f�\}}|ddkr&d}|ddkro|dt|d�7}n|ddkr�|ddkr�|d7}n
|d7}|ddkr�|dt|d�7}q�n|jd|||f�\}}|dkrtjd|�ntj|�ndS( Ns4You must install the ImageMagick to get JPG and GIF.tpngR�s.pngR	sbg-colors -b "s" -y 1tdpis -d t	dimensionRzs -w is -h is inkscape %s -i "%s" -e "%s" "%s"R�tjpgs
 -quality tqualitytgifsgif-typet	grayscales -type Grayscales -type Palettespalette-sizeis	 -colors sconvert "%s" %s "%s"sUpss... ImageMagick error: (RCRRRRRRRRRR�RfR1R[RZR;R`(	RR>R@R�timg_name_pngtoptstdimRDRE((s2/usr/share/inkscape/extensions/webslicer_export.pyRnNsB	
'
!&

cCs�|j|�}|j|�d}||j�kr=d}n|j|�}|d}d|kro|d}nd}||jkr�g|j|<n|j|ji|d6|d6|d6�dS(Nshtml-idRGs
html-classR	R7R�tclass(R�R9R t_htmlR<(Rtel_tagR>RoRpR@tel_idtel_class((s2/usr/share/inkscape/extensions/webslicer_export.pyR~us	

RGs  cCsM||jkrdSd}x-|j|D]}|j|d|d�}d}|ddkrrd|dd}n|ddkr�||d	|dd|d
|j||j|��d7}q'||d|dd
|dd|d7}|r||7}n||d|dd7}||d|dd|dd7}q'W|S(NR	R�s  R�s class="t"R7R�s	<img id="s src="s"/>
t<s id="s>
s
  Element s
s</s
><!-- id="s" -->
(R�RTR�R9(RRotidenttcodeR>t
child_codet	tag_class((s2/usr/share/inkscape/extensions/webslicer_export.pyRT�s"?.
*cCs�d}}x4|jD])}|d7}|d|kr|}qqW|dkrx|d}|jji|d6id6�n||j|dkr�g|j|d|<n|j|d|j|�dS(Ni����itselectortatts(t_cssR<(RR�tatttvaltpostits((s2/usr/share/inkscape/extensions/webslicer_export.pyRI�s



!cCs�d}x�|jD]�}|d|dd7}xn|dD]b}|d|}|dkrvt|�dkrv|d7}n|d	|d
dj|�d7}q7W|d
7}qW|S(NR	s
R�s {
R�R�is8  /* the next attribute needs a CSS3 enabled browser */
s  s: s, s;
s}
(R�R�RR(RR�R�R�R�((s2/usr/share/inkscape/extensions/webslicer_export.pyRV�s
'cCsdS(N((R((s2/usr/share/inkscape/extensions/webslicer_export.pyRE�s("t__name__t
__module__RR8R%R1R:R"RFRORLRMRJRNRhR9R=RKRlR�RmR�R�RRR�RnR�R~RTR�RIRVRE(((s2/usr/share/inkscape/extensions/webslicer_export.pyRs>																		4			&			
t__main__(t__doc__RR(RXtwebslicer_effectRRRR�R#taffect(((s2/usr/share/inkscape/extensions/webslicer_export.pyt<module>s
��