private static List <FavoriteEntry> GetBookMarksFromDBPath(string dbPath) { var favorites = new List <FavoriteEntry>(); DataTable favoriteDt = null; try { var getBookmarksCommand = new SQLiteCommand( @"select bookmarks.title,places.url,bookmarks.dateAdded from moz_bookmarks as bookmarks, moz_places as places on bookmarks.fk = places.id;"); favoriteDt = SqliteUtils.QueryDataTable(dbPath, getBookmarksCommand); for (int i = 0; i < favoriteDt.Rows.Count; i++) { var row = favoriteDt.Rows[i]; var title = row["title"].ToString(); var time = DateUtils.GetTimeFromNewCentery((long)row["dateAdded"] / TimeToSecondDevideCount); var uri = new Uri(row["url"].ToString()); var favorite = new FavoriteEntry(uri, title, time); favorites.Add(favorite); } } catch (Exception ex) { Logger.WriteLine(ex.Message); return(favorites); } finally { favoriteDt?.Dispose(); } return(favorites); }
public ICollection <HistoryEntry> GetBrowserHistories(DateTime?startTime, DateTime?endTime) { List <HistoryEntry> entryList = new List <HistoryEntry>(); string query = string.Format("SELECT url, title, visit_count, datetime(visit_date/1000000,'unixepoch') AS last_visit " + "FROM {0}, {1} " + "WHERE {0}.id = {1}.place_id", TABLE_NAME, VISITS_TABLE_NAME); foreach (string dbPath in _firefoxDatabasePaths) { DataTable historyDt = SqliteUtils.QueryDataTable(dbPath, new SQLiteCommand(query)); foreach (DataRow row in historyDt.Rows) { Uri uri; DateTime lastVisit; string title; int? visitCount; lastVisit = DateTime.Parse(row["last_visit"].ToString()).ToLocalTime(); if (!DateUtils.IsEntryInTimelimit(lastVisit, startTime, endTime)) { continue; } try { uri = new Uri(row["url"].ToString(), UriKind.Absolute); } catch (UriFormatException) { continue; } title = row["title"].ToString(); title = string.IsNullOrEmpty(title) ? null : title; visitCount = int.TryParse(row["visit_count"].ToString(), out int outVal) ? (int?)outVal : null; HistoryEntry entry = new HistoryEntry(uri, title, lastVisit, visitCount, Browser.Firefox); entryList.Add(entry); } } return(entryList); }