
    XRgW.                         d dl Z e j                  j                  dk  rdd dlZd dlZ ej
                  dd       d dlmZ ddlm	Z	m
Z
 d	Zd
 Z G d d      Z G d de      Z G d de      Zy)    N   zpython3 requiredGtkz3.0)r      )warnxml_markup_convert_to_textzhttps://dl.flathub.org/media/c                 X    | r't        |       dkD  r| d   j                         | dd  z   S | S )Nr   r   )lenupper)strings    >/usr/lib/python3/dist-packages/mintcommon/installer/pkgInfo.py
capitalizer      s0    #f+/q	!F12J./    c                       e Zd ZdZddZy)PkgInfo)namepkg_hashrefidremotekindarchbranchcommit
remote_urldisplay_namesummarydescriptionversioniconscreenshotshomepage_urlhelp_url
categories	installedverified	developerkeywordsNc                 .   d | _         |r|| _         d | _        d| _        d| _        d| _        d| _        d| _        d| _        d| _        d | _	        d | _
        d | _        d | _        d | _        i | _        g | _        d | _        d | _        d | _        g | _        y )N r   )r   r   r   r   r   r   r   r   r   r   r   r   r%   r   r   r   r    r!   r&   r"   )selfr   s     r   __init__zPkgInfo.__init__/   s    $DM	
		 !	  r   N)__name__
__module____qualname__	__slots__r*    r   r   r   r      s    I2r   r   c                        e Zd Zd fd	Zedefd       Zd ZddZddZ	ddZ
d Zdd	Zdd
ZddZddZddZ xZS )
AptPkgInfoc                    t         t        |   |       d| _        |rb|j                  | _        | j                  |      | _        | j                  |      | _        | j                  |d       | j                  |d       y y )NT0   @   )
superr2   r*   r$   r   get_display_namer   get_summaryr   get_icon)r)   r   apt_pkg	__class__s      r   r*   zAptPkgInfo.__init__O   so    j$(2 DI $ 5 5g >D++G4DLMM'2&MM'2& r   	json_datac                      |        }|d   |_         |d   |_        |d   |_        |d   |_        	 |d   }	 |j	                         \  }}||j
                  t        |      <   ,# t        $ r}Y d }~|S d }~ww xY w)Nr   r   r   r   r   )r   r   r   r   popitemr   int	Exception)clsr<   instcachedsizer   es          r   	from_jsonzAptPkgInfo.from_json\   s    u!*-f%	%n5 +	v&F#^^-
d'+		#d)$   		s   2A# #	A72A7c           	      F    dD ci c]  }|t        | |d        }}|S c c}w )N)r   r   r   r   r   getattrr)   keytrimmed_dicts      r   to_jsonzAptPkgInfo.to_jsono   s<    $ sD))     c                 $   | j                   r| j                   S |r|j                  j                         | _         | j                   s| j                  j                         | _         | j                   j                  dd      | _         | j                   S )Nz:i386r(   )r   r   r   replacer)   r:   s     r   r7   zAptPkgInfo.get_display_name{   st    $$$ ' 7 7 9D   $		 4 4 6D --55grB   r   c                     | j                   r| j                   S |rB|j                  r6|j                  }d}|j                   |j                   }t        |      | _         | j                   d| _         | j                   S Nr(   )r   	candidater   )r)   r:   rT   r   s       r   r8   zAptPkgInfo.get_summary   sl    <<<<w(())IG  ,#++)'2<<DL||r   c                 n   | j                   r| j                   S |r}|j                  rq|j                  }d}|j                   W|j                   }|j                  dd      j                  dd      }dD ]  }|j                  |d      } t        |      | _         | j                   d| _         | j                   S )Nr(   z<p>z</p>
)z<ul>z</ul>z<li>z</li>)r   rT   rP   r   )r)   r:   rT   r   tagss        r   get_descriptionzAptPkgInfo.get_description   s    ###w(())IK$$0'33)11%<DDVTR> @D"-"5"5dB"?K@ $.k#: #!Dr   c                      yrS   r0   r)   s    r   get_keywordszAptPkgInfo.get_keywords   s    r   c                 *   	 | j                   |   S #  Y nxY wt        j                  j                         }| j                  | j                  j                  d      d   | j                  j                  d      d   | j                  j                  d      d   j                         fD ]3  }|j                  |      s|| j                   |<   | j                   |   c S  dD ]  }dD ]  }d| j                  |d|}t        j                  j                  |      r"|| j                   |<   | j                   |   c c S d	| j                  d|}t        j                  j                  |      s|| j                   |<   | j                   |   c c S   y )
N:r   -.)svgpngxpm)r(   z-iconz/usr/share/app-install/icons/z/usr/share/pixmaps/)r   r   	IconThemeget_defaultr   splitlowerhas_iconospathexists)r)   r:   rD   themer   	extensionsuffix	icon_paths           r   r9   zAptPkgInfo.get_icon   s\   	99T?"	))+YY		 4Q 79Ma9PRVR[R[RaRabeRfgiRjRpRpRrs 	'D~~d#"&		$yy&	' / 
	+I' 	+FJiiQWYbc	77>>),&/DIIdO99T?* - ;?))YO	77>>),&/DIIdO99T?*	+
	+ s    c                     g S r+   r0   rQ   s     r   get_screenshotszAptPkgInfo.get_screenshots   s    	r   c                    | j                   r| j                   S |rO|j                  r|j                  j                   | _         n'|j                  |j                  j                   | _         | j                   d| _         | j                   S rS   )r   is_installedr#   rT   rQ   s     r   get_versionzAptPkgInfo.get_version   sl    <<<<##&0088$$0#*#4#4#<#<DL<<DL||r   c                    | j                   r| j                   S |rO|j                  r|j                  j                  | _         n'|j                  |j                  j                  | _         | j                   d| _         | j                   S rS   )r    rs   r#   homepagerT   rQ   s     r   get_homepage_urlzAptPkgInfo.get_homepage_url   sw    $$$##$+$5$5$>$>!$$0(/(9(9(B(BD%$ "D   r   c                      yrS   r0   rQ   s     r   get_help_urlzAptPkgInfo.get_help_url   s    r   )NNr+   )Nr5   )r,   r-   r.   r*   classmethoddictrF   rM   r7   r8   rX   r[   r9   rq   rt   rw   ry   __classcell__r;   s   @r   r2   r2   N   sU    '   $
!& ,8 ! r   r2   c                        e Zd Zd fd	Zedefd       Zd Zd Zd Z	d Z
ddZd	 Zdd
ZddZddZddZddZddZ xZS )FlatpakPkgInfoc                 f   t         t        |   |       |sy |j                         | _        || _        || _        || _        |j                         | _	        |j                         | _        |j                         | _        |j                         | _        |j!                         | _        d| _        y )NF)r6   r   r*   get_namer   r   r   r#   
format_refr   get_kindr   get_archr   
get_branchr   
get_commitr   r$   )r)   r   r   refr   r#   r;   s         r   r*   zFlatpakPkgInfo.__init__   s    nd,X6LLN	$"^^%
LLN	LLN	nn&nn&r   r<   c                 ,    |        }|d   |_         |d   |_        |d   |_        |d   |_        |d   |_        |d   |_        |d   |_        |d   |_        |d	   |_        |d
   |_	        |d   |_
        |d   |_        |d   |_        |d   |_        |S )Nr   r   r   r   r   r   r   r   r   r$   r   r   r   r&   r   r   r   r   r   r   r   r   r   r$   r   r   r   r&   )rA   r<   rB   s      r   rF   zFlatpakPkgInfo.from_json  s    u!*-f%	w'
)f%	f%	))#L1!*-%n5 +f%	!*-r   c           	      F    dD ci c]  }|t        | |d        }}|S c c}w )Nr   rH   rJ   s      r   rM   zFlatpakPkgInfo.to_json   s<     sD)) ( )rN   c                    |r|j                         | _        |j                         }|d}|| _        |j	                  d      | j
                  d<   |j                         | _        	 dj                  |j                               | _
        y | j                  | _        d| _        i | _        d| _        d| _
        y # t        $ r
 d| _
        Y y w xY w)Nr(   r4   48,F)r7   r   r8   r   r9   r   get_verifiedr$   joinr[   r&   	TypeErrorr   )r)   as_pkgr   s      r   add_cached_appstream_dataz(FlatpakPkgInfo.add_cached_appstream_data7  s     & 7 7 9D((*G"DL$oob1DIIdO"//1DM# #)<)<)> ? !%		DDLDI!DMDM  # "#s   '$B: :CCc                     | j                   S r+   )r   rZ   s    r   r7   zFlatpakPkgInfo.get_display_nameN  s       r   c                     | j                   S r+   )r   rZ   s    r   r8   zFlatpakPkgInfo.get_summaryQ  s    ||r   c                     | j                   r| j                   S |r"|j                         }|t        |      | _         | j                   y| j                   S rS   )r   rX   r   )r)   r   r   s      r   rX   zFlatpakPkgInfo.get_descriptionT  sV    ### 002K&#=k#J #r   c                     | j                   S r+   )r&   rZ   s    r   r[   zFlatpakPkgInfo.get_keywordsb  s    }}r   c                     	 | j                   t        |         S # t        $ r Y nw xY w|r-|j                  |      }|r|| j                   t        |      <   |S y r+   )r   strKeyErrorr9   )r)   rD   r   r   s       r   r9   zFlatpakPkgInfo.get_icone  s\    	99SY'' 		 ??4(D'+		#d)$s    	&&c                     t        | j                        dkD  r| j                  S |r|j                         | _        | j                  S )Nr   )r	   r   rq   r)   r   s     r   rq   zFlatpakPkgInfo.get_screenshotss  sA    t 1$###%557Dr   c                     | j                   r| j                   S |r|j                         }|r|| _         | j                   y| j                   S rS   )r   rt   )r)   r   r   s      r   rt   zFlatpakPkgInfo.get_version|  sE    <<<<((*G&<<||r   c                     | j                   r| j                   S |r|j                         | _         | j                   y| j                   S rS   )r%   get_developerr   s     r   r   zFlatpakPkgInfo.get_developer  s=    >>>>!#113DN>>!~~r   c                     | j                   r| j                   S |r|j                         }||| _         | j                   y| j                   S rS   )r    rw   r)   r   urls      r   rw   zFlatpakPkgInfo.get_homepage_url  sP    $$$))+C$'!$   r   c                     | j                   r| j                   S |r|j                         }||| _         | j                   y| j                   S rS   )r!   ry   r   s      r   ry   zFlatpakPkgInfo.get_help_url  sG    ==== %%'C #== }}r   )NNNNFr+   )r5   N)r,   r-   r.   r*   rz   r{   rF   rM   r   r7   r8   rX   r[   r9   rq   rt   r   rw   ry   r|   r}   s   @r   r   r      s_    &   $..!  
!r   r   )sysversion_infomajorri   girequire_versiongi.repositoryr   miscr   r   FLATHUB_MEDIA_BASE_URLr   r   r2   r   r0   r   r   <module>r      su    
A
 	 	   5%    2 9 7 7ri iVyW yr   