Ejemplo n.º 1
0
    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
Ejemplo n.º 2
0
    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
Ejemplo n.º 3
0
    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
Ejemplo n.º 4
0
    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
Ejemplo n.º 5
0
    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
Ejemplo n.º 6
0
    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
Ejemplo n.º 7
0
    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
Ejemplo n.º 8
0
    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
Ejemplo n.º 9
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,
        ))
Ejemplo n.º 10
0
    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
Ejemplo n.º 11
0
    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
Ejemplo n.º 12
0
    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
Ejemplo n.º 13
0
    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