Social From the Start (Maverick)

Registered by Ken VanDine

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
Completed by
Ken VanDine

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