Conduit and Tracker

2 views
Skip to first unread message

Debarshi Ray

unread,
Dec 31, 2009, 9:01:13 AM12/31/09
to condui...@gnome.org
Sometime ago I read about an effort to make Conduit work more closely
with Tracker. Recently I have been trying to build a photo management
program [1] that uses Tracker as its backend instead of a private
SQLite database. I am wonderin how I can reuse/integrate with Conduit
for "import/export" to webservices functionality? I saw that there is
a DBus API to interact with Conduit, but is there a plan to provide a
library of widgets that I can embed in my application?

Cheers,
Debarshi

[1] http://git.savannah.gnu.org/cgit/solang.git/log/?h=tracker
--
One reason that life is complex is that it has a real part and an
imaginary part.
-- Andrew Koenig
_______________________________________________
Conduit-list mailing list
Condui...@gnome.org
http://mail.gnome.org/mailman/listinfo/conduit-list

Debarshi Ray

unread,
Jan 10, 2010, 6:58:29 AM1/10/10
to condui...@gnome.org
> Sometime ago I read about an effort to make Conduit work more closely
> with Tracker. Recently I have been trying to build a photo management
> program [1] that uses Tracker as its backend instead of a private
> SQLite database. I am wonderin how I can reuse/integrate with Conduit
> for "import/export" to webservices functionality? I saw that there is
> a DBus API to interact with Conduit, but is there a plan to provide a
> library of widgets that I can embed in my application?
>
>...
>
> [1] http://git.savannah.gnu.org/cgit/solang.git/log/?h=tracker

Ping?

Cheers,
Debarshi

Andrew Stormont

unread,
Jan 10, 2010, 7:20:33 AM1/10/10
to condui...@gnome.org
Hi,
 
Sometime ago I read about an effort to make Conduit work more closely
with Tracker. Recently I have been trying to build a photo management
program [1] that uses Tracker as its backend instead of a private
SQLite database. I am wonderin how I can reuse/integrate with Conduit
for "import/export" to webservices functionality?

The best way I think would be to write a conduit provider for your application, and let conduit deal with sync'ing


I saw that there is
a DBus API to interact with Conduit, but is there a plan to provide a
library of widgets that I can embed in my application?

Not that I'm aware of although I think its a good idea.

Maybe you should come up with a patch?

Thanks,
Andy


2010/1/10 Debarshi Ray <debars...@gmail.com>

John Stowers

unread,
Jan 10, 2010, 7:38:31 AM1/10/10
to debars...@gmail.com, condui...@gnome.org
On Sun, Jan 10, 2010 at 12:58 PM, Debarshi Ray <debars...@gmail.com> wrote:
>> Sometime ago I read about an effort to make Conduit work more closely
>> with Tracker. Recently I have been trying to build a photo management
>> program [1] that uses Tracker as its backend instead of a private
>> SQLite database. I am wonderin how I can reuse/integrate with Conduit
>> for "import/export" to webservices functionality? I saw that there is
>> a DBus API to interact with Conduit, but is there a plan to provide a
>> library of widgets that I can embed in my application?

Yes, there is an extensive DBus API that you can use to upload/sync
photos to any place supported by Conduit. Check out the nauitlus and
eye-of-gnome uploaders which use this interface in the tools directory
of a master git checkout.

If your application uses local URIs to store photos, then you can
upload/sync to anything by creating a file/folder ->
flickr/facebook/ipod/etc conduit, and adding your photos to the
file/folder source using the dbus API. If you store photos using some
internal representation then you wll need to create a dataprovider to
extract the photo from your store.

Regarding the embedding of UI elements, my opinion has always been
that the user of the API should provider those widgets as they known
their specific requirements (i.e do you just want a single Upload
button, a listview, etc etc). However, conduit does provide the
configuration UI. This window is shown using the DBus API.

John

Debarshi Ray

unread,
Jan 10, 2010, 8:01:40 AM1/10/10
to John Stowers, condui...@gnome.org
> If your application uses local URIs to store photos, then you can
> upload/sync to anything by creating a file/folder ->
> flickr/facebook/ipod/etc conduit, and adding your photos to the
> file/folder source using the dbus API.

Ok.

> If you store photos using some
> internal representation then you wll need to create a dataprovider to
> extract the photo from your store.

No, we do not use any internal representation. Photos are just Gvfs
URIs which we come to know by querying Tracker.

> However, conduit does provide the
> configuration UI. This window is shown using the DBus API.

Does the "configuration UI" take care of the part where the user can
select which Flickr set/tag to import from or upload to, etc.? That is
the most difficult part in my view.

Thanks,

John Stowers

unread,
Jan 10, 2010, 8:12:07 AM1/10/10
to debars...@gmail.com, condui...@gnome.org
On Sun, Jan 10, 2010 at 2:01 PM, Debarshi Ray <debars...@gmail.com> wrote:
>> If your application uses local URIs to store photos, then you can
>> upload/sync to anything by creating a file/folder ->
>> flickr/facebook/ipod/etc conduit, and adding your photos to the
>> file/folder source using the dbus API.
>
> Ok.
>
>> If you store photos using some
>> internal representation then you wll need to create a dataprovider to
>> extract the photo from your store.
>
> No, we do not use any internal representation. Photos are just Gvfs
> URIs which we come to know by querying Tracker.
>
>> However, conduit does provide the
>> configuration UI. This window is shown using the DBus API.
>
> Does the "configuration UI" take care of the part where the user can
> select which Flickr set/tag to import from or upload to, etc.? That is
> the most difficult part in my view.

photosets, yes, download by tag (no, but it would be trivial to add),
upload and keep tags - that is a longer story. The infrastructure is
in place behind the scenes to do tags as well, but we have not
previously had any useful source that could populate them (until
tracker came along).

I am CC'ing JC2K who most recently hacked on tracker+conduit

John

John Carr

unread,
Jan 19, 2010, 6:17:31 AM1/19/10
to John Stowers, condui...@gnome.org

The tracker backend probably won't work any more, the upstream dbus
api signatures have changed and there were some bugs in SPARQL
generation that tracker know chokes on - stricter validation - (i
think Conduit uses a copy of tralchemy, and the API has changed a lot
upstream). It also only had support for things like Contacts and
Calendar, but would have been able to add support for other backends
easily.

It should be easy enough for someone to pick up and run with...

John

Debarshi Ray

unread,
Jan 19, 2010, 9:48:13 AM1/19/10
to John Carr, condui...@gnome.org
> The tracker backend probably won't work any more, the upstream dbus
> api signatures have changed and there were some bugs in SPARQL

Yes, 0.7.x is quite different from the 0.6.x series. So is this a
priority for you, the Conduit developers? I am just trying to get an
idea of how much work it would be for me to integrate with Conduit.

Happy hacking,
Debarshi

--
One reason that life is complex is that it has a real part and an
imaginary part.
-- Andrew Koenig

John Stowers

unread,
Jan 19, 2010, 10:07:48 AM1/19/10
to debars...@gmail.com, condui...@gnome.org
On Tue, Jan 19, 2010 at 3:48 PM, Debarshi Ray <debars...@gmail.com> wrote:
>> The tracker backend probably won't work any more, the upstream dbus
>> api signatures have changed and there were some bugs in SPARQL
>
> Yes, 0.7.x is quite different from the 0.6.x series.

IIRC John was targeting the 0.7 series, hence the SPARQL business. Is
this correct?

> So is this a
> priority for you, the Conduit developers? I am just trying to get an
> idea of how much work it would be for me to integrate with Conduit.

I'm still not clear on what you want exactly. If you do the querying
of tracker yourself, and pass conduit a list of URIs to upload then it
will already work. If you want to pass the list of URIs to Conduit and
then expect Conduit to use Tracker to query the tags then this will be
a little work. If you want to instead pass a SQL query to Conduit
describing the photos you want to upload then that is more work. The
same questions apply to a two-way sync (i.e downloading from
Flickr/Facebook)

Could you please expand on your use-case a little? Do these scenarios
come close to what you envision?

John

Reply all
Reply to author
Forward
0 new messages