
    Vi              !       <   d dl Z d dlZd dlZd dlmZ d dlmZ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 d dlmZmZmZmZmZmZ  e            Zer ee          ndZd	e d
e de de d	Z eeddd          ZeZeZdedededee         fdZ e!                    d           ed           ed           ed           ed           ed           ed           ed           ed           e	d           e	d           e	d           e	d           ed           ed           e	d          fdededededee         dee         dee         d ee         d!ee         d"ee         d#ee         d$ee         d%ed&ed'ee         fd(            Z"dS ))    N)Optional)	APIRouterForm
UploadFileFileHTTPException)CORSMiddleware)create_enginetext)
quote_plus)DB_HOSTDB_USERDB_PASSWORD
IMG_Q_PATHIMG_EXP_PATH	Q_DB_NAME zmysql+pymysql://:@/z?charset=utf8mb4
      i  )	pool_sizemax_overflowpool_recyclefile	base_pathsection_folderreturnc                    | sdS t           j                            ||          }t          j        |d           | j        }d|v r|                    d          d         nd}t          j                     d| }t           j                            ||          }t          |d          5 }t          j
        | j        |           ddd           n# 1 swxY w Y   |S )u.   이미지 저장 함수 (기존 로직 동일)NT)exist_ok.pngwb)ospathjoinmakedirsfilenamesplituuiduuid4openshutilcopyfileobjr   )	r   r   r   
target_dirr*   file_extnew_filenametarget_pathbuffers	            /app/app/routers/quiz_router.py
save_imager7      s    ti88JK
T****}H*-//x~~c""2&&uHjll//X//L',,z<88K	k4	 	  .F49f---. . . . . . . . . . . . . . . s   +CCCz/save_question.chapterquestion_numberq_textchoice_typechoice_one_textchoice_two_textchoice_three_textchoice_four_textchoice_one_imgchoice_two_imgchoice_three_imgchoice_four_imganswerexplanation_textexplanation_filec           
        K   	 d|  }d|  }d\  }}}}|dk    r	|}|}|}|}n`|rt          |t          |          }|	rt          |	t          |          }|
rt          |
t          |          }|rt          |t          |          }d }|rt          |t          |          }t                                          5 }t          d| d          }|                    |||d           t          d| d	          }|                    ||||||d
           t          d| d          }|                    |||d           t          d| d          }|                    ||||d           d d d            n# 1 swxY w Y   dd| ddS # t          $ r5}t          d|            t          dt          |                    d }~ww xY w)Nsection_section)r   r   r   r   r   zINSERT INTO Q_DB.z& (question_number, Q) VALUES (:qn, :q))qnqz(
                INSERT INTO Example_DB.zy 
                (question_number, one, two, three, four) 
                VALUES (:qn, :v1, :v2, :v3, :v4)
            )rJ   v1v2v3v4zINSERT INTO Correct_Answer_DB.z( (question_number, A) VALUES (:qn, :ans))rJ   anszINSERT INTO Solution_DB.z6 (question_number, text, img) VALUES (:qn, :txt, :img))rJ   txtimgsuccessz	Question z saved successfully.)statusmessagezError occurred: i  )status_codedetail)r7   BASE_IMG_Q_PATHBASE_IMG_EXP_PATHenginebeginr   execute	Exceptionprintr   str)r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   table_suffixfolder_suffixval_oneval_two	val_threeval_foursol_img_pathconnsql_qsql_exsql_anssql_soles                               r6   save_questionrm   3   s     &8<+'+++'++ 1?-)X&  %G%G)I'HHcNOUb)c)cwcNOUb)c)cwiZ8H/[h-i-if:oXe+f+f 	Z%&68I=YYL \\^^ 	it a\aaabbELLV D DEEE  (4    F
 LL%WIX" "    rLrrrssGLL"H"HIII zlzzz{{GLLAQZf"g"ghhh1	i 	i 	i 	i 	i 	i 	i 	i 	i 	i 	i 	i 	i 	i 	i4 $0aO0a0a0abbb < < <$$$%%% CFF;;;;	<s=   B3F 7B5E8,F 8E<<F ?E< F 
G0GG)#r&   r/   r,   typingr   fastapir   r   r   r   r   fastapi.middleware.corsr	   
sqlalchemyr
   r   urllib.parser   app.core.configr   r   r   r   r   r   routerpasswordDB_URLrZ   rX   rY   r_   r7   postrm        r6   <module>rz      s3   				         D D D D D D D D D D D D D D 2 2 2 2 2 2 * * * * * * * * # # # # # # ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^	 '29::k"""r	VG	V	Vh	V	V	V	V9	V	V	V 

	
 
 
   Z C  RU    (  499499$s))tCyy%)T$ZZ%)T$ZZ'+tDzz&*d4jj+/4::+/4::-1T$ZZ,0DJJ$s)) DII-1T$ZZ!J< J<J< J< 	J<
 J< c]J< c]J<  }J< smJ< Z(J< Z(J< z*J< j)J< J< J<  z*!J< J< J< J< J< J<ry   