23 new Flickr API calls supported (72.1% of API):
int flickcurl_groups_pools_add(flickcurl* fc, const char* photo_id, const char* group_id);
flickcurl_group** flickcurl_groups_pools_getGroups(flickcurl* fc, int page, int per_page);
flickcurl_photo** flickcurl_groups_pools_getPhotos(flickcurl* fc, const char* group_id, const char* tags, const char* user_id, const char* extras, int per_page, int page);
int flickcurl_groups_pools_remove(flickcurl* fc, const char* photo_id, const char* group_id);
flickcurl_photo** flickcurl_people_getPublicPhotos(flickcurl* fc, const char* user_id, const char* extras, int per_page, int page);
flickcurl_photo** flickcurl_photos_getContactsPublicPhotos(flickcurl* fc, const char* user_id, int count, int just_friends, int single_photo, int include_self, const char* extras);
flickcurl_exif** flickcurl_photos_getExif(flickcurl* fc, const char* photo_id, const char* secret);
flickcurl_person** flickcurl_photos_getFavorites(flickcurl* fc, const char* photo_id, int page, int per_page);
flickcurl_photo** flickcurl_photos_getNotInSet(flickcurl* fc, int min_upload_date, int max_upload_date, const char* min_taken_date, const char* max_taken_date, int privacy_filter, const char* extras, int per_page, int page);
flickcurl_photo** flickcurl_photos_getRecent(flickcurl* fc, const char* extras, int per_page, int page);
flickcurl_photo** flickcurl_photos_getUntagged(flickcurl* fc, int min_upload_date, int max_upload_date, const char* min_taken_date, const char* max_taken_date, int privacy_filter, const char* extras, int per_page, int page);
flickcurl_photo** flickcurl_photos_getWithGeoData(flickcurl* fc, int min_upload_date, int max_upload_date, const char* min_taken_date, const char* max_taken_date, int privacy_filter, const char* extras, int per_page, int page);
flickcurl_photo** flickcurl_photos_getWithoutGeoData(flickcurl* fc, int min_upload_date, int max_upload_date, const char* min_taken_date, const char* max_taken_date, int privacy_filter, const char* extras, int per_page, int page);
flickcurl_photo** flickcurl_photos_recentlyUpdated(flickcurl* fc, int min_date, const char* extras, int per_page, int page);
flickcurl_location* flickcurl_photos_geo_getLocation(flickcurl* fc, const char* photo_id);
flickcurl_perms* flickcurl_photos_geo_getPerms(flickcurl* fc, const char* photo_id);
int flickcurl_photos_geo_removeLocation(flickcurl* fc, const char* photo_id);
int flickcurl_photos_geo_setLocation(flickcurl* fc, const char* photo_id, flickcurl_location* location);
int flickcurl_photos_geo_setPerms(flickcurl* fc, const char* photo_id, flickcurl_perms* perms);
int flickcurl_photos_licenses_setLicense(flickcurl* fc, const char* photo_id, int license_id);
char* flickcurl_photos_notes_add(flickcurl* fc, const char* photo_id, int note_x, int note_y, int note_w, int note_h, const char* note_text);
int flickcurl_photos_notes_delete(flickcurl* fc, const char* note_id);
int flickcurl_photos_notes_edit(flickcurl* fc, const char* note_id, int note_x, int note_y, int note_w, int note_h, const char* note_text);
flickcurl
utility updated to add all new functions.
Added flickcurl_exif
for flickcurl_photos_getExif
Added flickcurl_group
for the groups functions
flickcurl_groups_pools_add
,
flickcurl_groups_pools_getGroups
,
flickcurl_groups_pools_getPhotos
and
flickcurl_groups_pools_remove
Added photos field PERSON_FIELD_favedate
as returned by
flickcurl_photos_getFavorites
Added destructor functions to free perons lists, exif, exifs list, group and groups list.
void flickcurl_free_persons(flickcurl_person** persons); void flickcurl_free_exif(flickcurl_exif *exif); void flickcurl_free_exifs(flickcurl_exif **exifs_object); void flickcurl_free_group(flickcurl_group *group); void flickcurl_free_groups(flickcurl_group **groups_object);
10 new Flickr API calls supported (50% of API):
flickcurl_contact** flickcurl_contacts_getList(flickcurl* fc, const char* filter, int page, int per_page);
flickcurl_contact** flickcurl_contacts_getPublicList(flickcurl* fc, const char* user_id, int page, int per_page);
flickcurl_photo** flickcurl_photos_getContactsPhotos(flickcurl* fc, int contact_count, int just_friends, int single_photo, int include_self, const char* extras);
flickcurl_perms* flickcurl_photos_getPerms(flickcurl* fc, const char* photo_id);
flickcurl_photo** flickcurl_photos_search(flickcurl* fc, flickcurl_search_params* params);
int flickcurl_photos_setContentType(flickcurl* fc, const char* photo_id, int content_type);
int flickcurl_photos_setDates(flickcurl* fc, const char* photo_id, int date_posted, int date_taken, int date_taken_granularity);
int flickcurl_photos_setMeta(flickcurl* fc, const char* photo_id, const char* title, const char* description);
int flickcurl_photos_setPerms(flickcurl* fc, const char* photo_id, flickcurl_perms* perms);
int flickcurl_photos_setSafetyLevel(flickcurl* fc, const char* photo_id, int safety_level, int hidden);
flickcurl
utility updated to add all new functions.
Added flickcurl_search_params
structure
for flickcurl_photos_search()
.
Added flickcurl_perms
for the
flickcurl_photos_getPerms()
and
flickcurl_photos_setPerms()
functions.
Added flickcurl_contact
structure for
flickcurl_contacts_getList()
and
flickcurl_contacts_getPublicList()
functions.
Added flickcurl_upload_params
structure and added new
upload function flickcurl_photos_upload_params()
to use
it, deprecating flickcurl_photos_upload()
with the long
list of parameters.
Added destructor functions to free a photos list, perms contacts and upload status.
void flickcurl_free_photos(flickcurl_photo** photos); void flickcurl_free_perms(flickcurl_perms *perms); void flickcurl_free_contact(flickcurl_contact *contact_object); void flickcurl_free_contacts(flickcurl_contact **contacts_object); void flickcurl_free_upload_status(flickcurl_upload_status* status);
Deprecated wrongly named function
flickcurl_free_upload_status()
, replaced by
void flickcurl_upload_status_free(flickcurl_upload_status* status);
13 new Flickr API calls supported (40.8% of API):
char* flickcurl_photos_comments_addComment(flickcurl* fc, const char* photo_id, const char* comment_text);
int flickcurl_photos_comments_deleteComment(flickcurl* fc, const char* comment_id);
int flickcurl_photos_comments_editComment(flickcurl* fc, const char* comment_id, const char* comment_text);
flickcurl_comment** flickcurl_photos_comments_getList(flickcurl* fc, const char* photo_id);
char* flickcurl_photosets_comments_addComment(flickcurl* fc, const char* photoset_id, const char* comment_text);
int flickcurl_photosets_comments_deleteComment(flickcurl* fc, const char* comment_id);
int flickcurl_photosets_comments_editComment(flickcurl* fc, const char* comment_id, const char* comment_text);
flickcurl_comment** flickcurl_photosets_comments_getList(flickcurl* fc, const char* photoset_id);
char** flickcurl_reflection_getMethods(flickcurl* fc);
flickcurl_method* flickcurl_reflection_getMethodInfo(flickcurl* fc, const char* name);
flickcurl
utility updated to add all new functions.
Added all uploading and replacing of photos APIs.
and flickcurl_upload_status
structure for upload
results.
Added all photo comments APIs and flickcurl_comment
structure for comments.
Added support for uploading with POST
and form-data.
Yay libcurl.
Added codegen
utility to aid writing skeleton API
code.
Added all reflection APIs and flickcurl_method
and
flickcurl_arg
structures for method descriptions.
Added photo location fields: neighborhood, locality, region and country. They may not be returned in the API just yet, they were announced and then removed.
Renamed the "Flickr to RDF app" to be called flickrdf
since I used Triplr
for something else as it was such a good name.
17 new Flickr API calls supported (28.2% of API):
char* flickcurl_auth_checkToken(flickcurl* fc, const char* token);
char* flickcurl_auth_getFrob(flickcurl* fc);
char* flickcurl_auth_getToken(flickcurl* fc, const char* frob);
int flickcurl_photos_addTags(flickcurl* fc, const char* photo_id, const char* tags);
int flickcurl_photos_delete(flickcurl* fc, const char* photo_id);
int flickcurl_photos_removeTag(flickcurl* fc, const char* tag_id);
int flickcurl_photos_setTags(flickcurl* fc, const char* photo_id, const char* tags);
flickcurl_tag** flickcurl_tags_getHotList(flickcurl* fc, const char* period, int tag_count);
flickcurl_tag** flickcurl_tags_getListPhoto(flickcurl* fc, const char* photo_id);
flickcurl_tag** flickcurl_tags_getListUser(flickcurl* fc, const char* user_id);
flickcurl_tag** flickcurl_tags_getListUserPopular(flickcurl* fc, const char* user_id, int pop_count);
flickcurl_tag** flickcurl_tags_getListUserRaw(flickcurl* fc, const char* tag);
flickcurl_tag** flickcurl_tags_getRelated(flickcurl* fc, const char* tag);
char* flickcurl_urls_getGroup(flickcurl* fc, const char* group_id);
char* flickcurl_urls_getUserPhotos(flickcurl* fc, const char* user_id);
char* flickcurl_urls_getUserProfile(flickcurl* fc, const char* user_id);
char* flickcurl_urls_lookupGroup(flickcurl* fc, const char* url);
Renamed enum flickcurl_photo_field
to
flickcurl_photo_field_type
and
added flickcurl_photo_field
as the photo field
structure.
Added authorname and count fields to
the flickcurl_tag
structure to handle tag methods that
return counts.
Added enum flickcurl_person_field_type
value
PERSON_FIELD_photos_views
with value integer, not in API
docs.
flickcurl_person_field
structure for fields of
flickcurl_person
.
Added flickcurl*
method to indicate that an API call
must be signed, even if no authentication token has been given. This
is mostly for internals of authentication.
void flickcurl_set_sign(flickcurl *fc)
Added flickcurl*
method to do a write request
with POST
. Not presently used.
void flickcurl_set_write(flickcurl *fc, int is_write);
Added flickcurl methods to set data to send in a request:
/* send binary data */ void flickcurl_set_data(flickcurl *fc, void* data, size_t data_length); /* send XML serialized from the document DOM */ void flickcurl_set_xml_data(flickcurl *fc, xmlDocPtr doc);
Added flickcurl_init()
and
flickcurl_finish()
to do once-per-process initializing
and cleanup.
Added more help info to flickrdf
.
Added a -d
DELAY option to
flickrdf
and flickcurl
to set delay between
requests using new flickcurl_set_request_delay()
.
Added 2 new Flickr API calls (12% of API):
char* flickcurl_people_findByEmail(flickcurl* fc, const char* email);
char* flickcurl_people_findByUsername(flickcurl* fc, const char* username);
Added configure
development/debugging options:
--enable-capture
to capture web service responses into XML files
--enable-offline
to use the XML files to return results when offline
Split large api.c into auth-api.c, people-api.c, photos-api.c, photos-licenses-api.c and urls-api.c to match the API sections.
Added method to set the minimum delay between web service requests:
void flickcurl_set_request_delay(flickcurl *fc, long delay_msec);
The default is set to 1000ms = 1 request/second.
Moved flickcurl
utility code into flickcurl.c
Added API calls returning contexts as a
struct flickcurl_context*
array
and of type flickcurl_context_type
Added 4 Flickr API calls (10% of API):
flickcurl_context** flickcurl_groups_pools_getContext(flickcurl* fc, const char* photo_id, const char* group_id);
flickcurl_context** flickcurl_photos_getAllContexts(flickcurl* fc, const char* photo_id);
flickcurl_context** flickcurl_photos_getContext(flickcurl* fc, const char* photo_id);
flickcurl_context** flickcurl_photosets_getContext(flickcurl* fc, const char* photo_id, const char* photoset_id);
Added struct flickcurl_context
utility functions:
const char* flickcurl_get_context_type_field_label(flickcurl_context_type type); void flickcurl_free_context(flickcurl_context *context); void flickcurl_free_contexts(flickcurl_context** contexts);
Added new flickcurl
utility commands for the new APIs:
groups.pools.getContext photos.getAllContexts photos.getContext,
photosets.getContext
Added API call flickcurl.licenses.getInfo:
struct flickcurl_license
flickcurl_license** flickcurl_photos_licenses_getInfo(flickcurl *fc);
and command licenses.getInfo in flickcurl
utility
Added helper to look up one license by ID:
flickcurl_license* flickcurl_photos_licenses_getInfo_by_id(flickcurl *fc, int id);
Flickrdf updated to use the above to emit URIs instead of integers
for dc:rights
Added API call flickr.people.getInfo:
enum flickcurl_person_field, struct flickcurl_person
const char* flickcurl_get_person_field_label(flickcurl_person_field field); flickcurl_person* flickcurl_people_getInfo(flickcurl* fc, const char* user_id); void flickcurl_free_person(flickcurl_person *person);
and command person.getInfo in flickcurl
utility
6% of API
Added optional support for using Raptor for more accurate and prettier serializing triples in flickrdf
Released to the world!
3% of API
Added flickrdf
utility.
3% of API
Renamed all symbols to be flickcurl_
*
Added flickcurl_photo_as_source_uri()
to get the
image file URLs for a photo ID.
Configuration file for the utilities to record the authentication
is now ~/.flickcurl.conf
Packaging and licensing
3% of API
Refactored to have separate flickcurl*
object
API calls flickr.test.echo,
flickr.auth.getFullToken and
flickr.photos.getInfo with functions
flickcurl_test_echo
,
flickcurl_auth_getFullToken
,
flickcurl_photos_getInfo
Test program has commands table and help, authentication
3% of API
First version
0% of API
Copyright (C) 2007 Dave Beckett