Pootle::Client
Client to talk with Pootle API v1 nicely
See. https://pootle.readthedocs.io/en/stable-2.5.1/api/index.html for more information about the API resources/data_structures this Client returns.
Eg. https://pootle.readthedocs.io/en/stable-2.5.1/api/api_project.html#get-a-project maps to Pootle::Resource::Project locally.
REQUIRES
Perl 5.20 or newer with support for subroutine signatures
Caches
See Pootle::Cache, for how the simple caching system works to spare the Pootle-Server from abuse
Logger
See Pootle::Logger, for how to change Pootle::Client chattiness
Synopsis
my $papi = Pootle::Client->new({
baseUrl => 'http://translate.example.com',
credentials => 'username:password' || 'credentials.txt'}
);
my $languages = $papi->languages();
my $trnsProjs = $papi->searchTranslationProjects(
$languages,
Pootle::Filters->new({fullname => qr/^Project name/})
);
new($params)
Instantiates a new Pootle::Client
$params HASHRef of parameters {
baseUrl => 'http://translate.pootle.url',
credentials => 'usename:password' ||
'credentials.file.containing.credentials.txt',
cacheFile => 'pootle-client.cache',
}
@returns Pootle::Client
ACCESSING THE POOTLE API
This Client transparently handles authentication based on the credentials supplied. Use the following methods to make API requests.
- language
-
@PARAM1 String, API endpoint to get the resource, eg. /api/v1/languages/124/ @RETURNS L<Pootle::Resource::Language>
- languages
-
@RETURNS ARRAYRef of L<Pootle::Resource::Language>, all languages in the Pootle database @CACHED Transiently
- findLanguages
-
Uses the API to find all languages starting with the given country code
@PARAM1 L<Pootle::Filters> @RETURNS ARRAYRef of L<Pootle::Resource::Language>, all languages starting with the given code. @CACHED Persistently
- translationProject
-
@PARAM1 String, API endpoint to get the resource, eg. /api/v1/translation-projects/124/ @RETURNS L<Pootle::Resource::TranslationProject>
- translationProjects
-
@UNIMPLEMENTED
This endpoint is unimplemented in the Pootle-Client. Maybe some day it becomes enabled. If it does, this should work out-of-box.
It might be better to use searchTranslationProjects() instead, since this API call can be really invasive to the Pootle-server. Really depends on how many translation projects you are after.
@RETURNS ARRAYRef of L<Pootle::Resource::TranslationProject>, all translation projects in the Pootle database @CACHED Transiently @THROWS L<Pootle::Exception::HTTP::MethodNotAllowed>
- findTranslationProjects
-
@UNIMPLEMENTED
This endpoint is unimplemented in the Pootle-Client. Maybe some day it becomes enabled. If it does, this should work out-of-box.
Uses the API to find all translation projects matching the given search expressions
@PARAM1 L<Pootle::Filters>, Used to select the desired objects @RETURNS ARRAYRef of L<Pootle::Resource::TranslationProject>. All matched translation projects. @CACHED Persistently @THROWS L<Pootle::Exception::HTTP::MethodNotAllowed>
- searchTranslationProjects
-
@PARAM1 L<Pootle::Filters>, Filters to pick desired languages or ARRAYRef of L<Pootle::Resource::Language> @PARAM2 L<Pootle::Filters>, Filters to pick desired projects or ARRAYRef of L<Pootle::Resource::Project> @RETURNS ARRAYRef of L<Pootle::Resource::TranslationProject>, matching the given languages and projects @CACHED Persistently
- store
-
@PARAM1 String, API endpoint to get the resource, eg. /api/v1/stores/77/ @RETURNS L<Pootle::Resource::Store>
- searchStores
-
@PARAM1 L<Pootle::Filters>, Filters to pick desired languages or ARRAYRef of L<Pootle::Resource::Language> @PARAM2 L<Pootle::Filters>, Filters to pick desired projects or ARRAYRef of L<Pootle::Resource::Project> @RETURNS ARRAYRef of L<Pootle::Resource::Store>, matching the given languages and projects
- project
-
@PARAM1 String, API endpoint to get the project, eg. /api/v1/projects/124/ @RETURNS L<Pootle::Resource::Project>
- projects
-
@RETURNS ARRAYRef of L<Pootle::Resource::Project>, all projects in the Pootle database @CACHED Transiently
- findProjects
-
Uses the API to find all projects matching the given search expressions
@PARAM1 L<Pootle::Filters>, matching criteria for needed objects @RETURNS ARRAYRef of L<Pootle::Resource::Project>. All matched projects. @CACHED Persistently
- unit
-
@PARAM1 String, API endpoint to get the resource, eg. /api/v1/units/77/ @RETURNS L<Pootle::Resource::Unit>
HELPERS
- flushCaches
-
Flushes all caches
ACCESSORS
- a
-
@RETURNS L<Pootle::Agent>
- c
-
@RETURNS L<Pootle::Cache>
5 POD Errors
The following errors were encountered while parsing the POD:
- Around line 105:
'=item' outside of any '=over'
- Around line 409:
You forgot a '=back' before '=head1'
- Around line 411:
'=item' outside of any '=over'
- Around line 421:
You forgot a '=back' before '=head1'
- Around line 423:
'=item' outside of any '=over'
=over without closing =back