X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=etc%2Fafpd%2Fspotlight_SPARQL_map.c;h=39ef39e0215982074e3c3d779b99186ddc4f5e87;hb=4b0e8de531c0eb79598e4a080713ece90da597e4;hp=553e7639c7a840a6bc47ae34399910d1171c846e;hpb=4612605356d48e60d5017a8dabb4b97eff16a229;p=netatalk.git diff --git a/etc/afpd/spotlight_SPARQL_map.c b/etc/afpd/spotlight_SPARQL_map.c index 553e7639..39ef39e0 100644 --- a/etc/afpd/spotlight_SPARQL_map.c +++ b/etc/afpd/spotlight_SPARQL_map.c @@ -20,13 +20,81 @@ #include "spotlight_SPARQL_map.h" +#define NOTSUPPORTED NULL +#define SPECIAL NULL + struct spotlight_sparql_map spotlight_sparql_map[] = { -/* ssm_spotlight_attr ssm_sparql_attr ssm_sparql_query_fmtstr */ - {"*", "fts:match", "?x fts:match '%s'"}, - {"kMDItemTextContent", "fts:match", "?x fts:match '%s'"}, - {"kMDItemDisplayName", "nfo:fileName", "?x nfo:fileName ?y FILTER(regex(?y, '%s'))"}, - {"kMDItemContentCreationDate", "nfo:fileCreated", "?x nfo:fileCreated '%s'"}, - {"kMDItemFSContentChangeDate", "nfo:fileLastModified", "?x nfo:fileLastModified '%s'"}, - {"kMDItemContentModificationDate", "nfo:fileLastModified", "?x nfo:fileLastModified '%s'"}, - {NULL, NULL, NULL} + /* ssm_spotlight_attr ssm_type, ssm_sparql_attr */ + {"*", ssmt_fts, "fts:match"}, + + /* Filesystem metadata */ + {"kMDItemFSLabel", ssmt_num, NOTSUPPORTED}, + {"kMDItemDisplayName", ssmt_str, "nfo:fileName"}, + {"kMDItemFSName", ssmt_str, "nfo:fileName"}, + {"kMDItemFSContentChangeDate", ssmt_date, "nfo:fileLastModified"}, + + /* Common metadata */ + {"kMDItemTextContent", ssmt_fts, "fts:match"}, + {"kMDItemContentCreationDate", ssmt_date, "nie:contentCreated"}, + {"kMDItemContentModificationDate", ssmt_date, "nfo:fileLastModified"}, + {"kMDItemAttributeChangeDate", ssmt_date, "nfo:fileLastModified"}, + {"kMDItemAuthors", ssmt_str, "dc:creator"}, + {"kMDItemCopyright", ssmt_str, "nie:copyright"}, + {"kMDItemCountry", ssmt_str, "nco:country"}, + {"kMDItemCreator", ssmt_str, "dc:creator"}, + {"kMDItemDurationSeconds", ssmt_num, "nfo:duration"}, + {"kMDItemNumberOfPages", ssmt_num, "nfo:pageCount"}, + {"kMDItemTitle", ssmt_str, "nie:title"}, + {"_kMDItemGroupId", ssmt_type, SPECIAL}, + {"kMDItemContentTypeTree", ssmt_type, SPECIAL}, + + /* Image metadata */ + {"kMDItemPixelWidth", ssmt_num, "nfo:width"}, + {"kMDItemPixelHeight", ssmt_num, "nfo:height"}, + {"kMDItemColorSpace", ssmt_str, "nexif:colorSpace"}, + {"kMDItemBitsPerSample", ssmt_num, "nfo:colorDepth"}, + {"kMDItemFocalLength", ssmt_num, "nmm:focalLength"}, + {"kMDItemISOSpeed", ssmt_num, "nmm:isoSpeed"}, + {"kMDItemOrientation", ssmt_bool, "nfo:orientation"}, + {"kMDItemResolutionWidthDPI", ssmt_num, "nfo:horizontalResolution"}, + {"kMDItemResolutionHeightDPI", ssmt_num, "nfo:verticalResolution"}, + {"kMDItemExposureTimeSeconds", ssmt_num, "nmm:exposureTime"}, + + /* Audio metadata */ + {"kMDItemComposer", ssmt_str, "nmm:composer"}, + {"kMDItemMusicalGenre", ssmt_str, "nfo:genre"}, + + {NULL, 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} };