Esempio n. 1
0
        public void Handle(JObject browserObject, CommandHandlerArgs commandHandlerArgs)
        {
            if (!commandHandlerArgs.Commands.Contains(Constants.Command_GetFavorite))
            {
                return;
            }

            var browserGatherer = Gatherers.AllFavoriteGatherers.FirstOrDefault(p => commandHandlerArgs.BrowserType == p.BrowserName);

            if (browserGatherer == null)
            {
                Logger.WriteLine($"No gatherer matched the specifed name {commandHandlerArgs.BrowserType}");
                return;
            }

            ICollection <FavoriteEntry> favorites = null;

            try {
                Console.WriteLine($"Gathering favorite-{browserGatherer.BrowserName}");
                favorites = browserGatherer.GetBrowserFavorites();
                Console.WriteLine($"Gathering favorite-{browserGatherer.BrowserName} done");
                if (favorites == null || favorites.Count == 0)
                {
                    return;
                }
            }
            catch (Exception ex) {
                Console.WriteLine($"Error occured gathering history-{browserGatherer.BrowserName}:{ex.Message}");
                return;
            }

            if (favorites.Count == 0)
            {
                return;
            }

            var favoriteJArray = new JArray();

            foreach (var favorite in favorites)
            {
                var favoriteJObject = new JObject();
                favoriteJObject[JsonElemName_Uri]          = favorite.Uri;
                favoriteJObject[JsonElemName_Title]        = favorite.Title;
                favoriteJObject[JsonElemName_CreationTime] = favorite.CreationTime?.GetTimeStampFromNewCentery() ?? null;

                favoriteJArray.Add(favoriteJObject);
            }

            browserObject[JsonArrayName_Favorites] = favoriteJArray;
        }
        static void Main(string[] args)
        {
            var argumentSetting = GetArgumentSetting(args);

            if (argumentSetting == null)
            {
                return;
            }

            KillBrowserProcesses();

            var docJObject = new JObject();

            foreach (var browserType in argumentSetting.Value.BrowserTypes)
            {
                Console.WriteLine($"Handling browser {browserType}");
                var browserJObject     = new JObject();
                var commandHandlerArgs = new CommandHandlerArgs {
                    BrowserType = browserType,
                    Commands    = argumentSetting.Value.Commands
                };

                foreach (var commandHandler in CommandHandlers.AllCommandHandlers)
                {
                    commandHandler.Handle(browserJObject, commandHandlerArgs);
                }

                docJObject[browserType] = browserJObject;
                Console.WriteLine($"Handling browser {browserType} done");
            }

            Console.WriteLine($"Saving results to {argumentSetting.Value.OutputFilePath}");

            try {
                using (var textWriter = new StreamWriter(argumentSetting.Value.OutputFilePath)) {
                    var jsonWriter = new JsonTextWriter(textWriter);
                    jsonWriter.Formatting = Formatting.Indented;

                    docJObject.WriteTo(jsonWriter);
                }
            }
            catch (Exception ex) {
                Console.Error.WriteLine($"Error occured saving result:{ex.Message}");
                return;
            }

            Console.WriteLine($"Saving results to {argumentSetting.Value.OutputFilePath} done");
        }
        public void Handle(JObject browserJObject, CommandHandlerArgs commandHandlerArgs)
        {
            if (!commandHandlerArgs.Commands.Contains(Command_GetHistory))
            {
                return;
            }

            var browserGatherer = Gatherers.AllHistoryGatherers.FirstOrDefault(p => commandHandlerArgs.BrowserType == p.Name);

            if (browserGatherer == null)
            {
                Logger.WriteLine($"No gatherer matched the specifed name {commandHandlerArgs.BrowserType}");
                return;
            }

            ICollection <HistoryEntry> histories = null;


            try {
                Console.WriteLine($"Gathering history-{browserGatherer.Name}");
                histories = browserGatherer.GetBrowserHistories(null, null);
                Console.WriteLine($"Gathering history-{browserGatherer.Name} done");
                if (histories == null || histories.Count == 0)
                {
                    return;
                }
            }
            catch (Exception ex) {
                Console.WriteLine($"Error occured gathering history-{browserGatherer.Name}:{ex.Message}");
                Logger.WriteLine(ex.Message);
                return;
            }


            var historyJArray = new JArray();

            foreach (var history in histories)
            {
                var historyJObject = new JObject();
                historyJObject[JsonElemName_Uri]           = history.Uri;
                historyJObject[JsonElemName_Title]         = history.Title;
                historyJObject[JsonElemName_LastVisitTime] = history.LastVisitTime.GetTimeStampFromNewCentery();
                historyJObject[JsonElemName_VisitCount]    = history.SafeVisitCount;

                historyJArray.Add(historyJObject);
            }
            browserJObject[JsonArrayName_Histories] = historyJArray;
        }
        public void Handle(JObject browserObject, CommandHandlerArgs commandHandlerArgs)
        {
            if (!commandHandlerArgs.Commands.Contains(Constants.Command_GetCache))
            {
                return;
            }

            var browserGatherer = Gatherers.AllCachesGatherers.FirstOrDefault(p => p.BrowserName == commandHandlerArgs.BrowserType);

            if (browserGatherer == null)
            {
                Console.WriteLine($"No gatherer matched the specifed name {commandHandlerArgs.BrowserType}");
                return;
            }

            ICollection <CacheEntry> caches = null;

            try {
                Console.WriteLine($"Gathering cache-{browserGatherer.BrowserName}");
                caches = browserGatherer.GetBrowserCaches();
                Console.WriteLine($"Gathering cache-{browserGatherer.BrowserName} done");
                if (caches == null || caches.Count == 0)
                {
                    return;
                }
            }
            catch (Exception ex) {
                Console.WriteLine($"Error occured Gathering cache-{browserGatherer.BrowserName}");
                return;
            }


            var cacheJArray = new JArray();

            foreach (var cache in caches)
            {
                var cacheObject = new JObject();
                cacheObject[JsonElemName_Uri]           = cache.Uri;
                cacheObject[JsonElemName_Size]          = cache.Size;
                cacheObject[JsonElemName_VisitCount]    = cache.VisitCount;
                cacheObject[JsonElemName_LastVisitTime] = cache.LastVisitTime.GetTimeStampFromNewCentery();

                cacheJArray.Add(cacheObject);
            }

            browserObject[JsonArrayName_Caches] = cacheJArray;
        }