searchengine: Ensure some GFileInfo fields
The search provider should make it sure there are some specific GFileInfo fields set. Fix the mimetype extraction from the query, and use that to fill in the missing gaps the best we can.
This commit is contained in:
committed by
Jan Alexander Steffens (heftig)
parent
f550bd6391
commit
4baa0b47e2
@@ -41,7 +41,7 @@
|
||||
#define SEARCH_QUERY_BASE(__PATTERN__) \
|
||||
"SELECT ?url " \
|
||||
" nfo:fileName(?urn) " \
|
||||
" nie:mimeType(?urn)" \
|
||||
" nie:mimeType(?ie)" \
|
||||
" nfo:fileSize(?urn)" \
|
||||
" nfo:fileLastModified(?urn)" \
|
||||
"FROM tracker:FileSystem " \
|
||||
@@ -49,6 +49,7 @@
|
||||
" ?urn a nfo:FileDataObject ;" \
|
||||
" nie:url ?url ; " \
|
||||
" fts:match ~match . " \
|
||||
" OPTIONAL { ?urn nie:interpretedAs ?ie } ." \
|
||||
__PATTERN__ \
|
||||
"} " \
|
||||
"ORDER BY DESC(fts:rank(?urn)) DESC(?url)"
|
||||
@@ -145,7 +146,18 @@ create_file_info (TrackerSparqlCursor *cursor)
|
||||
|
||||
str = tracker_sparql_cursor_get_string (cursor, 2, NULL);
|
||||
if (str)
|
||||
g_file_info_set_content_type (info, str);
|
||||
{
|
||||
g_file_info_set_content_type (info, str);
|
||||
g_file_info_set_attribute_uint32 (info, "standard::type",
|
||||
strcmp (str, "inode/directory") == 0 ?
|
||||
G_FILE_TYPE_DIRECTORY :
|
||||
G_FILE_TYPE_REGULAR);
|
||||
}
|
||||
else
|
||||
{
|
||||
g_file_info_set_content_type (info, "application/text");
|
||||
g_file_info_set_attribute_uint32 (info, "standard::type", G_FILE_TYPE_UNKNOWN);
|
||||
}
|
||||
|
||||
g_file_info_set_size (info,
|
||||
tracker_sparql_cursor_get_integer (cursor, 3));
|
||||
|
||||
Reference in New Issue
Block a user