[gimp-web] tools: added upload progress output to virustotal_uploader.py
- From: Michael Schumacher <schumaml src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp-web] tools: added upload progress output to virustotal_uploader.py
- Date: Mon, 26 Apr 2021 20:32:34 +0000 (UTC)
commit a77df5974a3f35c8653c761c46758ff1707f10ae
Author: Michael Schumacher <schumaml gmx de>
Date: Mon Apr 26 22:31:41 2021 +0200
tools: added upload progress output to virustotal_uploader.py
tools/downloads/virustotal-upload.py | 23 +++++++++++++++++++++--
1 file changed, 21 insertions(+), 2 deletions(-)
---
diff --git a/tools/downloads/virustotal-upload.py b/tools/downloads/virustotal-upload.py
index 3ce36f6c..cba69632 100755
--- a/tools/downloads/virustotal-upload.py
+++ b/tools/downloads/virustotal-upload.py
@@ -3,6 +3,7 @@
import os
import argparse
import requests
+from requests_toolbelt import MultipartEncoder, MultipartEncoderMonitor
parser = argparse.ArgumentParser(description='Upload a large file to VirusTotal')
parser.add_argument('apikey', metavar='<apikey>',
@@ -29,10 +30,28 @@ if response.status_code == 200:
upload_url = json['data']
files = {'file': open(os.path.abspath(args.file), 'rb')}
-
+
+ def create_callback(encoder):
+ length = encoder.len
+
+ def upload_callback(monitor):
+ print("Uploaded " + str(monitor.bytes_read) + " of " + str(length) + " bytes - "
+ + str(round(100*monitor.bytes_read/length, 2)) + "%", end='\r')
+
+ return upload_callback
+
+ encoder = MultipartEncoder(files)
+ callback = create_callback(encoder);
+ monitor = MultipartEncoderMonitor(encoder, callback)
+
# upload file
# see https://developers.virustotal.com/v3.0/reference#files-scan
- response = requests.post(url=upload_url, headers=headers, files=files)
+ try:
+ response = requests.post(url=upload_url, headers=headers, data=monitor)
+ except KeyboardInterrupt:
+ print("");
+ print("Upload interrupted by user.")
+ exit(1);
# response JSON
# {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]