def __insertMapping(self, cursor, variable_id, lang_id, paragraph_seq, sentence_seq, text_id, is_curated): mapping_id = ciceron_lib.get_new_id(self.conn, "F_I18N_TEXT_MAPPINGS") query_newMapping = """ INSERT INTO CICERON.F_I18N_TEXT_MAPPINGS (id, variable_id, lang_id, paragraph_seq, sentence_seq, text_id, is_curated, is_init_translated) VALUES (%s, %s, %s, %s, %s, %s, %s, false) """ try: cursor.execute(query_newMapping, ( mapping_id, variable_id, lang_id, paragraph_seq, sentence_seq, text_id, is_curated, )) except Exception: traceback.print_exc() self.conn.rollback() return False, None return True, mapping_id
def __insertUnitText(self, cursor, text): md5_text = self.__getMD5(text) is_duplicated, duplicated_text_id = self.__getTextId(cursor, text) try: if is_duplicated == False: query_newText = """ INSERT INTO CICERON.D_I18N_TEXTS (id, text, md5_checksum, hit_count) VALUES (%s, %s, %s, 0) """ text_id = ciceron_lib.get_new_id(self.conn, "D_I18N_TEXTS") cursor.execute(query_newText, ( text_id, text, md5_text, )) except Exception: self.conn.rollback() traceback.print_exc() return False, None if is_duplicated == False: return True, text_id else: return True, duplicated_text_id
def write(self, source_lang, target_lang, original_text, google_result, bing_result, ciceron_result, papago_result, memo=None): cursor = self.conn.cursor() new_id = ciceron_lib.get_new_id(self.conn, 'F_TRANSLATOR_RESULT') query = """ INSERT INTO CICERON.F_TRANSLATOR_RESULT ( id , source_lang , target_lang , original_text , google_result , bing_result , ciceron_result , papago_result , memo , executed_at ) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, CURRENT_TIMESTAMP) """ try: cursor.execute(query, (new_id, source_lang, target_lang, original_text, google_result, bing_result, ciceron_result, papago_result, memo, ) ) except: traceback.print_exc() self.conn.rollback() return False, None self.conn.commit() return True, new_id
def _organizeUploadFileParameters(self, **kwargs): # Current parameters # id # , project_id # , resource_id # , preview_permission # , file_name # , file_binary params = kwargs params['id'] = ciceron_lib.get_new_id(self.conn, "F_PRETRANSLATED_RESULT_FILE") params['checksum'] = ciceron_lib.calculateChecksum( params['file_binary']) return params
def _organizeDownloadFileParameters(self, **kwargs): # Current parameters # id # , resource_id # , is_user # , email # , is_paid # , is_sent # , token # , is_downloaded # , feedback_score params = kwargs params['id'] = ciceron_lib.get_new_id( self.conn, "F_PRETRANSLATED_DOWNLOADED_USER") return params
def _organizeProjectParameters(self, **kwargs): # Current parameters # id # , original_resource_id # , original_lang_id # , format_id # , subject_id # , registered_timestamp=CURRENTD_TIMESTAMP # , cover_photo_filename -> Catch from upload request # , cover_photo_binary params = kwargs params['id'] = ciceron_lib.get_new_id(self.conn, "F_PRETRANSLATED_PROJECT") params['register_timestamp'] = datetime.utcnow() print(params['register_timestamp']) return params
def _organizeResourceParameters(self, **kwargs): # Current parameters # id # , project_id # , target_language_id # , theme # , description # , tone_id # , read_permission_level # , price # , register_timestamp=CURRENT_TIMESTAMP params = kwargs params['id'] = ciceron_lib.get_new_id(self.conn, "F_PRETRANSLATED_RESOURCES") params['register_timestamp'] = datetime.utcnow() print(params['register_timestamp']) return params
def addUserAsDownloader(self, resource_id, email): cursor = self.conn.cursor() query_checkCount = """ SELECT count(*) FROM CICERON.F_PRETRANSLATED_DOWNLOADED_USER WHERE resource_id = %s AND email = %s """ cursor.execute(query_checkCount, ( resource_id, email, )) cnt = cursor.fetchone()[0] if cnt > 0: # 같은 유저가 같은 번역물 다운로드 권한을 # 여러번 Call하는 상황을 막아야 한다. return 2 query_addUser = """ INSERT INTO CICERON.F_PRETRANSLATED_DOWNLOADED_USER (id, resource_id, is_user, email, is_paid, is_sent, is_downloaded, request_timestamp) VALUES (%s, %s, %s, %s, false, false, false, CURRENT_TIMESTAMP) """ user_id = ciceron_lib.get_user_id(self.conn, email) is_user = False if user_id == -1 else True new_downloader_id = ciceron_lib.get_new_id( self.conn, "F_PRETRANSLATED_DOWNLOADED_USER") try: cursor.execute(query_addUser, ( new_downloader_id, resource_id, is_user, email, )) except Exception: traceback.print_exc() self.conn.rollback() return 1 return 0
def _insertPaymentInfo(self, product, request_id, user_id, payment_platform, payment_id, amount): # Payment information update cursor = self.conn.cursor() payment_info_id = ciceron_lib.get_new_id(self.conn, "F_PAYMENT_INFO") query = """ INSERT INTO CICERON.F_PAYMENT_INFO (id, product, transaction_type, request_id, user_id, payed_platform, order_no, amount, transaction_time) VALUES (%s,%s,'income',%s,%s, %s,%s,%s,CURRENT_TIMESTAMP)""" cursor.execute(query, ( payment_info_id, product, request_id, user_id, payment_platform, payment_id, amount, ))
def __insertVariable(self, cursor, text): variable_id = ciceron_lib.get_new_id(self.conn, "D_I18N_VARIABLE_NAMES") query_newVariable = """ INSERT INTO CICERON.D_I18N_VARIABLE_NAMES (id, text) VALUES (%s, %s) """ try: cursor.execute(query_newVariable, ( variable_id, text, )) except Exception: traceback.print_exc() self.conn.rollback() return False, None return True, variable_id
def addUserToGroup(self, request_id, user_id): cursor = self.conn.cursor() seq = ciceron_lib.get_new_id(self.conn, "F_GROUP_REQUESTS_USERS") query = """ INSERT INTO CICERON.F_GROUP_REQUESTS_USERS (id, request_id, user_id, is_paid) VALUES (%s, %s, %s, false) """ try: cursor.execute(query, ( seq, request_id, user_id, )) return True except Exception: traceback.print_exc() self.conn.rollback() return False
def _importUnitSentence(self, original_language_id, target_language_id, subject_id, format_id, tone_id, paragraph_id, sentence_id, original_sentence, translated_sentence): cursor = self.conn.cursor() query = """ INSERT INTO CICERON.SENTENCES ( id, original_language_id, target_language_id, subject_id, format_id, tone_id, paragraph_id, sentence_id, original_sentence, translated_sentence ) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s) """ new_sentence_id = ciceron_lib.get_new_id(self.conn, "SENTENCES") try: cursor.execute(query, ( new_sentence_id, original_language_id, target_language_id, subject_id, format_id, tone_id, paragraph_id, sentence_id, original_sentence, translated_sentence, )) except: traceback.print_exc() self.conn.rollback() return False return True
def __insertValue(self, cursor, request_id, variable_id, source_text_mapping_id, target_text_mapping_id): value_id = ciceron_lib.get_new_id(self.conn, "F_I18N_VALUES") query_newValue = """ INSERT INTO CICERON.F_I18N_VALUES (id, request_id, variable_id, source_text_mapping_id, target_text_mapping_id) VALUES (%s, %s, %s, %s, %s) """ try: cursor.execute(query_newValue, ( value_id, request_id, variable_id, source_text_mapping_id, target_text_mapping_id, )) except Exception: traceback.print_exc() self.conn.rollback() return False, None return True, value_id