From 2e487e88d30c0ce72da4ac4741dbd3c65b5dcc67 Mon Sep 17 00:00:00 2001 From: Akash Mahanty Date: Sun, 16 Jan 2022 21:29:43 +0530 Subject: [PATCH] define __len__ on Url objects, if any method not used prior to len op then default to len of oldest archive. --- waybackpy/wrapper.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/waybackpy/wrapper.py b/waybackpy/wrapper.py index ecaabb2..574ad04 100644 --- a/waybackpy/wrapper.py +++ b/waybackpy/wrapper.py @@ -3,6 +3,7 @@ from .availability_api import WaybackMachineAvailabilityAPI from .cdx_api import WaybackMachineCDXServerAPI from .utils import DEFAULT_USER_AGENT from .exceptions import WaybackError +from datetime import datetime, timedelta class Url: @@ -19,6 +20,19 @@ class Url: self.newest() return self.archive_url + def __len__(self): + td_max = timedelta( + days=999999999, hours=23, minutes=59, seconds=59, microseconds=999999 + ) + + if not self.timestamp: + self.oldest() + + if self.timestamp == datetime.max: + return td_max.days + + return (datetime.utcnow() - self.timestamp).days + def save(self): self.wayback_machine_save_api = WaybackMachineSaveAPI( self.url, user_agent=self.user_agent