Social From the Start (Maverick)

Registered by Ken VanDine on 2010-04-20

Expand the Gwibber API to provide access to social data without talking directly to couchdb (required for Gwibber 3.0)

APIs to add:
 * Photos
 * links
 * events ???

Convert existing python API and GTK widgets to a C library (libgwibber) and create bindings to that library for python, mono, etc.

Include at least one example using the API, photo browsing from a desktop photo library. Browse photos posted by friends on your social networks, as well as online albums from your friends (like facebook).

Blueprint information

Status:
Complete
Approver:
Sebastien Bacher
Priority:
Medium
Drafter:
Ken VanDine
Direction:
Needs approval
Assignee:
Ken VanDine
Definition:
Approved
Series goal:
Accepted for maverick
Implementation:
Implemented
Milestone target:
None
Started by
Ken VanDine on 2012-05-22
Completed by
Ken VanDine on 2012-05-22

Related branches

Sprints

Whiteboard

Work items for maverick-alpha-2:
Port existing GwibberPublic python API to libgwibber: DONE
Create series libgwibber and make distcheck work: DONE
Generate bindings for libgwibber for python: DONE
Generate bindings for libgwibber to vala: DONE
Add gwibber sharing to software-center, including a link to open the software-center on the package details view: DONE
[segphault] Create generic API for accessing photo albums, facebook, flickr, and possible others in the future (picasa, etc): POSTPONED
[segphault] Add album support to facebook and flickr modules: POSTPONED
[segphault] Make storage providers modular and move local caching out of desktopcouch: DONE
[segphault] Add support for image uploading services: POSTPONED

Work items for maverick-alpha-3:
Port gwibber-accounts twitter widget to use new auth style from twitter: POSTPONED
Create migration path for existing twitter accounts to the new style auth: POSTPONED
SRU gwibber twitter auth change to lucid: POSTPONED
Port existing gwibber gtk widgets from python to libgwibber: DONE

Work items for ubuntu-10.10-beta:
[segphault] Make service modules optional, introspect available modules at startup time so the each module can be packaged separately for greater control: POSTPONED

Work Items:
Create method to get a count of unseen posts, replies and direct messages: POSTPONED
Create method to return list of links: POSTPONED
Create method to return list of images: POSTPONED
Create new gtk widget for image uploading: POSTPONED
Add gwibber sharing to quickly: POSTPONED
Add gwibber sharing of tasks to GTG: POSTPONED
Add gwibber posting of the public url for a file in ubuntuone: POSTPONED
Add gwibber sharing of youtube videos watched in totem: POSTPONED
[sil] Add gwibber sharing of songs from a rhythmbox library, including a link to find the song in the ubuntuone music store (desktop-maverick-ubuntu-one-music-store-links): DONE
Add support to shotwell for browsing photo albums exposed from the gwibber API: POSTPONED
Add support for commenting on photos from gwibber albums in shotwell: POSTPONED
Add support of tagging people in photos from gwibber albums in shotwell: POSTPONED
Add image posting/sharing to gnome-screenshot, embed the imaging uploading widget: POSTPONED

=== Notes ===

 https://blueprints.launchpad.net/ubuntu/+spec/desktop-maverick-social-api

 === Social from the Start, for developers ===

 Expand the API to make integration with social networking more compeling accross the desktop

 Move APIs and gtk widgets from python to libgwibber and generate bindings for vala, python, mono
  * Existing GwibberPublic methods have been ported to libgwibber, still needs polish
  * Still need to port the gtk widgets

Enhancements to the API:
 * We should have access to a count of unread messages/posts/etc since last time the window was focused. Needed for MessagingMenu
 * Retrieving photos
   * generic API for viewing online photo albums from services which provide them
     * Support commenting, liking, tagging people, etc if the provider supports it
 * Retrieving links posted by friends
 * Anything we can do with events?
 * Posting photos?
 * UbuntuOne syncing of keyring and other credentials
 * Perhaps integrate with libfolks and U1, etc to relate identity and perhaps tie things together more like empathy to gwibber, etc
 * Add a broadcast feature to GTG to send the subject of what you are working on, or what you just got done.
 * watch projects in launchpad for pushes, merge proposals, etc.... perhaps use launchpadlib or RSS feed
 * quickly share or publish, make that broadcast
 * add "share my results" to some games, popup and let you decide to share or not
 * totem: add a share this video feature when playing youtube videos
 * rhythmbox/banshee: share currently playing song or ratings or even direct message for sending to an individuals (recommendation, etc)
   * maybe even post the album art
   * perhaps tie into u1music store
 * software-center: share recommendations (broadcast or direct message)
   * check on apturl or something similar to let you click straight to the right page in software-center
 * ubuntuone file share with public url
 * screenshot tool, post straight to social sites or u1 and share url
 * snapshots from cheese, documents from simple-scan to social sites or u1
 * find way to share content, files, etc via multiple mechanisms depending on how you can interact with your friends
   * if we know the contact is available on jabber, prompt to select how to send
 * gobby: post link to open gobby directly into a specific document
 * irc: post links directly to an irc channel
 * add sharing feature to the firefox extension for launchpad

Enhancements to the widgets:
 * image uploading

  Other feature:
  * tripit
  * linkedin
  *

(?)

Work Items