Added before and after functions
This commit is contained in:
		| @@ -191,6 +191,88 @@ class WaybackMachineCDXServerAPI: | ||||
|  | ||||
|         payload["url"] = self.url | ||||
|  | ||||
|     def before( | ||||
|         self, | ||||
|         year: Optional[int] = None, | ||||
|         month: Optional[int] = None, | ||||
|         day: Optional[int] = None, | ||||
|         hour: Optional[int] = None, | ||||
|         minute: Optional[int] = None, | ||||
|         unix_timestamp: Optional[int] = None, | ||||
|         wayback_machine_timestamp: Optional[Union[int, str]] = None, | ||||
|     ) -> CDXSnapshot: | ||||
|         """ | ||||
|         Gets the nearest archive before the given datetime. | ||||
|         """ | ||||
|         if unix_timestamp: | ||||
|             timestamp = unix_timestamp_to_wayback_timestamp(unix_timestamp) | ||||
|         elif wayback_machine_timestamp: | ||||
|             timestamp = str(wayback_machine_timestamp) | ||||
|         else: | ||||
|             now = datetime.utcnow().timetuple() | ||||
|             timestamp = wayback_timestamp( | ||||
|                 year=now.tm_year if year is None else year, | ||||
|                 month=now.tm_mon if month is None else month, | ||||
|                 day=now.tm_mday if day is None else day, | ||||
|                 hour=now.tm_hour if hour is None else hour, | ||||
|                 minute=now.tm_min if minute is None else minute, | ||||
|             ) | ||||
|         self.closest = timestamp | ||||
|         self.sort = "closest" | ||||
|         self.limit = 25000 | ||||
|         for snapshot in self.snapshots(): | ||||
|             if snapshot.timestamp < timestamp: | ||||
|                 return snapshot | ||||
|  | ||||
|         # If a snapshot isn't returned, then none were found. | ||||
|         raise NoCDXRecordFound( | ||||
|             "No records were found before the given date for the query." | ||||
|             + "Either there are no archives before the given date," | ||||
|             + " the URL may not have any archived, or the URL may have been" | ||||
|             + " recently archived and is still not available on the CDX server." | ||||
|             ) | ||||
|  | ||||
|     def after( | ||||
|         self, | ||||
|         year: Optional[int] = None, | ||||
|         month: Optional[int] = None, | ||||
|         day: Optional[int] = None, | ||||
|         hour: Optional[int] = None, | ||||
|         minute: Optional[int] = None, | ||||
|         unix_timestamp: Optional[int] = None, | ||||
|         wayback_machine_timestamp: Optional[Union[int, str]] = None, | ||||
|     ) -> CDXSnapshot: | ||||
|         """ | ||||
|         Gets the nearest archive after the given datetime. | ||||
|         """ | ||||
|         if unix_timestamp: | ||||
|             timestamp = unix_timestamp_to_wayback_timestamp(unix_timestamp) | ||||
|         elif wayback_machine_timestamp: | ||||
|             timestamp = str(wayback_machine_timestamp) | ||||
|         else: | ||||
|             now = datetime.utcnow().timetuple() | ||||
|             timestamp = wayback_timestamp( | ||||
|                 year=now.tm_year if year is None else year, | ||||
|                 month=now.tm_mon if month is None else month, | ||||
|                 day=now.tm_mday if day is None else day, | ||||
|                 hour=now.tm_hour if hour is None else hour, | ||||
|                 minute=now.tm_min if minute is None else minute, | ||||
|             ) | ||||
|         self.closest = timestamp | ||||
|         self.sort = "closest" | ||||
|         self.limit = 25000 | ||||
|         for snapshot in self.snapshots(): | ||||
|             if snapshot.timestamp > timestamp: | ||||
|                 return snapshot | ||||
|  | ||||
|         # If a snapshot isn't returned, then none were found. | ||||
|         raise NoCDXRecordFound( | ||||
|             "No records were found after the given date for the query." | ||||
|             + "Either there are no archives after the given date," | ||||
|             + " the URL may not have any archives, or the URL may have been" | ||||
|             + " recently archived and is still not available on the CDX server." | ||||
|             ) | ||||
|  | ||||
|     def near( | ||||
|         self, | ||||
|         year: Optional[int] = None, | ||||
|   | ||||
		Reference in New Issue
	
	Block a user