The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

LibTracker::Client - Perl interfce to libtrackerclient

SYNOPSIS

  use LibTracker::Client qw(:all);

  my $name = LibTracker::Client->service_name(0);
  my $type = LibTracker::Client->service_type($name);
  die "zero somehow is not equal to zero" if( $type != 0 );

  my $tracker = LibTracker::Client->get_instance();

  print "Tracker version : ", $tracker->get_version();
  print "Tracker status : ", $tracker->get_status();

  my $main_only = 0;
  my $s = $tracker->get_services( $main_only );
  while ( my ($key, $val) = each %{$s} ) {
      print "$key : $val\n";
  }

  # searching text and displaying results with snippets
  my $searchtext = shift;
  my $r = $tracker->search_text(0, SERVICE_FILES, $searchtext, 0, 100);

  foreach my $result ( @{$r} ) {
    my $snippet = $tracker->get_snippet(SERVICE_FILES, $result, $searchtext);
    print "$result : $snippet\n";
  }

  undef $tracker;

DESCRIPTION

Tracker is a tool designed to extract information and metadata about your personal data so that it can be searched easily and quickly.

By using Tracker, you no longer have to remember where you've left your files. To locate a file you only need to remember something about it, such as a word in the document or the artist of the song. This is because as well as searching for files in the traditional way, by name and location, Tracker searches files' contents and metadata.

Tracker is available from http://www.gnome.org/projects/tracker/

libtrackerclient is the Tracker client library. This module implements the Perl interface to libtrackerclient.

INTERFACE

STATIC METHODS

service_name()
  args:
    servicetype(int) : Service Type Id

Converts the service type to the corresponding name.

service_type()
  args:
    servicename(string) : Service Name

Converts the service name to the corresponding type.

get_instance()
  args:
    none

Establishes a connection to trackerd and returns an instance of this class. Returns undef on failure. The connection to trackerd is persistent and is disconnected only when the returned refrence goes out of scope, is undef-ed, or is otherwise DESTROYed.

INSTANCE METHODS

get_version()
  args:
    none

Gets the tracker version. Returns undef on failure.

get_status()
  args:
    none

Gets the tracker status. Returns undef on failure.

get_services()
  args:
    mainonly(int) : gets only the main services is this is TRUE

Returns a hashref containing the tracker services. I could only get a reference to an empty hash each time I tried, so I don't really know what this does. It is however, included for completeness.

get_metadata()
  args:
    servicetype(int) : The tracker service type
    id(string)       : The path of the document for which
                       metadata is requested
    keys(arrayref)   : Reference to an array containing
                       metdata fields.

Returns a hashref with the requested metadata. If the call succeeds, the keys of the hashref are the keys supplied in the array, and the vlues are the corresponding values. Returns undef on failure. The call will fail even if one of the requested keys turns out to be invalid. A list of valid fields can be obtained with a call to get_registered_metadata_classes().

set_metadata()
  args:
    servicetype(int) : The tracker service type
    id(string)       : The path of the document for which
                       metadata is requested
    data(hashref)    : Reference to a hash containing
                       metdata fields and values.

Returns the number of metadata fields set on success. This would always be equal to the number of keys in the data hash passed to it. Returns undef on failure. The call will fail even if one of the supplied metadata fields turns out to be invalid.

A list of valid metadata fields can be obtained with a call to get_registered_metadata_classes().

register_metdata_type()
  args:
    name(string)     : The name of the metadata type to register
    type(int)        : The type. One of the DATA_* constants.

Registers the new metadata type. Does not return anything. Croaks on failure. A metadata type is the metadata field from get_metadata() and set_metadata().

get_metadata_type_details()
  args:
    name(string)    : The name of the metadata type

Returns a reference blessed into LibTracker::Client::MetaDataTypeDetails on success. Returns undef on failure.

get_registered_metadata_classes()
  args:
    none

Returns a reference to an array containing the names of the registered metadata classes. Returns undef on failure.

get_registered_metadata_types()
  args:
    classname(string)    : Class name

Returns a reference to an array containing the names of the registered metadata types for the given class. Returns undef on failure.

get_writeable_metadata_types()
  args:
    classname(string)    : Class name

Returns a reference to an array containing the names of the writeable metadata types for the given class. Returns undef on failure.

get_all_keywords()
  args:
    servicetype(int)    : The service type to get keywords for

Returns a reference to an array containing all the tags for the given service type. Returns undef on failure.

get_keywords()
  args:
    servicetype(int)    : service type
    id(string)          : the path of the file to get the
                          keywords for

Returns a reference to an array containing the tags for the given path. Returns undef on failure.

add_keywords()
  args:
    servicetype(int)    : service type
    id(string)          : the path of the file to set the
                          keywords for
    values(arrayref)    : keywords to add.

Adds the given keywords to the specified path. On success, returns the number of keywords added, which is ALWAYS equal to the number of keywords given. Returns undef on failure.

remove_keywords()
  args:
    servicetype(int)    : service type
    id(string)          : the path of the file to remove the
                          keywords from
    values(arrayref)    : keywords to remove.

Removes the given keywords from the specified path. On success, returns the number of keywords removed, which is ALWAYS equal to the number of keywords given. Returns undef on failure.

remove_all_keywords()
  args:
    servicetype(int)    : service type
    id(string)          : the path of the file to remove the
                          keywords from

Removes all the keywords from the specified path. On success, returns a TRUE value. Returns undef on failure.

search_keywords()
  args:
    lqi(int)            : the live query id
    servicetype(int)    : service type
    keywords(arrayref)  : keywords to search for
    offset(int)         : return results from this pos
    maxhits(int)        : number of hits to return

Searches for the specified keywords with the given parameters. On success, returns a reference to an array containing the results. Returns undef on failure.

search_text()
  args:
    lqi(int)            : the live query id
    servicetype(int)    : service type
    searchtext(string)  : text to search for
    offset(int)         : return results from this pos
    maxhits(int)        : number of hits to return

Searches for the specified text with the given parameters. On success, returns a reference to an array containing the results. Returns undef on failure.

get_snippet()
  args:
    servicetype(int)    : service type
    path(string)        : the path to get the snippet from
    searchtext(string)  : text to search for

Returns a snippet matching the searchtext in the specified file. The search text is enclosed in HTML bold tags. Returns undef on failure.

search_metadata()
  args:
    servicetype(int)    : service type
    field(string)       : the field to search
    searchtext(string)  : text to search for
    offset(int)         : return results from this pos
    maxhits(int)        : number of hits to return

Searches for the specified text in the specified field. Returns a maximum of maxhits results starting from the given offset. On success, returns a reference to an array containing the results. Returns undef on failure.

get_suggestion()
  args:
    searchtext(string)  : text to search for
    maxdist(int)        : maximum distance (fuzziness)

Given the search text, returns a close enough suggestion which would yield search results. Close enough is decided by the maxdist parameter. Returns undef on failure.

get_files_by_service()
  args:
    lqi(int)            : live query id
    servicetype(int)    : service type
    offset(int)         : return results from this pos
    maxhits(int)        : number of hits to return

Returns an arrayref containing the files for the specified service type. A maximum of maxhits files are returned, starting at the given offset. Returns undef on failure.

EXPORT

None by default.

Exportable constants

  DATA_DATE
  DATA_NUMERIC
  DATA_STRING
  DATA_STRING_INDEXABLE
  SERVICE_APPLICATIONS
  SERVICE_APPOINTMENTS
  SERVICE_BOOKMARKS
  SERVICE_CONTACTS
  SERVICE_CONVERSATIONS
  SERVICE_DEVELOPMENT_FILES
  SERVICE_DOCUMENTS
  SERVICE_EMAILATTACHMENTS
  SERVICE_EMAILS
  SERVICE_FILES
  SERVICE_FOLDERS
  SERVICE_HISTORY
  SERVICE_IMAGES
  SERVICE_MUSIC
  SERVICE_OTHER_FILES
  SERVICE_PLAYLISTS
  SERVICE_PROJECTS
  SERVICE_TASKS
  SERVICE_TEXT_FILES
  SERVICE_VFS_DEVELOPMENT_FILES
  SERVICE_VFS_DOCUMENTS
  SERVICE_VFS_FILES
  SERVICE_VFS_FOLDERS
  SERVICE_VFS_IMAGES
  SERVICE_VFS_MUSIC
  SERVICE_VFS_OTHER_FILES
  SERVICE_VFS_TEXT_FILES
  SERVICE_VFS_VIDEOS
  SERVICE_VIDEOS

SEE ALSO

The tracker project home at http://www.gnome.org/projects/tracker/

LibTracker::Client specific communication with the author : ltcp@theoldmonk.net

LibTracker::Client homepage at http://www.theoldmonk.net/ltcp/

AUTHOR

Devendra Gera, <gera@theoldmonk.net>

COPYRIGHT AND LICENSE

Copyright (C) 2008 by Devendra Gera

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.8 or, at your option, any later version of Perl 5 you may have available.