From 00987ac688a32016230f48cdf09ed210c4dae32e Mon Sep 17 00:00:00 2001
From: Ruben Nogueira <40404708+rubnogueira@users.noreply.github.com>
Date: Sun, 24 May 2020 15:27:38 +0100
Subject: [PATCH] Progress tweaks
---
modules/report/tiktok.py | 2 +-
psy/extractor.py | 8 +++-----
psy/ingest.py | 19 +++++++------------
psy/processor.py | 2 +-
template/assets/js/report.js | 18 ++++--------------
5 files changed, 16 insertions(+), 33 deletions(-)
diff --git a/modules/report/tiktok.py b/modules/report/tiktok.py
index 3f0cf24..e7a1738 100644
--- a/modules/report/tiktok.py
+++ b/modules/report/tiktok.py
@@ -264,7 +264,7 @@ def get_videos(self):
video = {}
video["key"] = os.path.basename(entry)
- video["last_modified"] = ""
+ video["last_modified"] = 0
videos.append(video)
logging.info("{} video(s) found".format(len(videos)))
diff --git a/psy/extractor.py b/psy/extractor.py
index d824234..e5ca815 100644
--- a/psy/extractor.py
+++ b/psy/extractor.py
@@ -20,8 +20,8 @@ def dump_apps(self):
if self.dsprocessor:
self.progress.setProgressText(' Extracting application data ({}).\n Please wait.'.format(app_id))
else:
- self.progress.progress('Extracting application data ({})'.format(app_id))
-
+ self.progress.next_job('Extracting application data ({})'.format(app_id))
+
for serial, folder in self.extract.dump_from_adb(app_id, devices = self.devices).items():
# If the device not in the list
if not folders.get(serial):
@@ -31,8 +31,6 @@ def dump_apps(self):
if not folder in folders[serial]:
folders[serial].append(folder)
- #self.progressJob.next_job("Extracting {}".format(app_id))
-
for serial, folderslist in folders.items():
extracted_list = []
@@ -56,7 +54,7 @@ def extract_dumps(self, serial, folder):
if self.dsprocessor:
self.progress.setProgressText(' Handling extracted data from {}.\n Please wait.'.format(serial))
else:
- self.progress.progress('Handling extracted data from {}'.format(serial))
+ self.progress.change_text('Handling extracted data from {}'.format(serial))
for filename in files:
if '_internal.tar.gz' in filename:
diff --git a/psy/ingest.py b/psy/ingest.py
index 46bffe3..10afc0b 100644
--- a/psy/ingest.py
+++ b/psy/ingest.py
@@ -53,19 +53,21 @@ def process(self, dataSource, progressBar):
#Initialize list of possible data sources
data_sources = []
+ max_apps = len(Utils.get_all_packages().values())
+
#Extract method for adb selected #THIS IS ONLY USED IN <= AUTOPSY 4.15
if self.method == "method_adb":
#Get list of selected apps to extract
self.apps = json.loads(self.settings.getSetting('apps'))
- jobs = len(self.apps)*3 #extract, analyser, index
+ jobs = max_apps * 3 #extract, analyser, index
self.progressJob = ProgressJob(progressBar, jobs)
self.progressJob.next_job("Extracting from ADB")
logging.info("Starting ADB")
#Variable used to store all folders for each device
- folders = Extractor(self.apps, DeviceCommunication.list_devices(), progressBar, dsprocessor = False).dump_apps()
+ folders = Extractor(self.apps, DeviceCommunication.list_devices(), self.progressJob, dsprocessor = False).dump_apps()
# Add one datasource for each device, with the list of the possible folders
for serial, folders_list in folders.items():
@@ -85,14 +87,7 @@ def process(self, dataSource, progressBar):
logging.info("Using Selected Datasource")
data_sources.append(dataSource)
- # if self.method == "method_importfile":
- # self.progressJob = ProgressJob(progressBar, len(data_sources)) #indexing ( x1)
- # else:
- jobs = 0
- for source in data_sources:
- jobs = jobs + len(self.fileManager.findFiles(source, "%_internal.tar.gz"))
-
- self.progressJob = ProgressJob(progressBar, 2 * jobs) #indexing and analying
+ self.progressJob = ProgressJob(progressBar, max_apps * 2) #indexing and analying
# For each data source, we will process it each one
@@ -194,7 +189,7 @@ def process_by_datasource(self, dataSource):
report_folder_path = os.path.join(temp_directory, app_id, str(report_number)) #report path
Utils.check_and_generate_folder(report_folder_path)
- self.progressJob.change_text("Analyzing Information for {} ({})".format(dataSource.getName(), app_id))
+ self.progressJob.next_job("Analyzing Information for {} ({})".format(dataSource.getName(), app_id))
# Folder to analyze
analyzer = Analyzer(app_id, base_path, report_folder_path)
@@ -222,7 +217,7 @@ def process_by_datasource(self, dataSource):
except:
continue
- self.progressJob.next_job("Processing report {} ".format(app_id))
+ self.progressJob.change_text("Processing report {} ".format(app_id))
# Since we can have multiple json files for multiple apps, we have to track how many reports exists for each app
if not reports_by_app.get(app_id):
reports_by_app[app_id] = []
diff --git a/psy/processor.py b/psy/processor.py
index cab013b..f577aa4 100644
--- a/psy/processor.py
+++ b/psy/processor.py
@@ -112,7 +112,7 @@ def initComponents(self):
self.p_method = SettingsUtils.createPanel(ptop = 15)
- self.sp2 = SettingsUtils.createSeparators(1)
+ self.sp2 = SettingsUtils.createSeparators(0)
self.p_info.add(self.sp2, BorderLayout.SOUTH)
self.p_method.add(JLabel("Extract user data from:"))
diff --git a/template/assets/js/report.js b/template/assets/js/report.js
index ca6936a..9860776 100644
--- a/template/assets/js/report.js
+++ b/template/assets/js/report.js
@@ -236,7 +236,6 @@ function renderMedia() {
content += ``;
$("#page-builder").html(content);
- $(".button-copy").on("click", copyText);
renderMediaList("all")
@@ -244,6 +243,9 @@ function renderMedia() {
renderMediaList(this.value)
});
+
+ $(".button-copy").on("click", copyText);
+
}
function renderMediaList(filter){
@@ -271,7 +273,7 @@ function renderMediaList(filter){
return
}
- mediaListing += ``;
+ mediaListing += ``;
if ((item["type"] === "video" && (filter === "all" || filter === "video")) || (item["type"] === "audio" && (filter === "all" || filter === "video"))){
mediaListing += `Download for External Player`
@@ -291,18 +293,6 @@ function renderMediaList(filter){
return mediaListing
}
-
-function copyToClipboard(str) {
- const el = document.createElement('input');
- el.value = str;
- document.body.appendChild(el);
- el.select();
- document.execCommand('copy');
- document.body.removeChild(el);
-};
-
-
-
function pageBuilder(titlenumber) {
//if (!(title in reportData)) {
// return;