From 2da9ab5e55eaf521f652239952fd007b0d173cf2 Mon Sep 17 00:00:00 2001 From: KevinMidboe Date: Mon, 27 Jun 2022 15:20:07 +0200 Subject: [PATCH 1/3] Replaced urllib.request.urlretrieve w/ streaming contents to a local file using shuttil --- memories-downloader.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/memories-downloader.py b/memories-downloader.py index cfec814..ae8c7b6 100644 --- a/memories-downloader.py +++ b/memories-downloader.py @@ -7,6 +7,7 @@ import json import requests import datetime import os +import shutil # Helper Functions @@ -22,6 +23,13 @@ def get_ext(memory_media_type): ext = "jpg" return ext +def download_file_from_url(url, filename): + with requests.get(url, stream=True) as r: + with open(filename, 'wb') as f: + shutil.copyfileobj(r.raw, f) + + return filename + overwrite = False # Overwrites existing useful memory metadata file # Import Memories Data @@ -77,7 +85,7 @@ for memory in memories: print("Downloading File {}:".format(filename), end=" ") try: - urllib.request.urlretrieve(memory["url"], filename) + download_file_from_url(memory["url"], filename) modtime = datetime.datetime.timestamp(memory_datetime) os.utime(filename, (modtime, modtime)) print("Success") From e3c8bbbbebc749d1c8243ed43c6b166fb2d46866 Mon Sep 17 00:00:00 2001 From: KevinMidboe Date: Mon, 27 Jun 2022 15:21:09 +0200 Subject: [PATCH 2/3] Seems like source data structure is updated, changed to handle new Media Type value --- memories-downloader.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/memories-downloader.py b/memories-downloader.py index ae8c7b6..8f326f3 100644 --- a/memories-downloader.py +++ b/memories-downloader.py @@ -19,7 +19,7 @@ def get_datetime(memory_date): def get_ext(memory_media_type): ext = "mp4" - if memory["Media Type"] == "PHOTO": + if memory["Media Type"] == "Image" or memory["Media Type"] == "PHOTO": ext = "jpg" return ext From 1f4adeff1413d500a9659e7becba433ad1b0a5db Mon Sep 17 00:00:00 2001 From: KevinMidboe Date: Mon, 27 Jun 2022 15:21:44 +0200 Subject: [PATCH 3/3] Always define a st value so doesn't throw exception if only downloading files --- memories-downloader.py | 1 + 1 file changed, 1 insertion(+) diff --git a/memories-downloader.py b/memories-downloader.py index 8f326f3..a235fe1 100644 --- a/memories-downloader.py +++ b/memories-downloader.py @@ -31,6 +31,7 @@ def download_file_from_url(url, filename): return filename overwrite = False # Overwrites existing useful memory metadata file +st = datetime.datetime.now() # Import Memories Data