Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/phochste/www-zotero
A Perl interface to the Zotero API
https://github.com/phochste/www-zotero
Last synced: 3 months ago
JSON representation
A Perl interface to the Zotero API
- Host: GitHub
- URL: https://github.com/phochste/www-zotero
- Owner: phochste
- Created: 2015-09-24T12:44:07.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2017-05-30T13:42:43.000Z (over 7 years ago)
- Last Synced: 2024-10-15T13:21:30.832Z (3 months ago)
- Language: Perl
- Size: 16.6 KB
- Stars: 3
- Watchers: 3
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: Changes
Awesome Lists containing this project
README
# NAME
WWW::Zotero - Perl interface to the Zotero API
# SYNOPSIS
use WWW::Zotero;
my $client = WWW::Zotero->new;
my $client = WWW::Zotero->new(key => 'API-KEY');my $data = $client->itemTypes();
for my $item (@$data) {
print "%s\n" , $item->itemType;
}my $data = $client->itemFields();
my $data = $client->itemTypeFields('book');
my $data = $client->itemTypeCreatorTypes('book');
my $data = $client->creatorFields();
my $data = $client->itemTemplate('book');
my $key = $client->keyPermissions();
my $groups = $client->userGroups($userID);my $data = $client->listItems(user => '475425', limit => 5);
my $data = $client->listItems(user => '475425', format => 'atom');
my $generator = $client->listItems(user => '475425', generator => 1);while (my $item = $generator->()) {
print "%s\n" , $item->{title};
}my $data = $client->listItemsTop(user => '475425', limit => 5);
my $data = $client->listItemsTrash(user => '475425');
my $data = $client->getItem(user => '475425', itemKey => 'TTJFTW87');
my $data = $client->getItemTags(user => '475425', itemKey => 'X42A7DEE');
my $data = $client->listTags(user => '475425');
my $data = $client->listTags(user => '475425', tag => 'Biography');
my $data = $client->listCollections(user => '475425');
my $data = $client->listCollectionsTop(user => '475425');
my $data = $client->getCollection(user => '475425', collectionKey => 'A5G9W6AX');
my $data = $client->listSubCollections(user => '475425', collectionKey => 'QM6T3KHX');
my $data = $client->listCollectionItems(user => '475425', collectionKey => 'QM6T3KHX');
my $data = $client->listCollectionItemsTop(user => '475425', collectionKey => 'QM6T3KHX');
my $data = $client->listCollectionItemsTags(user => '475425', collectionKey => 'QM6T3KHX');
my $data = $client->listSearches(user => '475425');# CONFIGURATION
- baseurl
The base URL for all API requests. Default 'https://api.zotero.org'.
- version
The API version. Default '3'.
- key
The API key which can be requested via https://api.zotero.org.
- modified\_since
Include a UNIX time to be used in a If-Modified-Since header to allow for caching
of results by your application.# METHODS
## username2userID
Find the userID based on a username
## itemTypes()
Get all item types. Returns a Perl array.
## itemTypes()
Get all item fields. Returns a Perl array.
## itemTypes($type)
Get all valid fields for an item type. Returns a Perl array.
## itemTypeCreatorTypes($type)
Get valid creator types for an item type. Returns a Perl array.
## creatorFields()
Get localized creator fields. Returns a Perl array.
## itemTemplate($type)
Get a template for a new item. Returns a Perl hash.
## keyPermissions($key)
Return the userID and premissions for the given API key.
## userGroups($userID)
Return an array of the set of groups the current API key as access to.
## listItems(user => $userID, %options)
## listItems(group => $groupID, %options)
List all items for a user or ar group. Optionally provide a list of options:
sort - dateAdded, dateModified, title, creator, type, date, publisher,
publicationTitle, journalAbbreviation, language, accessDate,
libraryCatalog, callNumber, rights, addedBy, numItems (default dateModified)
direction - asc, desc
limit - integer 1-100* (default 25)
start - integer
format - perl, atom, bib, json, keys, versions , bibtex , bookmarks,
coins, csljson, mods, refer, rdf_bibliontology , rdf_dc ,
rdf_zotero, ris , tei , wikipedia (default perl)when format => 'json'
include - bib, data
when format => 'atom'
content - bib, html, json
when format => 'bib' or content => 'bib'
style - chicago-note-bibliography, apa, ... (see: https://www.zotero.org/styles/)
itemKey - A comma-separated list of item keys. Valid only for item requests. Up to
50 items can be specified in a single request.
itemType - Item type search
q - quick search
qmode - titleCreatorYear, everything
since - integer
tag - Tag searchSee: https://www.zotero.org/support/dev/web\_api/v3/basics#user\_and\_group\_library\_urls
for the search syntax.Returns a Perl HASH containing the total number of hits plus the results:
{
total => '132',
results =>
}## listItems(user => $userID | group => $groupID, generator => 1 , %options)
Same as listItems but this return a generator for every record found. Use this
method to sequentially read the complete resultset. E.g.my $generator = $self->listItems(user => '231231', generator);
while (my $record = $generator->()) {
printf "%s\n" , $record->{title};
}The format is implicit 'perl' in this case.
## listItemsTop(user => $userID | group => $groupID, %options)
The set of all top-level items in the library, excluding trashed items.
See 'listItems(...)' functions above for all the execution options.
## listItemsTrash(user => $userID | group => $groupID, %options)
The set of items in the trash.
See 'listItems(...)' functions above for all the execution options.
## getItem(itemKey => ... , user => $userID | group => $groupID, %options)
A specific item in the library.
See 'listItems(...)' functions above for all the execution options.
Returns the item if found.
## getItemChildren(itemKey => ... , user => $userID | group => $groupID, %options)
The set of all child items under a specific item.
See 'listItems(...)' functions above for all the execution options.
Returns the children if found.
## getItemTags(itemKey => ... , user => $userID | group => $groupID, %options)
The set of all tags associated with a specific item.
See 'listItems(...)' functions above for all the execution options.
Returns the tags if found.
## listTags(user => $userID | group => $groupID, \[tag => $name\] , %options)
The set of tags (i.e., of all types) matching a specific name.
See 'listItems(...)' functions above for all the execution options.
Returns the list of tags.
## listCollections(user => $userID | group => $groupID , %options)
The set of all collections in the library.
See 'listItems(...)' functions above for all the execution options.
Returns the list of collections.
## listCollectionsTop(user => $userID | group => $groupID , %options)
The set of all top-level collections in the library.
See 'listItems(...)' functions above for all the execution options.
Returns the list of collections.
## getCollection(collectionKey => ... , user => $userID | group => $groupID, %options)
A specific item in the library.
See 'listItems(...)' functions above for all the execution options.
Returns the collection if found.
## listSubCollections(collectionKey => ...., user => $userID | group => $groupID , %options)
The set of subcollections within a specific collection in the library.
See 'listItems(...)' functions above for all the execution options.
Returns the list of (sub)collections.
## listCollectionItems(collectionKey => ...., user => $userID | group => $groupID , %options)
The set of all items within a specific collection in the library.
See 'listItems(...)' functions above for all the execution options.
Returns the list of items.
## listCollectionItemsTop(collectionKey => ...., user => $userID | group => $groupID , %options)
The set of top-level items within a specific collection in the library.
See 'listItems(...)' functions above for all the execution options.
Returns the list of items.
## listCollectionItemsTags(collectionKey => ...., user => $userID | group => $groupID , %options)
The set of tags within a specific collection in the library.
See 'listItems(...)' functions above for all the execution options.
Returns the list of items.
## listSearches(user => $userID | group => $groupID , %options)
The set of all saved searches in the library.
See 'listItems(...)' functions above for all the execution options.
Returns the list of saved searches.
## getSearch(searchKey => ... , user => $userID | group => $groupID, %options)
A specific saved search in the library.
See 'listItems(...)' functions above for all the execution options.
Returns the saved search if found.
# AUTHOR
Patrick Hochstenbach, ``
# CONTRIBUTORS
François Rappaz
# LICENSE AND COPYRIGHT
Copyright 2015 Patrick Hochstenbach
This program is free software; you can redistribute it and/or modify it
under the terms of either: the GNU General Public License as published
by the Free Software Foundation; or the Artistic License.See http://dev.perl.org/licenses/ for more information.