Flickcurl News
[1]Dave Beckett 2008-01-12 Flickcurl 1.0 Now supports the entire Flickr API including the new Places API: searching, looking up by ID or URI, getting place IDs from photo descriptions. 12 new Flickr API calls supported (100.0% of API): * flickcurl_activity_userComments flickcurl_activity** flickcurl_activity_userComments(flickcurl* fc, int per_page, int page); * flickcurl_activity_userPhotos flickcurl_activity** flickcurl_activity_userPhotos(flickcurl* fc, const char* timeframe, int per_page, int page); * flickcurl_blogs_getList flickcurl_blog** flickcurl_blogs_getList(flickcurl* fc); * flickcurl_blogs_postPhoto int flickcurl_blogs_postPhoto(flickcurl* fc, const char* blog_id, const char* photo_id, const char* title, const char* description, const char* blog_password); * flickcurl_favorites_add int flickcurl_favorites_add(flickcurl* fc, const char* photo_id); * flickcurl_favorites_getList flickcurl_photo** flickcurl_favorites_getList(flickcurl* fc, const char* user_id, const char* extras, int per_page, int page); * flickcurl_favorites_getPublicList flickcurl_photo** flickcurl_favorites_getPublicList(flickcurl* fc, const char* user_id, const char* extras, int per_page, int page); * flickcurl_favorites_remove int flickcurl_favorites_remove(flickcurl* fc, const char* photo_id); * flickcurl_places_resolvePlaceId flickcurl_place* flickcurl_places_resolvePlaceId(flickcurl* fc, const char* place_id); * flickcurl_places_resolvePlaceURL flickcurl_place* flickcurl_places_resolvePlaceURL(flickcurl* fc, const char* url); * flickcurl_test_login char* flickcurl_test_login(flickcurl* fc); * flickcurl_test_null int flickcurl_test_null(flickcurl* fc); flickcurl utility updated to add all new functions. Added flickcurl_activity and flickcurl_activity_event for photo/comment activity Added flickcurl_blog for photo blogs. Added flickcurl_place for places. Added place_id to search parameters Added placeid fields to the flickcurl_photo_field_type enum and as new flickcurl_photo fields. Added destructor functions to free photosets, tickets, user status information and categories void flickcurl_free_activities(flickcurl_activity** activities); void flickcurl_free_blogs(flickcurl_blog **blogs_object); void flickcurl_free_place(flickcurl_place* place); 2007-12-22 Flickcurl 0.13 20 new Flickr API calls supported (91.3% of API): * flickcurl_groups_browse flickcurl_category* flickcurl_groups_browse(flickcurl* fc, int cat_id); * flickcurl_groups_getInfo flickcurl_group* flickcurl_groups_getInfo(flickcurl* fc, const char* group_id, const char* lang); * flickcurl_groups_search flickcurl_group** flickcurl_groups_search(flickcurl* fc, const char* text, int per_page, int page); * flickcurl_interestingness_getList flickcurl_photo** flickcurl_interestingness_getList(flickcurl* fc, const char* date, const char* extras, int per_page, int page); * flickcurl_people_getPublicGroups flickcurl_group** flickcurl_people_getPublicGroups(flickcurl* fc, const char* user_id); * flickcurl_people_getUploadStatus flickcurl_user_upload_status* flickcurl_people_getUploadStatus(flickcurl* fc); * flickcurl_photos_getCounts int** flickcurl_photos_getCounts(flickcurl* fc, const char** dates_array, const char** taken_dates_array); * flickcurl_photos_getSizes flickcurl_size** flickcurl_photos_getSizes(flickcurl* fc, const char* photo_id); * flickcurl_photos_transform_rotate int flickcurl_photos_transform_rotate(flickcurl* fc, const char* photo_id, int degrees); * flickcurl_photos_upload_checkTickets flickcurl_ticket** flickcurl_photos_upload_checkTickets(flickcurl* fc, const char** tickets_ids); * flickcurl_photosets_addPhoto int flickcurl_photosets_addPhoto(flickcurl* fc, const char* photoset_id, const char* photo_id); * flickcurl_photosets_create char* flickcurl_photosets_create(flickcurl* fc, const char* title, const char* description, const char* primary_photo_id, char** photoset_url_p); * flickcurl_photosets_delete int flickcurl_photosets_delete(flickcurl* fc, const char* photoset_id); * flickcurl_photosets_editMeta int flickcurl_photosets_editMeta(flickcurl* fc, const char* photoset_id, const char* title, const char* description); * flickcurl_photosets_editPhotos int flickcurl_photosets_editPhotos(flickcurl* fc, const char* photoset_id, const char* primary_photo_id, const char** photo_ids_array); * flickcurl_photosets_getInfo flickcurl_photoset* flickcurl_photosets_getInfo(flickcurl* fc, const char* photoset_id); * flickcurl_photosets_getList flickcurl_photoset** flickcurl_photosets_getList(flickcurl* fc, const char* user_id); * flickcurl_photosets_getPhotos flickcurl_photo** flickcurl_photosets_getPhotos(flickcurl* fc, const char* photoset_id, const char* extras, int privacy_filter, int per_page, int page); * flickcurl_photosets_orderSets int flickcurl_photosets_orderSets(flickcurl* fc, const char** photoset_ids_array); * flickcurl_photosets_removePhoto int flickcurl_photosets_removePhoto(flickcurl* fc, const char* photoset_id, const char* photo_id); flickcurl utility updated to add all new functions. Added flickcurl_category for categories of groups. Added flickcurl_photoset for photosets. Added flickcurl_size for returning image sizes. Added flickcurl_ticket for returning asynchronous upload tickets. Added flickcurl_user_upload_status for returning details on a user's upload status. Added destructor functions to free photosets, tickets, user status information and categories void flickcurl_free_photoset(flickcurl_photoset *photoset); void flickcurl_free_photosets(flickcurl_photoset **photosets_object); void flickcurl_free_ticket(flickcurl_ticket *ticket); void flickcurl_free_tickets(flickcurl_ticket **tickets_object); void flickcurl_free_user_upload_status(flickcurl_user_upload_status *u); void flickcurl_free_category(flickcurl_category *category); void flickcurl_free_categories(flickcurl_category **categories_object); Added utility functions: char* flickcurl_array_join(const char *array[], char delim); char** flickcurl_array_split(const char *str, char delim); void flickcurl_array_free(char *array[]); 2007-08-11 Flickcurl 0.12 23 new Flickr API calls supported (72.1% of API): * flickcurl_groups_pools_add int flickcurl_groups_pools_add(flickcurl* fc, const char* photo_id, const char* group_id); * flickcurl_groups_pools_getGroups flickcurl_group** flickcurl_groups_pools_getGroups(flickcurl* fc, int page, int per_page); * flickcurl_groups_pools_getPhotos 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); * flickcurl_groups_pools_remove int flickcurl_groups_pools_remove(flickcurl* fc, const char* photo_id, const char* group_id); * flickcurl_people_getPublicPhotos flickcurl_photo** flickcurl_people_getPublicPhotos(flickcurl* fc, const char* user_id, const char* extras, int per_page, int page); * flickcurl_photos_getContactsPublicPhotos 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_photos_getExif flickcurl_exif** flickcurl_photos_getExif(flickcurl* fc, const char* photo_id, const char* secret); * flickcurl_photos_getFavorites flickcurl_person** flickcurl_photos_getFavorites(flickcurl* fc, const char* photo_id, int page, int per_page); * flickcurl_photos_getNotInSet 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_photos_getRecent flickcurl_photo** flickcurl_photos_getRecent(flickcurl* fc, const char* extras, int per_page, int page); * flickcurl_photos_getUntagged 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_photos_getWithGeoData 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_photos_getWithoutGeoData 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_photos_recentlyUpdated flickcurl_photo** flickcurl_photos_recentlyUpdated(flickcurl* fc, int min_date, const char* extras, int per_page, int page); * flickcurl_photos_geo_getLocation flickcurl_location* flickcurl_photos_geo_getLocation(flickcurl* fc, const char* photo_id); * flickcurl_photos_geo_getPerms flickcurl_perms* flickcurl_photos_geo_getPerms(flickcurl* fc, const char* photo_id); * flickcurl_photos_geo_removeLocation int flickcurl_photos_geo_removeLocation(flickcurl* fc, const char* photo_id); * flickcurl_photos_geo_setLocation int flickcurl_photos_geo_setLocation(flickcurl* fc, const char* photo_id, flickcurl_location* location); * flickcurl_photos_geo_setPerms int flickcurl_photos_geo_setPerms(flickcurl* fc, const char* photo_id, flickcurl_perms* perms); * flickcurl_photos_licenses_setLicense int flickcurl_photos_licenses_setLicense(flickcurl* fc, const char* photo_id, int license_id); * flickcurl_photos_notes_add 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); * flickcurl_photos_notes_delete int flickcurl_photos_notes_delete(flickcurl* fc, const char* note_id); * flickcurl_photos_notes_edit 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 persons 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); 2007-08-03 Flickcurl 0.11 10 new Flickr API calls supported (50% of API): * flickr.contacts.getList: flickcurl_contact** flickcurl_contacts_getList(flickcurl* fc, const char* filter, int page, int per_page); * flickr.contacts.getPublicList: flickcurl_contact** flickcurl_contacts_getPublicList(flickcurl* fc, const char* user_id, int page, int per_page); * flickr.photos.getContactsPhotos: flickcurl_photo** flickcurl_photos_getContactsPhotos(flickcurl* fc, int contact_count, int just_friends, int single_photo, int include_self, const char* extras); * flickr.photos.getPerms: flickcurl_perms* flickcurl_photos_getPerms(flickcurl* fc, const char* photo_id); * flickr.photos.search: flickcurl_photo** flickcurl_photos_search(flickcurl* fc, flickcurl_search_params* params); * flickr.photos.setContentType: int flickcurl_photos_setContentType(flickcurl* fc, const char* photo_id, int content_type); * flickr.photos.setDates: int flickcurl_photos_setDates(flickcurl* fc, const char* photo_id, int date_posted, int date_taken, int date_taken_granularity); * flickr.photos.setMeta: int flickcurl_photos_setMeta(flickcurl* fc, const char* photo_id, const char* title, const char* description); * flickr.photos.setPerms: int flickcurl_photos_setPerms(flickcurl* fc, const char* photo_id, flickcurl_perms* perms); * flickr.photos.setSafetyLevel: 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); 2007-04-16 Flickcurl 0.10 13 new Flickr API calls supported (40.8% of API): * flickcurl_photos_comments_addComment: Add comment to a photo as the currently authenticated user. char* flickcurl_photos_comments_addComment(flickcurl* fc, const char* photo_id, const char* comment_text); * flickcurl_photos_comments_deleteComment: Delete a comment as the currently authenticated user. int flickcurl_photos_comments_deleteComment(flickcurl* fc, const char* comment_id); * flickcurl_photos_comments_editComment: Edit the text of a comment as the currently authenticated user. int flickcurl_photos_comments_editComment(flickcurl* fc, const char* comment_id, const char* comment_text); * flickcurl_photos_comments_getList: Returns the comments for a photo. flickcurl_comment** flickcurl_photos_comments_getList(flickcurl* fc, const char* photo_id); * flickcurl_photosets_comments_addComment: Add a comment to a photoset. char* flickcurl_photosets_comments_addComment(flickcurl* fc, const char* photoset_id, const char* comment_text); * flickcurl_photosets_comments_deleteComment: Delete a photoset comment as the currently authenticated user. int flickcurl_photosets_comments_deleteComment(flickcurl* fc, const char* comment_id); * flickcurl_photosets_comments_editComment: Edit the text of a comment as the currently authenticated user. int flickcurl_photosets_comments_editComment(flickcurl* fc, const char* comment_id, const char* comment_text); * flickcurl_photosets_comments_getList: Returns the comments for a photoset. flickcurl_comment** flickcurl_photosets_comments_getList(flickcurl* fc, const char* photoset_id); * flickcurl_reflection_getMethods: Get the list of available API method names. char** flickcurl_reflection_getMethods(flickcurl* fc); * flickcurl_reflection_getMethodInfo: Get information about an API method. 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 [2]Triplr for something else as it was such a good name. 2007-02-25 Flickcurl 0.9 17 new Flickr API calls supported (28.2% of API): * flickr.auth.checkToken: Get the credentials attached to an authentication TOKEN. char* flickcurl_auth_checkToken(flickcurl* fc, const char* token); * flickr.auth.getFrob: Get a frob to be used during authentication. char* flickcurl_auth_getFrob(flickcurl* fc); * flickr.auth.getToken: Get the auth token for the FROB, if one has been attached. char* flickcurl_auth_getToken(flickcurl* fc, const char* frob); * flickr.photos.addTags: Add TAGS to a PHOTO-ID. int flickcurl_photos_addTags(flickcurl* fc, const char* photo_id, const char* tags); * flickr.photos.delete: Delete a PHOTO-ID. int flickcurl_photos_delete(flickcurl* fc, const char* photo_id); * flickr.photos.removeTag: Remove a tag TAG-ID from a photo. int flickcurl_photos_removeTag(flickcurl* fc, const char* tag_id); * flick.photos.setTags: Set the tags for a PHOTO-ID to TAGS. int flickcurl_photos_setTags(flickcurl* fc, const char* photo_id, const char* tags); * flickr.tags.getHotList: Get the list of hot tags for the given PERIOD (day, week). flickcurl_tag** flickcurl_tags_getHotList(flickcurl* fc, const char* period, int tag_count); * flickr.tags.getListPhoto: Get the tag list for a PHOTO-ID. flickcurl_tag** flickcurl_tags_getListPhoto(flickcurl* fc, const char* photo_id); * flickr.tags.getListUser: Get the tag list for a USER-ID (or current user). flickcurl_tag** flickcurl_tags_getListUser(flickcurl* fc, const char* user_id); * flickr.tags.getListUserPopular: Get the popular tag list for a USER-ID (or current user). flickcurl_tag** flickcurl_tags_getListUserPopular(flickcurl* fc, const char* user_id, int pop_count); * flickr.tags.getListUserRaw: Get the raw versions of a TAG (or all tags) for the current user. flickcurl_tag** flickcurl_tags_getListUserRaw(flickcurl* fc, const char* tag); * flickr.tags.getRelated: Get a list of tags 'related' to TAG based on clustered usage analysis. flickcurl_tag** flickcurl_tags_getRelated(flickcurl* fc, const char* tag); * flickr.urls.getGroup: Get the url of the group page for GROUP-ID. char* flickcurl_urls_getGroup(flickcurl* fc, const char* group_id); * flickr.urls.getUserPhotos: Get the url of the photo page for USER-ID. char* flickcurl_urls_getUserPhotos(flickcurl* fc, const char* user_id); * flickr.urls.getUserProfile: Get the url of the profile page for USER-ID. char* flickcurl_urls_getUserProfile(flickcurl* fc, const char* user_id); * flickr.urls.lookupGroup: Get a group NSID from the URL to a group's page or photo pool. 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); 2007-02-20 Flickcurl 0.8 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): * flickr.people.findByEmail: char* flickcurl_people_findByEmail(flickcurl* fc, const char* email); * flickr.people.findByUsername: 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 2007-02-18 Flickcurl 0.7 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): * flickr.groups.pool.getContext: flickcurl_context** flickcurl_groups_pools_getContext(flickcurl* fc, const char* photo_id, const char* group_id); * flickr.photos.getAllContexts: flickcurl_context** flickcurl_photos_getAllContexts(flickcurl* fc, const char* photo_id); * flickr.photos.getContext: flickcurl_context** flickcurl_photos_getContext(flickcurl* fc, const char* photo_id); * flickr.photosets.getContext: 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 2007-02-11 Flickcurl 0.6 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 2007-02-04 Flickcurl 0.5 Added optional support for using [3]Raptor for more accurate and prettier serializing triples in flickrdf Released to the world! 3% of API 2007-02-03 Flickcurl 0.4 Added flickrdf utility. 3% of API 2007-02-01 Flickcurl 0.3 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 2007-01-24 Flickcurl 0.2 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 2007-01-21 Flickcurl 0.1 First version 0% of API __________________________________________________________________ Copyright (C) 2007-2008 [4]Dave Beckett References 1. http://www.dajobe.org/ 2. http://triplr.org/ 3. http://librdf.org/raptor 4. http://www.dajobe.org/ |