Git Product home page Git Product logo

libsocialweb's Introduction

libsocialweb
===

A personal social data server.

Core
~~~~

libsocialweb (referred to as lsw in this document) comprises of a core daemon
process that can load in multiple modules.

The lsw core sits on the dbus at the well known name org.gnome.libsocialweb.
The core object sits on the bus at /org/gnome/libsocialweb and implemented
the org.gnome.libsocialweb interface.

This interface has the following methods:

org.gnome.libsocialweb (TODO: Rename to .Core)

GetServices -> returns the set of available services

TODO: Add ServiceAdded signal since we now monitor for services)

TODO: Add GetServicesByStaticCapability

HideItem - LEGACY - DEPRECATED DO NOT USE -> Use Banish interface on service
OpenView - LEGACY - DEPRECATED DO NOT USE -> Use Query interface on service


Services
~~~~~~~~

The service names returned by GetServices can then be mapped to service
objects sitting on the dbus. These services have the object path:

/org/gnome/libsocialweb/Service/<service name>

The service objects are provided by the loaded backends. Each service must
implement the org.gnome.libsocialweb.Service interface.

This has the following methods:

CredentialsUpdated - Used by web service configuration to indicate to the
service that is must update it's credentials. Not needed to usual client use.

GetDynamicCapabilities -> returns the set of variable capabilities for the
service - these are capabilities that can vary over time based on whether the
service is configured, available or use control

GetStaticCapabilities -> returns the set of fixed capabilities for the service -
these represent what type of functionality the service supports when fully
configured and available.


Signals:

CapabilitiesChanged -> fired with the new set of dynamic capabilities
UserChanged - ???

Available capabilities:
========= ============

can-verify-credentials - static - means that credentials-invalid and
credentials-valid dynamic caps are available

can-update-status - static - this service has the StatusUpdate interface
                  - dynamic - this service is able to accept status updates on
                              the StatusUpdate interface

can-request-avatar - static - this service has the Avatar interface
                   - dynamic - this service is able to accept avatar requests
                               on the Avatar interface

can-geotag - static - this service has the StatusUpdate interface and
                      potentially supports sending latitude/longitude in the
                      status update
           - dynamic - this service is able to accept the geotag'ed status
                       updates

is-configured - dynamic - all necessary configuration steps for the service
                          have been completed. The service may still have
                          invalid credentials or unable to work so the other
                          dynamic caps must be checked.

credentials-invalid - dynamic - the provided credentials are invalid
credentials-valid - dynamic - the provided credentials have been checked and
                              are correct


TODO: rename can-update-status static to has-status-update-interface
      rename can-request-avatar static to has-request-avatar-interface
      rename can-geotag static to can-status-update-with-geotag
      add has-query-interface static

StatusUpdate interface
============ =========

This interface should only be used if the static caps indicate that it is
present and the dynamic caps indicate it is available.

Methods:

UpdateStatus - updates the status for the service with the given message and
               optional string hash of parameters. Use latitude and longitude
               parameters if the can-geotag dynamic cap is set

Signals:

StatusUpdated - fired if the call to update the status has finished with a
                boolean parameter to indicate success

Avatar interface
====== =========

This interface should only be used if the static caps indicate that it is
present and the dynamic caps indicate it is available.

Methods:

RequestAvatar - asks the service to download the user's own avatar

Signals:

AvatarRetrieved - fired when the avatar has been successfully downloaded, the
                  paramater is the local filename for the avatar


PhotoUpload interface
=========== =========

TODO

Query interface
===== =========

TODO


Defined Keys
==

id

Globally unique identifier for this item.  If the service provides a ID but it
isn't globally unique then it should be made so somehow, for example by using
the item's URL instead of numeric ID.

url

The URL of the item for viewing online.

date

The date the item was created in HTTP "Date" format, i.e. "Sun, 06 Nov 1994 08:49:37 GMT".

content

The textual content of the item.  For blog posts this will be a summary, for
Twitter posts this will be the post, for Flickr this will be the description.

author

The name of the author of the item.

authorid

The service ID of the author of the item.

authoricon

Path to a local copy of the item's author's avatar.

title

The title of the item.

thumbnail

Path to a local copy of the item's graphical representation.

cached

Set if the item was retrieved from the local cache.

Bonus extra keys
==

location

Free-form location string.

latitude, longitude

Accurate location, in decimal coordinates.

libsocialweb's People

Contributors

aalam avatar afranke avatar ahkok avatar alban avatar anoochit avatar atriwidada avatar balrog-kun avatar barisione avatar berengaria avatar dmustieles avatar ebassi avatar eeejay avatar frandieguez avatar hadess avatar jeancayron avatar jesuszhu avatar kristho avatar lcp avatar malditoastur avatar marv-cz avatar mazurs avatar milocasagrande avatar piotrdrag avatar rossburton avatar smcv avatar thos avatar vpv avatar yeager avatar yukariyamashita avatar zerng07 avatar

Watchers

 avatar

Forkers

artea

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.