]> arthur.barton.de Git - netatalk.git/blobdiff - etc/spotlight/slmod_sparql_map.c
Spotlight: use async Tracker SPARQL API
[netatalk.git] / etc / spotlight / slmod_sparql_map.c
diff --git a/etc/spotlight/slmod_sparql_map.c b/etc/spotlight/slmod_sparql_map.c
deleted file mode 100644 (file)
index 7ac4963..0000000
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
-  Copyright (c) 2012 Frank Lahm <franklahm@gmail.com>
-
-  This program is free software; you can redistribute it and/or modify
-  it under the terms of the GNU General Public License as published by
-  the Free Software Foundation; either version 2 of the License, or
-  (at your option) any later version.
-
-  This program is distributed in the hope that it will be useful,
-  but WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-  GNU General Public License for more details.
-*/
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif /* HAVE_CONFIG_H */
-
-#include <unistd.h>
-#include <string.h>
-#include <stdlib.h>
-
-#include <atalk/logger.h>
-
-#include "slmod_sparql_map.h"
-
-#define NOTSUPPORTED NULL
-#define SPECIAL      NULL
-
-struct spotlight_sparql_map spotlight_sparql_map[] = {
-    /* ssm_spotlight_attr               ssm_enabled, ssm_type,   ssm_sparql_attr */
-    {"*",                               true, ssmt_fts,   "fts:match"},
-
-    /* Filesystem metadata */
-    {"kMDItemFSLabel",                  true, ssmt_num,   NOTSUPPORTED},
-    {"kMDItemDisplayName",              true, ssmt_str,   "nfo:fileName"},
-    {"kMDItemFSName",                   true, ssmt_str,   "nfo:fileName"},
-    {"kMDItemFSContentChangeDate",      true, ssmt_date,  "nfo:fileLastModified"},
-
-    /* Common metadata */
-    {"kMDItemTextContent",              true, ssmt_fts,   "fts:match"},
-    {"kMDItemContentCreationDate",      true, ssmt_date,  "nie:contentCreated"},
-    {"kMDItemContentModificationDate",  true, ssmt_date,  "nfo:fileLastModified"},
-    {"kMDItemAttributeChangeDate",      true, ssmt_date,  "nfo:fileLastModified"},
-    {"kMDItemLastUsedDate",             true, ssmt_date,  "nfo:fileLastAccessed"},
-    {"kMDItemAuthors",                  true, ssmt_str,   "dc:creator"},
-    {"kMDItemCopyright",                true, ssmt_str,   "nie:copyright"},
-    {"kMDItemCountry",                  true, ssmt_str,   "nco:country"},
-    {"kMDItemCreator",                  true, ssmt_str,   "dc:creator"},
-    {"kMDItemDurationSeconds",          true, ssmt_num,   "nfo:duration"},
-    {"kMDItemNumberOfPages",            true, ssmt_num,   "nfo:pageCount"},
-    {"kMDItemTitle",                    true, ssmt_str,   "nie:title"},
-    {"_kMDItemGroupId",                 true, ssmt_type,  SPECIAL},
-    {"kMDItemContentTypeTree",          true, ssmt_type,  SPECIAL},
-
-    /* Image metadata */
-    {"kMDItemPixelWidth",               true, ssmt_num,   "nfo:width"},
-    {"kMDItemPixelHeight",              true, ssmt_num,   "nfo:height"},
-    {"kMDItemColorSpace",               true, ssmt_str,   "nexif:colorSpace"},
-    {"kMDItemBitsPerSample",            true, ssmt_num,   "nfo:colorDepth"},
-    {"kMDItemFocalLength",              true, ssmt_num,   "nmm:focalLength"},
-    {"kMDItemISOSpeed",                 true, ssmt_num,   "nmm:isoSpeed"},
-    {"kMDItemOrientation",              true, ssmt_bool,  "nfo:orientation"},
-    {"kMDItemResolutionWidthDPI",       true, ssmt_num,   "nfo:horizontalResolution"},
-    {"kMDItemResolutionHeightDPI",      true, ssmt_num,   "nfo:verticalResolution"},
-    {"kMDItemExposureTimeSeconds",      true, ssmt_num,   "nmm:exposureTime"},
-
-    /* Audio metadata */
-    {"kMDItemComposer",                 true, ssmt_str,   "nmm:composer"},
-    {"kMDItemMusicalGenre",             true, ssmt_str,   "nfo:genre"},
-
-    {NULL, false, ssmt_str, NULL}
-};
-
-struct MDTypeMap MDTypeMap[] = {
-    {"1",                       kMDTypeMapRDF,      "http://www.semanticdesktop.org/ontologies/2007/03/22/nmo#Email"},
-    {"2",                       kMDTypeMapRDF,      "http://www.semanticdesktop.org/ontologies/2007/03/22/nco#Contact"},
-    {"3",                       kMDTypeMapNotSup,   NULL}, /* PrefPane */
-    {"4",                       kMDTypeMapRDF,      "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Font"},
-    {"5",                       kMDTypeMapRDF,      "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Bookmark"},
-    {"6",                       kMDTypeMapRDF,      "http://www.semanticdesktop.org/ontologies/2007/03/22/nco#Contact"},
-    {"7",                       kMDTypeMapRDF,      "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Video"},
-    {"8",                       kMDTypeMapRDF,      "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Executable"},
-    {"9",                       kMDTypeMapRDF,      "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Folder"},
-    {"10",                      kMDTypeMapRDF,      "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Audio"},
-    {"11",                      kMDTypeMapMime,     "application/pdf"},
-    {"12",                      kMDTypeMapRDF,      "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Presentation"},
-    {"13",                      kMDTypeMapRDF,      "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Image"},
-    {"public.jpeg",             kMDTypeMapMime,     "image/jpeg"},
-    {"public.tiff",             kMDTypeMapMime,     "image/tiff"},
-    {"com.compuserve.gif",      kMDTypeMapMime,     "image/gif"},
-    {"public.png",              kMDTypeMapMime,     "image/png"},
-    {"com.microsoft.bmp",       kMDTypeMapMime,     "image/bmp"},
-    {"public.content",          kMDTypeMapRDF,      "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Document"},
-    {"public.mp3",              kMDTypeMapMime,     "audio/mpeg"},
-    {"public.mpeg-4-audio",     kMDTypeMapMime,     "audio/x-aac"},
-    {"com.apple.application",   kMDTypeMapRDF,      "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Software"},
-    {"public.text",             kMDTypeMapRDF,      "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#TextDocument"},
-    {"public.plain-text",       kMDTypeMapMime,     "text/plain"},
-    {"public.rtf",              kMDTypeMapMime,     "text/rtf"},
-    {"public.html",             kMDTypeMapMime,     "text/html"},
-    {"public.xml",              kMDTypeMapMime,     "text/xml"},
-    {"public.source-code",      kMDTypeMapRDF,      "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#SourceCode"},
-    {NULL,                      kMDTypeMapNotSup,   NULL}
-};
-
-void configure_spotlight_attributes(const char *attributes_in)
-{
-    char *attr, *attributes;
-    int i;
-
-    for (i = 0; spotlight_sparql_map[i].ssm_spotlight_attr != NULL; i++)
-        spotlight_sparql_map[i].ssm_enabled = false;
-
-    /*
-     * Go through the attribute map and for every element scan
-     * attributes_in with strtok(). If it's contained, keep it
-     * enabled, otherwise disable it.
-     */
-
-    attributes = strdup(attributes_in);
-
-    for (attr = strtok(attributes, ","); attr; attr = strtok(NULL, ",")) {
-
-        for (i = 0; spotlight_sparql_map[i].ssm_spotlight_attr != NULL; i++)
-
-            if (strcmp(attr, spotlight_sparql_map[i].ssm_spotlight_attr) == 0) {
-                LOG(log_info, logtype_sl, "Enabling Spotlight attribute: %s",
-                    spotlight_sparql_map[i].ssm_spotlight_attr);
-                spotlight_sparql_map[i].ssm_enabled = true;
-                break;
-        }
-    }
-
-    free(attributes);
-}