
    Ιh                        d dl Z d dlZd dlZd dlmZmZmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZ d dlmZ d dlmZ d d	lmZ  ed
e      Ze j.                  j1                   e j2                         d      Ze j.                  j1                   e j2                         d      Ze j.                  j1                   e j2                         d      Zej;                  ddg      ed               Zy)    N)	Blueprintrequestjsonify)Image)	QuizShare)QnA)MCQ)mcq_main)qa_main)jwt_requiredqnazpublic/images/output_files/zutils/qa_generator.pyzutils/mcq_generator.pyz/get-qnaPOST)methodsc                  	   t        t        dd       } t        j                  rt        j                  nt        j                  }|j                  d      }|j                  d      }|j                  d      }|sH|st        ddd      dfS t        j                  |	      j                         }|st        dd
d      dfS t        j                  ||       j                         }|st        ddd      dfS t        j                  |      j                         }|st        ddd      dfS |j                  }|st        ddd      dfS |dvrt        ddd      dfS t        j                  j                  t              st        j                   t        d       g }g }d}	|dk(  rNd}	t        j                  j#                  t        d|j$                  j&                   d|j&                   d      }
|j(                  st+        ||
       t-        |
d      5 }t        j.                  |      }d d d        t1        dt3        |      d      D ]l  }|dz   t3        |      k  s||   j5                         }||dz      j5                         }|j7                  ||d       t9        ||      j;                          n |j=                  |
||       n|j(                  }|j>                  }|j                  }
nd }	t        j                  j#                  t        d!|j$                  j&                   d|j&                   d      }
|j@                  sWtC        ||
       t-        |
d      5 }t        j.                  |      }d d d        t1        dt3        |      d"      D ]  }|d#z   t3        |      k  s||   }||dz      }||dz      }||d#z      }|j7                  ||||d$       tE        |tF              r-|jI                  d%      D cg c]  }|j5                          c}ng }tK        ||t3        |      dkD  r|d   ndt3        |      dkD  r|d   ndt3        |      dkD  r|d   ndt3        |      d#kD  r|d#   nd||&      j;                           |j=                  |
||'       n$|j@                  }|jL                  }|j                  }
t        d|	|
||d(      d)fS # 1 sw Y   xY w# 1 sw Y   oxY wc c}w )*Nuser_idoutput_filetypeshared_quiz_idFz%No file path provided in the request.)statusmessagei  )r   zInvalid json file.)quiz_idr   z(Quiz has not been shared with this user.)idz8Invalid shared quiz ID, no associated output file found.z/Request type should be provided in the request.)r   mcqz8Invalid type parameter. Only "qna" or "mcq" are allowed.T)exist_ok r   zQ&A generation successful.QA__z.jsonrr         )questionanswer)qna_output_fileextracted_qnaother_extracted_qnazMCQ generation successful.MCQ_      )r!   OptionszCorrect AnswerExplanation
)r   r!   option_aoption_boption_coption_dcorrect_answerexplanation)mcq_output_fileextracted_mcqother_extracted_mcq)r   r   r   outputarray_output   )'getattrr   is_jsonjsonformgetr   r   objectsfirstr   r   ospathexistsOUTPUT_FOLDERmakedirsjoinr   r   r$   r   openloadrangelenstripappendr   saveupdater%   r3   r
   
isinstancestrsplitr	   r4   )r   data	json_filereq_typer   get_single_imageisSharedquestion_detailsdecoded_outputmsgjsonFilePathfiqaoptscorrectexplo	opts_lists                       &/var/www/html/eduruby.in/routes/qna.pyget_qnarc      s    gy$/G"??7<<D'IxxHXX./N e8_`acfff ==Y?EEGe8LMNPSSS$$"
 %'	 	
 e8bcdfiii ==N;AACe8rstvyyy$00	%4efgilll~%%4nopruuu77>>-(
MD1N
C 5*ww||MS9I9Q9Q9T9T8UUVWgWjWjVkkp3qr--I|,lC( .A!%1. 1c.115 5q53~..&q)//1A&q1u-335A$++a,HI1-2245 ## ,,$4 $  .;;N/CC+77L +ww||MT:J:R:R:U:U9VVWXhXkXkWllq3rs--Y-lC( .A!%1. 1c.115 q53~..&q)A)!a%0D,QU3G)!a%0D$++$%#'*1'+	-  JTTXZ]I^DJJt4D Eq EdfI$-!"14Y!1C114Y!1C114Y!1C114Y!1C1'.$(	 df36 ## ,,$4 $  .;;N/CC+77L# (  	 O. .<. ." !Fs   S&S)S6S&)S3)r?   r:   
subprocessflaskr   r   r   models.imager   models.quiz_sharer   
models.qnar   
models.mcqr	   utils.mcq_generatorr
   utils.qa_generatorr   utils.jwt_servicer   __name__qna_bpr@   rD   getcwdrB   
QNA_SCRIPT
MCQ_SCRIPTrouterc        rb   <module>ru      s    	   - -  '   ( & *	5(	# YRYY[*GHWW\\)"))+'>?
WW\\)"))+'?@
 j6(+  ,rt   