tracker r1146 - trunk/src/trackerd



Author: jamiemcc
Date: Mon Feb 25 01:58:32 2008
New Revision: 1146
URL: http://svn.gnome.org/viewvc/tracker?rev=1146&view=rev

Log:
added web history

Modified:
   trunk/src/trackerd/tracker-db.c
   trunk/src/trackerd/tracker-dbus-methods.c
   trunk/src/trackerd/tracker-utils.c
   trunk/src/trackerd/tracker-utils.h
   trunk/src/trackerd/trackerd.c

Modified: trunk/src/trackerd/tracker-db.c
==============================================================================
--- trunk/src/trackerd/tracker-db.c	(original)
+++ trunk/src/trackerd/tracker-db.c	Mon Feb 25 01:58:32 2008
@@ -918,9 +918,9 @@
 void
 tracker_db_index_file (DBConnection *db_con, FileInfo *info, const char *attachment_uri, const char *attachment_service)
 {
-	char *services_with_metadata[] = {"Documents", "Music", "Videos", "Images", NULL};
-	char *services_with_text[] = {"Documents", "Development", "Text", NULL};
-	char *services_with_thumbs[] = {"Documents", "Images", "Videos", NULL};
+	char *services_with_metadata[] = {"Documents", "Music", "Videos", "Images","WebHistory", NULL};
+	char *services_with_text[] = {"Documents", "Development", "Text", "WebHistory",NULL};
+	char *services_with_thumbs[] = {"Documents", "Images", "Videos", "WebHistory",NULL};
 
 	GHashTable	*meta_table;
 	const char	*ext;
@@ -993,6 +993,41 @@
 		tracker_add_metadata_to_table  (meta_table, g_strdup ("File:Modified"), tracker_date_to_str (info->mtime));
 		tracker_add_metadata_to_table  (meta_table, g_strdup ("File:Accessed"), tracker_date_to_str (info->atime));
 
+                /* need to add special data for web history */
+                if ( attachment_service != NULL && strcmp(attachment_service,"WebHistory") == 0)  {
+                     gchar* meta_file = g_strconcat(dirname,"/.",filename,NULL);
+                     FILE* fp = g_fopen(meta_file, "r");
+                     if (fp != NULL) {
+                          char buf[512];
+                          fgets(buf,512,fp);  //get the first line, it is URL for this web history object
+                          tracker_debug("URL for this WebHistory is %s\n",buf);
+                          tracker_add_metadata_to_table  (meta_table, g_strdup ("Doc:URL"), g_strdup(buf));
+                          fgets(buf,512,fp);
+                          fgets(buf,512,fp);
+                          fgets(buf,512,fp);
+                          fgets(buf,512,fp);  // get the keywords for this file
+                          if (buf != NULL) {
+                              /* format like t:dc:keyword=xxx */
+                              gchar** keys = g_strsplit(buf,"=",0);
+                              if (keys != NULL && strcmp(keys[0],"t:dc:keyword") == 0) {
+                                  char doc_keyword[512];
+                                  int i;
+                                  for (i=0; i<512; i++) doc_keyword[i] = NULL;
+                                  
+                                  strncat(doc_keyword,keys[1],strlen(keys[1])-1);
+                                  tracker_debug("keywords for this is %s\n",doc_keyword);
+                                  tracker_add_metadata_to_table  (meta_table, g_strdup ("Doc:Keywords"), g_strdup(doc_keyword));
+                                  g_strfreev(keys);
+                              }
+                          }
+
+                          fclose(fp);
+                     }
+                     g_free(meta_file);
+                }
+                                
+
+
 		is_external_service = g_str_has_prefix (info->mime, "service/");
 		is_file_indexable = (!info->is_directory && (strcmp (info->mime, "unknown") != 0) && (strcmp (info->mime, "symlink") != 0) && tracker_file_is_indexable (info->uri));
 
@@ -1061,5 +1096,9 @@
 	tracker_db_index_file (db_con, info, NULL, "GaimConversations");
 }
 
-
+void 
+tracker_db_index_webhistory(DBConnection *db_con, FileInfo *info)
+{
+	tracker_db_index_file (db_con, info, NULL, "WebHistory");
+}
 

Modified: trunk/src/trackerd/tracker-dbus-methods.c
==============================================================================
--- trunk/src/trackerd/tracker-dbus-methods.c	(original)
+++ trunk/src/trackerd/tracker-dbus-methods.c	Mon Feb 25 01:58:32 2008
@@ -472,6 +472,14 @@
 
 	if (strcasecmp (option, "Pause") == 0) {
 		tracker->pause_manual = value;
+		
+		if (value) {
+			tracker_log ("trackerd is paused by user");
+		} else {
+			tracker_log ("trackerd is unpaused by user");
+		}
+		
+		
 	} else if (strcasecmp (option, "FastMerges") == 0) {
 		tracker->fast_merges = value;
 		tracker_log ("fast merges set to %d", value);

Modified: trunk/src/trackerd/tracker-utils.c
==============================================================================
--- trunk/src/trackerd/tracker-utils.c	(original)
+++ trunk/src/trackerd/tracker-utils.c	Mon Feb 25 01:58:32 2008
@@ -3873,7 +3873,7 @@
 		return FALSE;
 	}
 
-	if ((st.f_bavail * 100 / st.f_blocks) <= tracker->low_diskspace_limit) {
+	if (((long long) st.f_bavail * 100 / st.f_blocks) <= tracker->low_diskspace_limit) {
 		tracker_error ("Disk space is low!");
 		return TRUE;
 	}

Modified: trunk/src/trackerd/tracker-utils.h
==============================================================================
--- trunk/src/trackerd/tracker-utils.h	(original)
+++ trunk/src/trackerd/tracker-utils.h	Mon Feb 25 01:58:32 2008
@@ -124,6 +124,7 @@
 	INDEX_CONFIG,
 	INDEX_APPLICATIONS,
 	INDEX_FILES,
+	INDEX_WEBHISTORY,
 	INDEX_CRAWL_FILES,
 	INDEX_CONVERSATIONS,	
 	INDEX_EXTERNAL,	

Modified: trunk/src/trackerd/trackerd.c
==============================================================================
--- trunk/src/trackerd/trackerd.c	(original)
+++ trunk/src/trackerd/trackerd.c	Mon Feb 25 01:58:32 2008
@@ -914,6 +914,9 @@
 	} else if (strcmp (service_info, "Files") == 0) {
 		tracker_db_index_file (db_con, info, NULL, NULL);
 
+        } else if (strcmp (service_info, "WebHistory") ==0 ) {
+                tracker_db_index_webhistory (db_con, info);
+
 	} else if (g_str_has_suffix (service_info, "Conversations")) {
 		tracker_db_index_conversation (db_con, info);
 
@@ -1238,7 +1241,28 @@
 							break;
 
 
-						
+					        case INDEX_WEBHISTORY: {
+
+                                                                gchar *firefox_dir;
+                                                                GSList *list = NULL;
+                                                                firefox_dir = g_build_filename(g_get_home_dir(),".xesam/Firefox/ToIndex",NULL);
+                                                                if (tracker_file_is_valid(firefox_dir)) {
+                                                                     list = g_slist_prepend( NULL, firefox_dir);
+ 
+                                                                     tracker_log("Starting firefox web history indexing...");
+                                                                     tracker_add_service_path("WebHistory",firefox_dir);
+
+							             tracker_db_start_transaction (db_con->cache);		
+                                                                     tracker_add_root_directories(list);
+                                                                     process_directory_list(db_con,list, TRUE);
+                                                                     tracker_db_end_transaction (db_con->cache);
+                                                                     g_slist_free(list);
+                                         
+                                                                 }
+                                                        	g_free(firefox_dir);
+                                                        }
+                                                        break;
+
 						case INDEX_EXTERNAL:
 							break;
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]