o
    `pji
                     @   sr   d Z ddlZddlZddlmZ ejZdddZdee fdd	Z	d
e
dee fddZdededB fddZdS )u2   活动数据读取（bot 写入，web 只读）。    N)config c                 C   sB   t t}t j|_zdd || | D W |  S |  w )Nc                 S   s   g | ]}t |qS r   )dict).0rr   r   =/home/dore/onebot/Bot_Ero/checkin_gallery/activity_service.py
<listcomp>   s    z_rows.<locals>.<listcomp>)sqlite3connectDB_PATHRowrow_factoryexecutefetchallclose)sqlparamsconnr   r   r   _rows
   s
   
r   returnc                  C   s6   t d} | D ]}|d dv rt d|d f|d< q| S )u[   全部活动：进行中（open/running）在前且附成员列表，归档/取消在后。a  SELECT a.id, a.type, a.title, a.description, a.status, a.group_id, a.signup_deadline, a.deadline, a.hours_per_user, a.created_at, a.finished_at, (SELECT COUNT(*) FROM activity_members m WHERE m.activity_id = a.id) AS member_count, (SELECT COUNT(*) FROM activity_members m WHERE m.activity_id = a.id AND m.status = 'done') AS done_count FROM activities a ORDER BY CASE a.status WHEN 'open' THEN 0 WHEN 'running' THEN 1 ELSE 2 END, a.id DESCstatus)openrunningzbSELECT user_id, nickname, seq, status FROM activity_members WHERE activity_id = ? ORDER BY seq ASCidmembers)r   )actsactr   r   r   list_activities   s   r   user_idc                 C   s   t dt| fS )uH   当前用户参加过的全部活动（含自己在其中的状态）。a  SELECT a.id, a.type, a.title, a.status, a.signup_deadline, a.deadline, a.finished_at, m.status AS my_status, m.seq AS my_seq, m.submitted_at AS my_submitted_at, (SELECT COUNT(*) FROM activity_members mm WHERE mm.activity_id = a.id) AS member_count, (SELECT COUNT(*) FROM activity_members mm WHERE mm.activity_id = a.id   AND mm.status = 'done') AS done_count FROM activities a JOIN activity_members m ON m.activity_id = a.id WHERE m.user_id = ? ORDER BY a.id DESC)r   str)r   r   r   r   get_my_activities'   s   r    activity_idc              
   C   s   t d| f}|s
d S |d }t d| f|d< |d D ]#}z|dr)t|d ng |d< W q ttfy=   g |d< Y qw |S )Nz%SELECT * FROM activities WHERE id = ?r   zSELECT user_id, nickname, seq, status, submitted_at, content, images FROM activity_members WHERE activity_id = ? ORDER BY seq ASCr   images)r   getjsonloads	TypeError
ValueError)r!   rowsr   mr   r   r   get_activity6   s   $r*   )r   )__doc__r$   r	   checkin_galleryr   r   r   listr   r   r   r    intr*   r   r   r   r   <module>   s    
	