23 package org.sleuthkit.autopsy.recentactivity;
26 import java.io.FileNotFoundException;
27 import java.util.ArrayList;
28 import java.util.List;
29 import java.util.logging.Level;
30 import org.openide.util.Exceptions;
31 import org.openide.util.NbBundle;
49 private final List<Extract>
extracters =
new ArrayList<>();
63 Extract registry =
new ExtractRegistry();
64 Extract iexplore =
new ExtractIE();
65 Extract recentDocuments =
new RecentDocumentsByLnk();
66 Extract chrome =
new Chrome();
67 Extract firefox =
new Firefox();
68 Extract SEUQA =
new SearchEngineURLQueryAnalyzer();
70 extracters.add(chrome);
71 extracters.add(firefox);
72 extracters.add(iexplore);
73 extracters.add(recentDocuments);
74 extracters.add(SEUQA);
75 extracters.add(registry);
77 browserExtracters.add(chrome);
78 browserExtracters.add(firefox);
79 browserExtracters.add(iexplore);
81 for (Extract extracter : extracters) {
89 NbBundle.getMessage(this.getClass(),
90 "RAImageIngestModule.process.started",
91 dataSource.getName())));
95 ArrayList<String> errors =
new ArrayList<>();
97 for (
int i = 0; i < extracters.size(); i++) {
98 Extract extracter = extracters.get(i);
100 logger.log(Level.INFO,
"Recent Activity has been canceled, quitting before {0}", extracter.getName());
104 progressBar.
progress(extracter.getName(), i);
107 extracter.process(dataSource, context);
108 }
catch (Exception ex) {
109 logger.log(Level.SEVERE,
"Exception occurred in " + extracter.getName(), ex);
110 subCompleted.append(NbBundle.getMessage(
this.getClass(),
"RAImageIngestModule.process.errModFailed",
111 extracter.getName()));
116 errors.addAll(extracter.getErrorMessages());
120 StringBuilder errorMessage =
new StringBuilder();
121 String errorMsgSubject;
123 if (errors.isEmpty() ==
false) {
126 NbBundle.getMessage(
this.getClass(),
"RAImageIngestModule.process.errMsg.errsEncountered"));
127 for (String msg : errors) {
128 errorMessage.append(
"<li>").append(msg).append(
"</li>\n");
130 errorMessage.append(
"</ul>\n");
132 if (errors.size() == 1) {
133 errorMsgSubject = NbBundle.getMessage(this.getClass(),
"RAImageIngestModule.process.errMsgSub.oneErr");
135 errorMsgSubject = NbBundle.getMessage(this.getClass(),
136 "RAImageIngestModule.process.errMsgSub.nErrs", errors.size());
139 errorMessage.append(NbBundle.getMessage(
this.getClass(),
"RAImageIngestModule.process.errMsg.noErrs"));
140 errorMsgSubject = NbBundle.getMessage(this.getClass(),
"RAImageIngestModule.process.errMsgSub.noErrs");
143 NbBundle.getMessage(this.getClass(),
144 "RAImageIngestModule.process.ingestMsg.finished",
145 dataSource.getName(), errorMsgSubject),
146 errorMessage.toString());
149 StringBuilder historyMsg =
new StringBuilder();
151 NbBundle.getMessage(
this.getClass(),
"RAImageIngestModule.process.histMsg.title", dataSource.getName()));
152 for (Extract module : browserExtracters) {
153 historyMsg.append(
"<li>").append(module.getName());
154 historyMsg.append(
": ").append((module.foundData()) ? NbBundle
155 .getMessage(this.getClass(),
"RAImageIngestModule.process.histMsg.found") : NbBundle
156 .getMessage(this.getClass(),
"RAImageIngestModule.process.histMsg.notFnd"));
157 historyMsg.append(
"</li>");
159 historyMsg.append(
"</ul>");
161 NbBundle.getMessage(this.getClass(),
162 "RAImageIngestModule.process.ingestMsg.results",
163 dataSource.getName()),
164 historyMsg.toString());
171 for (
int i = 0; i < extracters.size(); i++) {
172 Extract extracter = extracters.get(i);
174 extracter.complete();
175 }
catch (Exception ex) {
176 logger.log(Level.SEVERE,
"Exception occurred when completing " + extracter.getName(), ex);
177 subCompleted.append(NbBundle.getMessage(
this.getClass(),
"RAImageIngestModule.complete.errMsg.failed",
178 extracter.getName()));
196 String tmpDir = a_case.
getTempDirectory() + File.separator +
"RecentActivity" + File.separator + mod;
197 File dir =
new File(tmpDir);
198 if (dir.exists() ==
false) {
215 String tmpDir = a_case.
getModuleDirectory() + File.separator +
"RecentActivity" + File.separator + mod;
216 File dir =
new File(tmpDir);
217 if (dir.exists() ==
false) {
final List< Extract > browserExtracters
static final Logger logger
String getTempDirectory()
final List< Extract > extracters
static String getRATempPath(Case a_case, String mod)
StringBuilder subCompleted
static IngestMessage createMessage(MessageType messageType, String source, String subject, String detailsHtml)
ProcessResult process(Content dataSource, DataSourceIngestModuleProgress progressBar)
static String getRAOutputPath(Case a_case, String mod)
void postMessage(final IngestMessage message)
String getModuleDirectory()
void startUp(IngestJobContext context)
boolean dataSourceIngestIsCancelled()
void switchToDeterminate(int workUnits)
synchronized static Logger getLogger(String name)
void progress(int workUnits)
static synchronized IngestServices getInstance()