o
    g                     @   s   d dl Z d dlmZ d dlmZmZ d dlmZ d dlm	Z	 d dl
Z
d dlmZmZ d dlmZ d dlZd dlmZ e Zej  ed	Zed
ZedZdd ZdZdedfddZdd ZdS )    N)translate_text_by_google)	DeveloperDeveloperTranslate)DevelopmentTranslate)Language)QCount)OpenAI)log_func
openai_keyopenai_pr_idopenai_org_idc                  C   s  t jjdd} t jjdd}tjjtddtddt| 	 d dB d d	 D ]&}z	|j
j|d
}W n   tjj|||j|jd}Y |d urQz|j}|j}|j}d}| D ]}d }	d }
d }|d urmt||jd}	|d urxt||jd}
|d ur|dkrg }z
tj|ddd}W n ty } ztd| W Y d }~nd }~ww g }|D ]}|d ur|t||jd qd|}z0z
tjj||d}W n
   t||d}Y |	|_|
|_||_|  tjj||dj|d W qZ ty } zd}tdtj d d|j d|j d| W Y d }~qZd }~ww |s%d|_|  W q* tyP } ztdtj d d|j d|j d| W Y d }~q*d }~ww q*d S )Nen)code
translates)tr_numF)
translated   )
tr_num__lt
   )language)	developerr   nameslug)to_language i,  )break_long_wordsdescription )r   r   )development__developerr   )r   T	error on %Y/%m/%d %H:%M:%Sz : in developer [:z] translate : ) r   objectsexcludegetr   annotater   filterr   countr   r   creater   r   r   r   r   textwrapwrap	Exceptionprintappendjoinsaver   updatedatetimenowstrftimeidr   )	languagesbase_languager   lr   r   r   errorr   t_namet_slugt_descriptionlinesedeslinedeveloper_t rB   //var/www/Entralon-Web-Backend/developer/cron.pytranslate_developer   sf   > 
$ 
::rD   a  Regarding the builder, real estate agency, or property below, that name is {name} and office in {city} city, for which I have provided some descriptions, create a paraphrased text in {language} language with html tags, only the relevant part and without html. If it contains headings, use h3 to h6 tags. Also, this information will be displayed on the Entralon website. Here is the name of the website: [https://entralon.com]
            Original Description: "{text}"
            englishzgpt-4o-minic           
   
   C   s   z)t td}|j| ||||d}|jjj|d|dgdd}d|jd jjd d	W S  t	yT }	 zt
d
tj d d| d|	 dd |	 d	W  Y d }	~	S d }	~	ww )N)api_key)textr   property_in_sitecityr   user)rolecontentgffffff?)modelmessagestemperatureFr   )r9   rL   	error_txtr    r!   ( : in developer description paraphrase [
] error : T)r	   r   formatchatcompletionsr)   choicesmessagerL   r,   r-   r2   r3   r4   )
rG   r   rH   rI   r   promptrM   clientrT   r>   rB   rB   rC   paraphrase_descriptionG   s    
$rZ   c                  C   s  t jjdddd d } | D ]}z|j}z|jjdd j}W n   d }Y |r|dddd}t||jj	|jj
  |jjj	|jj	}|d	 rsd
|_|d |_|  tdtj d d|j	 d|j d|d   n8|d r|d dddd}||_d
|_|  nd
|_|  tdtj d d|j	 d|j d W q ty } z(d
|_| |_|  tdtj d d|j	 d|j d| W Y d }~qd }~ww d S )NF)is_paraphrasedparaphrase_errorr   r   )language__codehtmlr   z```r9   TrP   r    r!   rQ   r"   rR   rL   z'] error : developer description is None)r   r#   r'   r   r   firstr   replacerZ   r   developmentsallr(   rI   r   r\   r9   r0   r-   r2   r3   r4   r5   r[   r,   )
developersrA   r   r?   r   r<   r>   rB   rB   rC   developer_descriptionW   s>   *
6
,:rd   )r2   data_scraper.utilsr   developer.modelsr   r   development.modelsr   main.modelsr   r*   django.db.modelsr   r   openair	   environ
main.utilsr
   Envenvread_envstrr   r   r   rD   PARAPHRASE_PROMPTrZ   rd   rB   rB   rB   rC   <module>   s&   



.