summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* tests: Add debug messages for the tracker3 testwip/jfelder/tracker3-ciJean Felder2020-08-221-0/+5
|
* ci: Build tracker2 and tracker3 modulesJean Felder2020-08-221-36/+53
|
* ci: Export test logs on failureBastien Nocera2020-08-211-0/+5
|
* tracker3: Ignore changes in unhandled graphsCarlos Garnacho2020-08-211-0/+3
| | | | | We are essentially interested in data from audio/video/image graphs. Everything is foreign to this plugin.
* tracker3: Update authors/contact for tracker3 moduleCarlos Garnacho2020-08-2113-30/+48
| | | | | It underwent some substantial changes, despite being based on the 2.x code.
* tracker3: Use nmm:artist for GRL_METADATA_KEY_ARTISTCarlos Garnacho2020-08-211-5/+5
| | | | Adapt to the changes in tracker-miners about this metadata.
* tracker3: Add configuration option to change miner serviceCarlos Garnacho2020-08-214-1/+10
| | | | | | | This may be useful if using domain ontologies for the tracker-miner services (e.g. a flatpak app without tracker3 in the host), in this case the miner service would be based on the app DBus name, thus queries and notification subscriptions need to change.
* build: Make tracker and tracker3 modules mutually exclusiveCarlos Garnacho2020-08-211-0/+5
| | | | | | | | | | | Even though both can be compiled and installed separately, the usual approach to grl_registry_load_all_plugins() will cause GType clashes as both plugins will be attempted to be initialized. Even if we could make that work, the benefits are theoretical since other dependencies (eg. gtk) have explicit dependencies on one or another Tracker version, so it's more a distributor-level choice really...
* tests: Add tests for the tracker3 pluginCarlos Garnacho2020-08-219-0/+535
| | | | | | Use the tracker 3.0 testutils helpers to run a tracker sandbox, and put some sample files on it (borrowed from chromaprint and tracker-miners tests) so we can test features in the grilo plugin.
* tracker3: Listen to notifications from tracker-miner-fsCarlos Garnacho2020-08-211-0/+10
| | | | | | This should be added explicitly, just in case the connection is local (and thus does not listen to events from tracker-miner-fs bus name by default).
* tracker3: Allow again full queries in grl_source_query()Carlos Garnacho2020-08-211-7/+15
| | | | GNOME Music strongly relies on this.
* tracker3: Move away from g_type_class_add_private()Carlos Garnacho2020-08-215-16/+14
| | | | Use G_*_PRIVATE when declaring the type.
* tracker3: Let notification code figure out the media typeCarlos Garnacho2020-08-211-13/+24
|
* tracker3: Simplify rdf:type to GrlTypeFilter conversionCarlos Garnacho2020-08-215-94/+22
| | | | | Do things straight from the query, so we get a proper media type for the given row.
* tracker3: Drop keys argument from GrlTrackerOpCarlos Garnacho2020-08-211-11/+6
| | | | This is no longer used.
* tracker3: Clean up sparql-grilo key associationsCarlos Garnacho2020-08-212-119/+0
| | | | A number of fields in the struct is now unused, can be removed.
* tracker3: Clean up no longer used codeCarlos Garnacho2020-08-212-235/+0
| | | | | The utils code to create sparql queries is no unused, this can be removed.
* tracker3: Port store_metadata to tracker3Carlos Garnacho2020-08-215-52/+245
| | | | | | | | The data stored by miner-fs is no longer considered readwrite for all. These updates used to trigger the tracker writeback service which would rewrite file metadata and make everything match again. Make this use the writeback service directly, the miner-fs data will then be updated indirectly.
* tracker3: Associate the SPARQL variable name to the grilo keyCarlos Garnacho2020-08-211-14/+1
| | | | | We now look up variable names here, so update this. Also drop the other (no longer necessary) mappings.
* tracker3: Change title-from-filename handlingCarlos Garnacho2020-08-212-31/+16
| | | | | | Set it afterwards, instead of relying on a second for the same metadata key. This is the only place where this is needed and can be easily handled in other ways.
* tracker3: Use URNs as media IDsCarlos Garnacho2020-08-211-2/+2
| | | | | tracker:id() is an internal detail, it sounds better not to expose it in public API.
* tracker3: Handle errors on cursor_next() in resolve callbackCarlos Garnacho2020-08-211-17/+17
| | | | Shuffle things so we don't miss errors there.
* tracker3: Account for DataObject/InformationElement data splitCarlos Garnacho2020-08-211-17/+9
| | | | | | | | In tracker3 these 2 classes are no longer attributed to the very same resource object. Those are 2 different entities, so this must be accounted for. Prefer to stay wherever possible in the InformationElement domain, and resolve properly the DataObject from the InformationElement otherwise.
* tracker3: Drop old sparql helper functionsCarlos Garnacho2020-08-211-90/+0
| | | | Those are not used anymore.
* tracker3: Port grl_source_query() to the statement cacheCarlos Garnacho2020-08-211-43/+8
| | | | | We drop the support for full queries, the query is extended so that subselects work.
* tracker3: Port grl_source_search() to the statement cacheCarlos Garnacho2020-08-213-56/+28
|
* tracker3: Port grl_source_browse() to the statement cacheCarlos Garnacho2020-08-213-49/+45
|
* tracker3: Port grl_source_resolve() to the statement cacheCarlos Garnacho2020-08-213-37/+24
|
* tracker3: Port test_media_from_uri() to the statement cacheCarlos Garnacho2020-08-211-18/+13
| | | | | This is essentially a GRL_TRACKER_QUERY_MEDIA_FROM_URI with no additional keys or filters.
* tracker3: Port get_media_from_uri() to the statement cacheCarlos Garnacho2020-08-213-24/+17
|
* tracker3: Add infrastructure to cache TrackerSparqlStatementsCarlos Garnacho2020-08-214-0/+541
|
* tracker3: Add a getter for the property path/subselect for a metadata keyCarlos Garnacho2020-08-212-39/+108
| | | | We match by GrlTypeFilter, so it's easy to discard those that don't apply.
* tracker3: Assign a sparql name to each metadata keyCarlos Garnacho2020-08-212-0/+65
| | | | | So it can be used to generate variable names in SPARQL queries, and parameter bindings for filters.
* tracker3: Drop pointless warningCarlos Garnacho2020-08-211-1/+0
| | | | If a leak happened, this shouldn't be warned on random app's stderr.
* tracker3: Drop GrlTrackerSource::constructed vfuncCarlos Garnacho2020-08-211-15/+0
| | | | | This only unsets the private connection, which is rather wrong. Let it live so it can be used during the object lifetime.
* tracker3: Drop request queueCarlos Garnacho2020-08-216-400/+79
| | | | | | | | | | | | | | For a large part, this work duplicates tracker's internal handling (eg. updates are already guaranteed to be executed sequentially), or even hinders it (eg. select queries are serialized even though they can run in parallel). This will also get a bit in the middle, as it makes sense to minimize the time between a query happening and a TrackerSparqlStatement being executed for that TrackerSparqlStatement to be ready for reuse ASAP. Drop this queue and let Tracker handle things itself.
* tracker3: Drop cursor argument from GrlTrackerOpCarlos Garnacho2020-08-213-10/+10
| | | | | The operation is passed as data to the cursor asynchronous method, so it's already implicitly attached to it.
* tracker3: Fold cancellable check with other error handlingCarlos Garnacho2020-08-211-16/+6
| | | | | The cursor will already error out if the cancellable was cancelled. Check for that error and avoid checking the cancellable directly.
* tracker3: Drop row accounting from GrlTrackerOpCarlos Garnacho2020-08-212-23/+11
| | | | | | Rely on the limit as set in the query. This accounting is a best effort anyway, as asking for 100 elements is not guaranteed to return 100 elements.
* tracker3: Clean up tracking of multiple data sourcesCarlos Garnacho2020-08-214-136/+18
| | | | We only have one source, with name "". This was unused.
* tracker3: Drop unused query defineCarlos Garnacho2020-08-211-16/+0
| | | | This query string is unused.
* tracker3: Make sources manage notificationsCarlos Garnacho2020-08-216-37/+52
| | | | | Instead of being a singleton, the GrlSource sets up its own notification.
* tracker3: Drop dead nie:dataSource tracking codeCarlos Garnacho2020-08-212-71/+0
| | | | This got unused long ago, it seems these functions can just go.
* tracker3: Use TrackerSparqlStatement for queriesCarlos Garnacho2020-08-214-39/+99
| | | | | The port is shoddy atm, queries will be updated to making use of this one by one.
* tracker3: Drop show-documents configuration optionCarlos Garnacho2020-08-213-43/+4
| | | | | | It seems a little bit shoehorned as there's no GrlMediaType to express documents. Drop this configuration option as it also does seem unused according to codesearch.debian.net.
* tracker3: Add store-path configuration optionCarlos Garnacho2020-08-212-4/+14
| | | | | So it is possible to open a specific store. Queries will be updated to use the org.freedesktop.Tracker3.Miner.Files service where necessary.
* tracker3: Drop browse-filesystem configuration optionCarlos Garnacho2020-08-213-173/+2
| | | | | | | | | | | | | | Besides allowing to browse folders as media containers, this option makes change notifications work by enabling tracker:notify on nfo:Folder type, so the grilo client (and everyone else, really ) may receive TrackerNotifier notifications about folder additions/changes. It's not in the hand of a client to do this, it ought not. Besides the option seems completely unused according to codesearch.debian.net. The Tracker plugin should not be intended for browsing as a filesystem structure, and it is possible to create media containers specifically for folders that do contain media. Drop this configuration option in the tracker3 module.
* tracker3: Drop checks for special UPnP ontologyCarlos Garnacho2020-08-212-50/+9
| | | | | This ontology was never upstreamed, probably belonged somewhere to maemo/moblin. Anyhow, it seems like dead code today, drop this.
* plugins: Add tracker3 pluginCarlos Garnacho2020-08-2118-0/+4249
| | | | | This is a separate plugin as it requires a version bump, different queries, and can do some niceties supported in the new version.
* grl-dleyna-source: Set artist, album and genre properties for containersChinmay Gurjar2020-08-211-3/+3
| | | | | | This patch is an extension of !87 Some containers can also have properties like artist, album and genre, these need to be set for album media.