Пример #1
0
    def take_action(self, parsed_args):
        token = self.app.client.configuration.token

        if parsed_args.output_dir:
            self.app.configuration.temp_folder_path = parsed_args.output_dir

        if parsed_args.output_dir:
            if not os.path.exists(parsed_args.output_dir):
                try:
                    os.makedirs(parsed_args.output_dir)
                except OSError as exc:
                    if exc.errno != errno.EEXIST:
                        raise

        response = requests.get(utils._url(
            self, 'v1', '/transMemories/downloadExport/' +
            parsed_args.async_req_id + '?token=' + token),
                                json={'format': parsed_args.format})
        filename = parsed_args.filename
        if parsed_args.output_dir:
            path = os.path.join(parsed_args.output_dir,
                                filename).replace('%2F', '/')
        else:
            path = filename
        try:
            with open(path, "wb") as f:
                f.write(response.content)
        except:
            with open(path, "w") as f:
                f.write(response.content)

        header = (("format"), ("path"))
        values = ((parsed_args.format), (path))
        return ((header), (values))
Пример #2
0
    def take_action(self, parsed_args):

        token = self.app.client.configuration.token
        data = []

        _jobs = []
        for i in parsed_args.job_uid:
            _jobs.append({'uid': i})

        file = parsed_args.filename
        _filename = file.split("/")[-1]
        _file = open(file, 'rb')
        _memsource = {
            "jobs": _jobs,
            "preTranslate": parsed_args.pre_translate,
            "callbackUrl": parsed_args.callback_url
        }

        response = requests.post(utils._url(
            self, 'v1', '/projects/' + parsed_args.project_uid +
            '/jobs/source' + '?token=' + token),
                                 headers={
                                     'Content-Type':
                                     'application/octet-stream',
                                     'Content-Disposition':
                                     'filename=' + _filename,
                                     'Memsource': json.dumps(_memsource)
                                 },
                                 data=_file)

        column_headers = ('async_request_id', 'action', 'date_created', 'uid',
                          'filename', 'status', 'target_lang',
                          'workflow_level', 'workflow_step')
        utils.validate_response(response, 200)
        output = json.loads(response.text)
        data += [
            (output['asyncRequest']['id'], output['asyncRequest']['action'],
             output['asyncRequest']['dateCreated'], output['jobs'][i]['uid'],
             output['jobs'][i]['filename'], output['jobs'][i]['status'],
             output['jobs'][i]['targetLang'],
             output['jobs'][i]['workflowLevel'],
             output['jobs'][i]['workflowStep'])
            for i in range(0, len(output['jobs']))
        ]

        return ((column_headers), ((s) for s in data))
Пример #3
0
    def take_action(self, parsed_args):

        token = self.app.client.configuration.token
        data = []
        column_headers = ('id', 'status', 'date_created', 'filename',
                          'target_langs')

        for file in parsed_args.filenames:
            _filename = file.split("/")[-1]
            _file = open(file, 'rb')
            response = requests.post(
                utils._url(
                    self, 'v1', '/projects/' + parsed_args.project_uid +
                    '/jobs' + '?token=' + token),
                json={
                    'targetLangs': parsed_args.target_langs,
                    'useProjectFileImportSettings': True
                },
                headers={
                    'Content-Type':
                    'application/octet-stream',
                    'Content-Disposition':
                    'filename=' + _filename,
                    'Memsource':
                    '{\'targetLangs\': ' + str(parsed_args.target_langs) +
                    ',\'useProjectFileImportSettings\': \'true\'}'
                },
                data=_file)
            utils.validate_response(response, 201)
            response = json.loads(response.text)
            data += [
                (response['jobs'][i]['uid'], response['jobs'][i]['status'],
                 json.dumps(response['jobs'][i]['dateCreated'],
                            default=str).replace('"', ''),
                 response['jobs'][i]['filename'],
                 response['jobs'][i]['targetLang'])
                for i in range(0, len(response['jobs']))
            ]

        return ((column_headers), ((s) for s in data))
Пример #4
0
    def take_action(self, parsed_args):
        token = self.app.client.configuration.token
        response = requests.post(utils._url(
            self, 'v1', '/transMemories/' + parsed_args.trans_memory_id +
            '/wildCardSearch' + '?token=' + token),
                                 json={
                                     'query': parsed_args.query,
                                     'targetLangs': parsed_args.target_langs,
                                     'sourceLang': parsed_args.source_lang,
                                 })
        utils.validate_response(response, 200)

        output = json.loads(response.content.decode('utf-8'))['searchResults']
        column_headers = [
            'source_lang', 'source_text', 'target_lang', 'target_text',
            'project_id', 'project'
        ]
        data = []
        for i in range(0, len(output)):
            try:
                project = output[i]['translations'][0]['project']['name']
            except:
                project = None
            if project is None:
                data += [
                    (output[i]['source']['lang'], output[i]['source']['text'],
                     output[i]['translations'][0]['lang'],
                     output[i]['translations'][0]['text'], "None", "None")
                ]
            else:
                data += [
                    (output[i]['source']['lang'], output[i]['source']['text'],
                     output[i]['translations'][0]['lang'],
                     output[i]['translations'][0]['text'],
                     output[i]['translations'][0]['project']['id'],
                     output[i]['translations'][0]['project']['name'])
                ]

        return ((column_headers), (data))
Пример #5
0
    def take_action(self, parsed_args):

        token = self.app.client.configuration.token
        data = []

        column_headers = ('filename', 'created_segments_count',
                          'updated_cegments_count', 'skipped_segments_count',
                          'accepted_segments_count', 'empty')

        for file in parsed_args.filenames:
            _filename = file.split("/")[-1]
            _file = open(file, 'rb')
            response = requests.post(
                utils._url(
                    self, 'v1',
                    '/transMemories/' + parsed_args.trans_memory_id +
                    '/import' + '?token=' + token),
                json={
                    'strictLangMatching':
                    parsed_args.strict_lang_matching,
                    'stripNativeCodes':
                    parsed_args.strip_native_codes,
                    'excludeNotConfirmedSegments':
                    parsed_args.exclude_not_confirmed_segments
                },
                headers={
                    'Content-Type': 'application/octet-stream',
                    'Content-Disposition': 'filename*=UTF-8\'\'' + _filename
                },
                data=_file)
            utils.validate_response(response, 200)
            response = json.loads(response.text)
            data += [(file, response['createdSegmentsCount'],
                      response['updatedSegmentsCount'],
                      response['skippedSegmentsCount'],
                      response['acceptedSegmentsCount'], response['empty'])]

        return ((column_headers), ((s) for s in data))
Пример #6
0
    def take_action(self, parsed_args):
        token = self.app.client.configuration.token

        response = requests.post(utils._url(
            self, 'v2', '/transMemories/' + parsed_args.trans_memory_id +
            '/export' + '?token=' + token),
                                 json={'format': parsed_args.format})
        utils.validate_response(response, 200)

        data = []
        column_headers = [
            'id', 'action', 'created_by', 'date_created', 'project', 'parent',
            'async_export'
        ]
        output = json.loads(response.content.decode('utf-8'))
        data += [
            (output['asyncRequest']['id'], output['asyncRequest']['action'],
             output['asyncRequest']['createdBy'],
             output['asyncRequest']['dateCreated'],
             output['asyncRequest']['project'],
             output['asyncRequest']['parent'], output['asyncExport'])
        ]

        return ((column_headers), (data))