
    j                     z   d dl Z d dlZd dlZd dlmZmZmZmZ d dlm	Z
 d dlmZmZ d dlmZmZ  ede          Zdededz  fd	Zded
ee         defdZe                    d          defd            Ze                    d          dedefd            Ze                    d          defd            ZdS )    N)	Blueprintrequest	send_fileurl_for)get_job)
_summarizeget_job_snapshot)get_request_ownerjob_matches_ownerfilejob_idreturnc                 F    t          |           }||S t          |           S )N)r	   get_saved_job)r   jobs     ?/home/longshao/multi-rider-rag/modules/detection/file_routes.py_resolve_jobr      s'    
6
"
"C

       partsc           	          g }|D ]C}|                     d          }|                    dt          d| |           d| d           Dd                    dd	                    |                    S )
Nnamez<li><a href='zfile.download_zip_part)r   partz'>z	</a></li>u   
    <html><head><meta charset='utf-8'><title>下载分片</title></head>
    <body><h3>检测结果较多，已按日期切分为多个 ZIP：</h3>
    <ul>{items}</ul>
    </body></html>
    z{items}
)getappendr   replacejoin)r   r   linksr   r   s        r   _render_parts_pager      s    E 
 
xxjG$<VRVWWWjj[_jjj	
 	
 	
 	

 		499U++,,-r   z/download/<job_id>c                 0   t          |           }|sdS t          t                    \  }}t          |||          sdS |                    d          dk    rdS |                    d          pg }|                    d          }|                    d          pt          t          j                              }|r7t          j        	                    |          r| d	}t          |d
d|          S t          |          dk    rt          | |          S dS )Nzjob not found  	forbiddeni  statusdonezjob not found or not readyr"   	zip_partszip_pathend_tsz.zipapplication/zipTmimetypeas_attachmentdownload_name   zfile not foundr"   )r   r
   r   r   r   inttimeospathisfiler   lenr   )r   r   	owner_keyowner_ipr   r)   tsfilenames           r   download_zipr<   %   s#   
v

C $##+G44IxS)X66  
wwxF""00GGK  &BEwwz""H				.c$)++..B 
BGNN8,, 
;;;&"	
 
 
 	
 5zzA~~!&%000  r   z/download/<job_id>/<part>r   c                    t          |           }|sdS t          t                    \  }}t          |||          sdS |                    d          dk    rdS d |                    d          pg D             }|                    |          }|rt
          j                            |          sdS t          |dd	|
          S )Nr'   r#   r%   r&   c                 ,    i | ]}|d          |d         S )r   r5    ).0items     r   
<dictcomp>z%download_zip_part.<locals>.<dictcomp>R   s"    QQQDT&\4<QQQr   r(   r1   r+   Tr,   )	r   r
   r   r   r   r4   r5   r6   r   )r   r   r   r8   r9   r   r5   s          r   download_zip_partrC   E   s    
v

C 100+G44IxS)X66  
wwxF""00QQSWW[5I5I5ORQQQE99T??D %rw~~d++ %$$T$5TY]^^^^r   z/summary/<job_id>c                 4   t          |           }|sdS t          t                    \  }}t          |||          sdS |                    d          pt          |          }t          t          j        |	                    d                    ddd          S )	Nr!   r#   summary_textzutf-8z
text/plainTzsummary.txtr,   )
r   r
   r   r   r   r   r   ioBytesIOencode)r   r   r8   r9   texts        r   download_summaryrJ   Z   s    
v

C $##+G44IxS)X66  77>""5jooD

4;;w''((#	   r   )rF   r4   r3   flaskr   r   r   r   shared.db.sqliter   r   &modules.detection.services.job_servicer   r	   shared.ownership.ownershipr
   r   __name__file_bpstrdictr   listr   r   r<   rC   rJ   r?   r   r   <module>rT      s   				 				  8 8 8 8 8 8 8 8 8 8 8 8 5 5 5 5 5 5 O O O O O O O O K K K K K K K K )FH
%
%! ! ! ! ! !-s -4: -# - - - - 	!""! ! ! ! #"!> 	())_c _ _ _ _ *)_( 	 !!S    "!  r   