gsoc

Sign in or create your account | Project List | Help

gsoc Commit Details

Date:2009-08-03 01:43:15 (11 months 26 days ago)
Author:Adrien Bustany
Commit:5ad3f43d0466b9fcf101b982da8cdfc41a863315
Message:GData bridge : import EXIF tags into Tracker (requires a very recent libgdata)

Files: bridges/gdata/src/gdata-bridge-picasaweb.vala (2 diffs)

Change Details

bridges/gdata/src/gdata-bridge-picasaweb.vala
103103    {
104104    }
105105
106    private void insertPicture (Entry file)
106    private void insertPicture (Entry e)
107107    {
108108
109        string uri = "urn:nepomuk:gdata:%s".printf (file.id);
109        PicasaWeb.File file = (PicasaWeb.File)e;
110
111        string urn = "urn:nepomuk:gdata:%s".printf (file.id);
112        string uri = (file).get_contents ().first ().data.uri;
110113
111114        try {
112            tracker.SparqlUpdate ("insert {<%s> a nmm:Photo}".printf (uri));
115            tracker.SparqlUpdate ("insert {<%s> a nmm:Photo}".printf (urn));
116            tracker.SparqlUpdate ("insert {<%s> rdfs:label '%s'}".printf (urn, file.title.escape ("")));
113117            tracker.SparqlUpdate ("insert {<%s> a nfo:RemoteDataObject}".printf (uri));
114            tracker.SparqlUpdate ("insert {<%s> rdfs:label '%s'}".printf (uri, file.title.escape ("")));
118            tracker.SparqlUpdate ("insert {<%s> nie:isStoredAs <%s>}".printf (urn, uri));
115119
116            tracker.SparqlUpdate ("insert {<%s> nfo:height %u}".printf (uri, ((PicasaWeb.File)file).height));
117            tracker.SparqlUpdate ("insert {<%s> nfo:width %u}".printf (uri, ((PicasaWeb.File)file).width));
120            tracker.SparqlUpdate ("insert {<%s> nfo:height %u}".printf (urn, (file).height));
121            tracker.SparqlUpdate ("insert {<%s> nfo:width %u}".printf (urn, (file).width));
118122
119            if (((PicasaWeb.File)file).tags != null) {
120                foreach (string tag in ((PicasaWeb.File)file).tags.split (",")) {
121                    string tagUri = getTagUri (tag);
122                    tracker.SparqlUpdate ("insert {<%s> a nao:Tag}".printf (tagUri));
123                    tracker.SparqlUpdate ("insert {<%s> rdfs:label '%s'}".printf (tagUri, tag));
124                    tracker.SparqlUpdate ("insert {<%s> nao:hasTag <%s>}".printf (uri, tagUri));
123            if ((file).tags != null) {
124                foreach (string tag in (file).tags.split (",")) {
125                    string tagurn = getTagUri (tag);
126                    tracker.SparqlUpdate ("insert {<%s> a nao:Tag}".printf (tagurn));
127                    tracker.SparqlUpdate ("insert {<%s> rdfs:label '%s'}".printf (tagurn, tag));
128                    tracker.SparqlUpdate ("insert {<%s> nao:hasTag <%s>}".printf (urn, tagurn));
125129                }
126130            }
131
132            tracker.SparqlUpdate ("insert <%s> nmm:flash nmm:flash-%s".printf (urn, file.flash == true ? "on" : "off"));
133
134            if (file.focal_length != -1) {
135                tracker.SparqlUpdate ("insert <%s> nmm:focalLength %f".printf (urn, file.focal_length));
136            }
137
138            if (file.fstop != 0) {
139                tracker.SparqlUpdate ("insert <%s> nmm:fnumber %f".printf (urn, file.fstop));
140            }
141
142            if (file.iso != -1) {
143                tracker.SparqlUpdate ("insert <%s> nmm:isoSpeed %f".printf (urn, file.iso));
144            }
145
146            var cameraModel = "%s %s".printf (file.make, file.model);
147            if (cameraModel != " ") {
148                tracker.SparqlUpdate ("insert <%s> nmm:camera %s".printf (urn, cameraModel));
149            }
150
127151        } catch (Error e) {
128152            critical ("Error while entering metadata into Tracker : %s", e.message);
129153        }
...... 
136160            albums = service.query_finish (res);
137161        } catch (Error e) {
138162            critical ("Couldn't list albums : %s", e.message);
163            return;
139164        }
140165        debug ("Got %u albums to list", albums.total_results);
141166

Archive Download the corresponding diff file

Branches:
master