
    i                        d dl Z d dlm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  e j$                  d      Z e j$                  d	d
      Z eddd      Zej-                  dd      dededefd       Zy)    N)Celery)ListDictOptional)CourseCreator)	S3Service)Courses)SessionAPP_URLS3_DIRSyllabuild_Coursestaskszredis://localhost:6379/0)brokerbackendT)bind	acks_latetopic	course_idreturnc                    t        j                         }	 | j                  dddi       |j                  t              j                  t        j                  |k(        j                         }|sd| d|j                          S | j                  dddi       t         d| }	 t        |	      }| j                  ddd
i       |j                         }| j                  dddi       |j                  j                  dd      }t               }	|	j                  t          d| | d|d         }
|
d   }||_        d|_        |d   |_        ||_        |d   |_        |j-                          |j/                  |       t1        d|        	 |j                          | j                  dddi       y# t2        $ rO}d|_        |j-                          |j5                          dt7        |       cY d }~|j                          S d }~ww xY w# t2        $ r8}|j5                          dt7        |       cY d }~|j                          S d }~ww xY w# |j                          w xY w)NPROGRESSprogress
   )statemetazCourse with ID z not found.   z/download-imscc?course_id=)course<   P    _/z.mdmarkdown_contentfile_urlReadycourse_descriptionu,   ✅ Course materials generated and saved to Failedz!Error generating course content: zError processing Course: d   zCourse processed successfully.)dbaseSessionLocalupdate_statequeryr	   filterr   firstcloser   r   generate_course_materialsr   replacer   upload_objectr   course_imscc_urlstatusr#   markdown_urlcontent_descriptioncommitrefreshprint	Exceptionrollbackstr)selfr   r   dbcourse_datadownload_linkcourse_creatorresultbase_filename
s3_service	s3_resultcourse_pathes                8/var/www/html/content_weaver/syllabuild_celery_worker.pyprocess_course_celeryrI      s\    $$&B3
*b1ABhhw'..w/@/@I/MNTTV$YK{;\ 	
Y 	
*b1AB")#=i[I!	@ +"N Jj"5EF#==?FJj"5EF (--55c3?M"J"00F81YK1H]O[^J_aghza{|I#J/K+8K(!(K+12D+EK('2K$.45I.JK+IIKJJ{#@NO 	
Jj#->?+!  	@!)KIIKKKM6s1vh?? 	
	@  4
*3q6(33 	
4
 	
sa   AH  H 'C+F9 9	H4H6H7H HH 	II:I;I II I*)osceleryr   typingr   r   r   dependencies.CourseCreatorr   dependencies.awsutilsr   db_config.databasedatabaser)   db_config.modelsr	   sqlalchemy.ormr
   getenvr   r   
celery_apptaskr<   rI        rH   <module>rX      s    	  ' ' 4 + " $ "
"))I
	81	2%&
 dd+<,<, <, 		<, ,<,rW   