-
Notifications
You must be signed in to change notification settings - Fork 88
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #316 from crowdin/download-targets
Add new function - download targets and pseudolocalization
- Loading branch information
Showing
149 changed files
with
4,001 additions
and
2,664 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,149 +1,4 @@ | ||
package com.crowdin.cli.client; | ||
|
||
import com.crowdin.cli.commands.functionality.PropertiesBeanUtils; | ||
import com.crowdin.cli.utils.Utils; | ||
import com.crowdin.client.core.http.impl.json.JacksonJsonTransformer; | ||
import com.crowdin.client.core.model.ClientConfig; | ||
import com.crowdin.client.core.model.Credentials; | ||
import com.crowdin.client.core.model.PatchRequest; | ||
import com.crowdin.client.glossaries.model.AddGlossaryRequest; | ||
import com.crowdin.client.glossaries.model.ExportGlossaryRequest; | ||
import com.crowdin.client.glossaries.model.Glossary; | ||
import com.crowdin.client.glossaries.model.GlossaryExportStatus; | ||
import com.crowdin.client.glossaries.model.GlossaryImportStatus; | ||
import com.crowdin.client.glossaries.model.ImportGlossaryRequest; | ||
import com.crowdin.client.glossaries.model.Term; | ||
import com.crowdin.client.sourcefiles.model.AddBranchRequest; | ||
import com.crowdin.client.sourcefiles.model.AddDirectoryRequest; | ||
import com.crowdin.client.sourcefiles.model.AddFileRequest; | ||
import com.crowdin.client.sourcefiles.model.Branch; | ||
import com.crowdin.client.sourcefiles.model.Directory; | ||
import com.crowdin.client.sourcefiles.model.UpdateFileRequest; | ||
import com.crowdin.client.sourcestrings.model.AddSourceStringRequest; | ||
import com.crowdin.client.sourcestrings.model.SourceString; | ||
import com.crowdin.client.translationmemory.model.AddTranslationMemoryRequest; | ||
import com.crowdin.client.translationmemory.model.TranslationMemory; | ||
import com.crowdin.client.translationmemory.model.TranslationMemoryExportRequest; | ||
import com.crowdin.client.translationmemory.model.TranslationMemoryExportStatus; | ||
import com.crowdin.client.translationmemory.model.TranslationMemoryImportRequest; | ||
import com.crowdin.client.translationmemory.model.TranslationMemoryImportStatus; | ||
import com.crowdin.client.translations.model.BuildProjectTranslationRequest; | ||
import com.crowdin.client.translations.model.ProjectBuild; | ||
import com.crowdin.client.translations.model.UploadTranslationsRequest; | ||
import com.crowdin.client.translationstatus.model.LanguageProgress; | ||
|
||
import java.io.InputStream; | ||
import java.net.Authenticator; | ||
import java.net.PasswordAuthentication; | ||
import java.net.URL; | ||
import java.util.List; | ||
import java.util.Optional; | ||
|
||
public interface Client { | ||
|
||
CrowdinProjectFull downloadFullProject(); | ||
|
||
CrowdinProject downloadProjectWithLanguages(); | ||
|
||
CrowdinProjectInfo downloadProjectInfo(); | ||
|
||
Branch addBranch(AddBranchRequest request); | ||
|
||
Long uploadStorage(String fileName, InputStream content); | ||
|
||
Directory addDirectory(AddDirectoryRequest request) throws ResponseException; | ||
|
||
void updateSource(Long sourceId, UpdateFileRequest request); | ||
|
||
void addSource(AddFileRequest request); | ||
|
||
void uploadTranslations(String languageId, UploadTranslationsRequest request); | ||
|
||
ProjectBuild startBuildingTranslation(BuildProjectTranslationRequest request); | ||
|
||
ProjectBuild checkBuildingTranslation(Long buildId); | ||
|
||
URL downloadBuild(Long buildId); | ||
|
||
List<LanguageProgress> getProjectProgress(String languageId); | ||
|
||
SourceString addSourceString(AddSourceStringRequest request); | ||
|
||
List<SourceString> listSourceString(Long fileId, String filter); | ||
|
||
void deleteSourceString(Long id); | ||
|
||
SourceString editSourceString(Long sourceId, List<PatchRequest> requests); | ||
|
||
List<Glossary> listGlossaries(); | ||
|
||
Optional<Glossary> getGlossary(Long glossaryId); | ||
|
||
Glossary addGlossary(AddGlossaryRequest request); | ||
|
||
GlossaryImportStatus importGlossary(Long glossaryId, ImportGlossaryRequest request); | ||
|
||
List<Term> listTerms(Long glossaryId); | ||
|
||
GlossaryExportStatus startExportingGlossary(Long glossaryId, ExportGlossaryRequest request); | ||
|
||
GlossaryExportStatus checkExportingGlossary(Long glossaryId, String exportId); | ||
|
||
URL downloadGlossary(Long glossaryId, String exportId); | ||
|
||
List<TranslationMemory> listTms(); | ||
|
||
Optional<TranslationMemory> getTm(Long tmId); | ||
|
||
TranslationMemory addTm(AddTranslationMemoryRequest request); | ||
|
||
TranslationMemoryImportStatus importTm(Long tmId, TranslationMemoryImportRequest request); | ||
|
||
TranslationMemoryExportStatus startExportingTm(Long tmId, TranslationMemoryExportRequest request); | ||
|
||
TranslationMemoryExportStatus checkExportingTm(Long tmId, String exportId); | ||
|
||
URL downloadTm(Long tmId, String exportId); | ||
|
||
static Client getDefault(String apiToken, String baseUrl, long projectId) { | ||
boolean isTesting = PropertiesBeanUtils.isUrlForTesting(baseUrl); | ||
String organization = PropertiesBeanUtils.getOrganization(baseUrl); | ||
Credentials credentials = (isTesting) | ||
? new Credentials(apiToken, organization, baseUrl) | ||
: new Credentials(apiToken, organization); | ||
ClientConfig clientConfig = ClientConfig.builder() | ||
.jsonTransformer(new JacksonJsonTransformer()) | ||
.userAgent(Utils.buildUserAgent()) | ||
.build(); | ||
Utils.proxyHost() | ||
.map(pair -> new ClientConfig.Host(pair.getKey(), pair.getValue())) | ||
.ifPresent(proxy -> { | ||
clientConfig.setProxy(proxy); | ||
|
||
System.setProperty("https.proxyHost", proxy.getHost()); | ||
System.setProperty("https.proxyPort", String.valueOf(proxy.getPort())); | ||
}); | ||
Utils.proxyCredentials() | ||
.map(pair -> new ClientConfig.UsernamePasswordCredentials(pair.getKey(), pair.getValue())) | ||
.ifPresent(proxyCreds -> { | ||
clientConfig.setProxyCreds(proxyCreds); | ||
if (proxyCreds.getUsername() != null && proxyCreds.getPassword() != null) { | ||
Authenticator.setDefault( | ||
new Authenticator() { | ||
@Override | ||
public PasswordAuthentication getPasswordAuthentication() { | ||
if (getRequestorType() == RequestorType.PROXY) { | ||
return new PasswordAuthentication(proxyCreds.getUsername(), proxyCreds.getPassword().toCharArray()); | ||
} else { | ||
return null; | ||
} | ||
} | ||
} | ||
); | ||
System.setProperty("jdk.http.auth.tunneling.disabledSchemes", ""); | ||
} | ||
}); | ||
com.crowdin.client.Client client = new com.crowdin.client.Client(credentials, clientConfig); | ||
return new CrowdinClient(client, projectId); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
package com.crowdin.cli.client; | ||
|
||
import com.crowdin.client.glossaries.model.AddGlossaryRequest; | ||
import com.crowdin.client.glossaries.model.ExportGlossaryRequest; | ||
import com.crowdin.client.glossaries.model.Glossary; | ||
import com.crowdin.client.glossaries.model.GlossaryExportStatus; | ||
import com.crowdin.client.glossaries.model.GlossaryImportStatus; | ||
import com.crowdin.client.glossaries.model.ImportGlossaryRequest; | ||
import com.crowdin.client.glossaries.model.Term; | ||
|
||
import java.io.InputStream; | ||
import java.net.URL; | ||
import java.util.List; | ||
import java.util.Optional; | ||
|
||
public interface ClientGlossary extends Client { | ||
|
||
List<Glossary> listGlossaries(); | ||
|
||
Optional<Glossary> getGlossary(Long glossaryId); | ||
|
||
Glossary addGlossary(AddGlossaryRequest request); | ||
|
||
GlossaryImportStatus importGlossary(Long glossaryId, ImportGlossaryRequest request); | ||
|
||
GlossaryExportStatus startExportingGlossary(Long glossaryId, ExportGlossaryRequest request); | ||
|
||
GlossaryExportStatus checkExportingGlossary(Long glossaryId, String exportId); | ||
|
||
URL downloadGlossary(Long glossaryId, String exportId); | ||
|
||
List<Term> listTerms(Long glossaryId); | ||
|
||
Long uploadStorage(String fileName, InputStream content); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
package com.crowdin.cli.client; | ||
|
||
import com.crowdin.client.translationmemory.model.AddTranslationMemoryRequest; | ||
import com.crowdin.client.translationmemory.model.TranslationMemory; | ||
import com.crowdin.client.translationmemory.model.TranslationMemoryExportRequest; | ||
import com.crowdin.client.translationmemory.model.TranslationMemoryExportStatus; | ||
import com.crowdin.client.translationmemory.model.TranslationMemoryImportRequest; | ||
import com.crowdin.client.translationmemory.model.TranslationMemoryImportStatus; | ||
|
||
import java.io.InputStream; | ||
import java.net.URL; | ||
import java.util.List; | ||
import java.util.Optional; | ||
|
||
public interface ClientTm extends Client { | ||
|
||
List<TranslationMemory> listTms(); | ||
|
||
Optional<TranslationMemory> getTm(Long tmId); | ||
|
||
TranslationMemory addTm(AddTranslationMemoryRequest request); | ||
|
||
TranslationMemoryImportStatus importTm(Long tmId, TranslationMemoryImportRequest request); | ||
|
||
TranslationMemoryExportStatus startExportingTm(Long tmId, TranslationMemoryExportRequest request); | ||
|
||
TranslationMemoryExportStatus checkExportingTm(Long tmId, String exportId); | ||
|
||
URL downloadTm(Long tmId, String exportId); | ||
|
||
Long uploadStorage(String fileName, InputStream content); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,78 @@ | ||
package com.crowdin.cli.client; | ||
|
||
import com.crowdin.cli.commands.functionality.PropertiesBeanUtils; | ||
import com.crowdin.cli.utils.Utils; | ||
import com.crowdin.client.core.http.impl.json.JacksonJsonTransformer; | ||
import com.crowdin.client.core.model.ClientConfig; | ||
import com.crowdin.client.core.model.Credentials; | ||
|
||
import java.net.Authenticator; | ||
import java.net.PasswordAuthentication; | ||
|
||
public final class Clients { | ||
|
||
private Clients() {} | ||
|
||
public static NoClient noClient() { | ||
return new NoClient() { | ||
|
||
}; | ||
} | ||
|
||
public static ClientGlossary getClientGlossary(String apiToken, String baseUrl) { | ||
com.crowdin.client.Client client = prepareClient(apiToken, baseUrl); | ||
return new CrowdinClientGlossary(client); | ||
} | ||
|
||
public static ClientTm getClientTm(String apiToken, String baseUrl) { | ||
com.crowdin.client.Client client = prepareClient(apiToken, baseUrl); | ||
return new CrowdinClientTm(client); | ||
} | ||
|
||
// mb divide args to move token and url to constructor? | ||
public static ProjectClient getProjectClient(String apiToken, String baseUrl, long projectId) { | ||
com.crowdin.client.Client client = prepareClient(apiToken, baseUrl); | ||
return new CrowdinProjectClient(client, projectId); | ||
} | ||
|
||
public static com.crowdin.client.Client prepareClient(String apiToken, String baseUrl) { | ||
boolean isTesting = PropertiesBeanUtils.isUrlForTesting(baseUrl); | ||
String organization = PropertiesBeanUtils.getOrganization(baseUrl); | ||
Credentials credentials = (isTesting) | ||
? new Credentials(apiToken, organization, baseUrl) | ||
: new Credentials(apiToken, organization); | ||
ClientConfig clientConfig = ClientConfig.builder() | ||
.jsonTransformer(new JacksonJsonTransformer()) | ||
.userAgent(Utils.buildUserAgent()) | ||
.build(); | ||
Utils.proxyHost() | ||
.map(pair -> new ClientConfig.Host(pair.getKey(), pair.getValue())) | ||
.ifPresent(proxy -> { | ||
clientConfig.setProxy(proxy); | ||
|
||
System.setProperty("https.proxyHost", proxy.getHost()); | ||
System.setProperty("https.proxyPort", String.valueOf(proxy.getPort())); | ||
}); | ||
Utils.proxyCredentials() | ||
.map(pair -> new ClientConfig.UsernamePasswordCredentials(pair.getKey(), pair.getValue())) | ||
.ifPresent(proxyCreds -> { | ||
clientConfig.setProxyCreds(proxyCreds); | ||
if (proxyCreds.getUsername() != null && proxyCreds.getPassword() != null) { | ||
Authenticator.setDefault( | ||
new Authenticator() { | ||
@Override | ||
public PasswordAuthentication getPasswordAuthentication() { | ||
if (getRequestorType() == RequestorType.PROXY) { | ||
return new PasswordAuthentication(proxyCreds.getUsername(), proxyCreds.getPassword().toCharArray()); | ||
} else { | ||
return null; | ||
} | ||
} | ||
} | ||
); | ||
System.setProperty("jdk.http.auth.tunneling.disabledSchemes", ""); | ||
} | ||
}); | ||
return new com.crowdin.client.Client(credentials, clientConfig); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.