o
    Nrfº  ã                   @   s,   d dl Z d dlZd dlZdd„ Zdd„ ZdS )é    Nc                 C   sœ   t j | ¡s
ddiS t | ¡}| d¡ ¡ }|d |d |d dœ}z|d |d	< |d
 |d< W n	 ty9   Y nw z	|d |d< W |S  tyM   Y |S w )NÚerrorzTileset info is not available!zSELECT * FROM tileset_infoé   é   é   )Z	tile_sizeZmax_zoomÚmax_sizeé   Úwidthé	   Úheighté
   Zdtype)ÚosÚpathÚisfileÚsqlite3ÚconnectÚexecuteÚfetchoneÚ
IndexError)ZtilesetÚdbÚresÚo© r   ú^/var/www/html/software/conda/envs/catlas/lib/python3.10/site-packages/clodius/tiles/imtiles.pyÚget_tileset_info   s$   
ÿýýr   c                 C   s¸   t  | ¡}g }|ot|ƒ}|D ]J}|| d¡d d…  d¡}d}t|d ƒt|d ƒt|d ƒdœ}	| ||	¡ ¡ }
|
rY|
d }|rHd|i}n
d	t 	|¡ 
d
¡i}| ||f¡ q|S )aœ  
    Generate tiles from a imtiles file.
    Parameters
    ----------
    tileset: tilesets.models.Tileset object
        The tileset that the tile ids should be retrieved from
    tile_ids: [str,...]
        A list of tile_ids (e.g. xyx.0.0.1) identifying the tiles
        to be retrieved
    Returns
    -------
    generated_tiles: [(tile_id, tile_data),...]
        A list of tile_id, tile_data tuples
    Ú.é   Nz:SELECT image FROM tiles WHERE z = :z AND y = :y AND x = :xr   é   )ÚzÚyÚxÚimageZdensezlatin-1)r   r   ÚlenÚfindÚsplitÚintr   r   Úbase64Ú	b64encodeÚdecodeÚappend)ÚfilenameZtile_idsÚrawr   Zgenerate_tilesZgenerate_imageZtile_idÚidÚsqlÚparamr   Z
image_blobZ	tile_datar   r   r   Ú	get_tiles   s    
$
€r.   )r%   r   r   r   r.   r   r   r   r   Ú<module>   s
    