From 2afab9e3b16642ed4486c7a2533aeb184b6ec1a1 Mon Sep 17 00:00:00 2001 From: Rhet Turnbull Date: Sun, 11 Dec 2022 23:21:48 -0800 Subject: [PATCH] Added timewarp --function example --- examples/timewarp_filename.py | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 examples/timewarp_filename.py diff --git a/examples/timewarp_filename.py b/examples/timewarp_filename.py new file mode 100644 index 00000000..e729d7f0 --- /dev/null +++ b/examples/timewarp_filename.py @@ -0,0 +1,35 @@ +"""Example function for use with `osxphotos timewarp --function` + +Call this as: `osxphotos timewarp --function timewarp_filename.py::parse_date_time_from_filename` +""" + +from __future__ import annotations + +from datetime import datetime, timedelta +from typing import Callable + +from photoscript import Photo +from strpdatetime import strpdatetime + + +def parse_date_time_from_filename( + photo: Photo, path: str | None, tz_sec: int, tz_name: str, verbose: Callable +) -> tuple[datetime, int]: + """Function for use with `osxphotos timewarp --function` that parses date/time from filename in format "YYYY-MM-DD FILENAME.jpg" + + Args: + photo: Photo object + path: path to photo, which may be None if photo is not on disk + tz_sec: timezone offset from UTC in seconds + tz_name: timezone name + verbose: function to print verbose messages + + Returns: + tuple of (new date/time as datetime.datetime, and new timezone offset from UTC in seconds as int) + """ + filename = photo.filename + datetime = strpdatetime(filename, "^%Y-%m-%d") + + verbose(f"Updating {photo.filename} date/time: {datetime}") + + return datetime, tz_sec