added docstrings and lint with pylint
This commit is contained in:
@@ -1,3 +1,9 @@
|
||||
"""
|
||||
This module exists because backwards compatibility matters.
|
||||
Don't touch this or add any new functionality here and don't use
|
||||
the Url class.
|
||||
"""
|
||||
|
||||
from datetime import datetime, timedelta
|
||||
from typing import Generator, Optional
|
||||
|
||||
@@ -49,12 +55,16 @@ class Url(object):
|
||||
|
||||
if not isinstance(self.timestamp, datetime):
|
||||
raise TypeError("timestamp must be a datetime")
|
||||
elif self.timestamp == datetime.max:
|
||||
|
||||
if self.timestamp == datetime.max:
|
||||
return td_max.days
|
||||
else:
|
||||
|
||||
return (datetime.utcnow() - self.timestamp).days
|
||||
|
||||
def save(self) -> "Url":
|
||||
"""
|
||||
Save the URL on wayback machine.
|
||||
"""
|
||||
self.wayback_machine_save_api = WaybackMachineSaveAPI(
|
||||
self.url, user_agent=self.user_agent
|
||||
)
|
||||
@@ -72,7 +82,9 @@ class Url(object):
|
||||
minute: Optional[int] = None,
|
||||
unix_timestamp: Optional[int] = None,
|
||||
) -> "Url":
|
||||
|
||||
"""
|
||||
Returns the archive of the URL close to a date and time.
|
||||
"""
|
||||
self.wayback_machine_availability_api.near(
|
||||
year=year,
|
||||
month=month,
|
||||
@@ -85,16 +97,25 @@ class Url(object):
|
||||
return self
|
||||
|
||||
def oldest(self) -> "Url":
|
||||
"""
|
||||
Returns the oldest archive of the URL.
|
||||
"""
|
||||
self.wayback_machine_availability_api.oldest()
|
||||
self.set_availability_api_attrs()
|
||||
return self
|
||||
|
||||
def newest(self) -> "Url":
|
||||
"""
|
||||
Returns the newest archive of the URL.
|
||||
"""
|
||||
self.wayback_machine_availability_api.newest()
|
||||
self.set_availability_api_attrs()
|
||||
return self
|
||||
|
||||
def set_availability_api_attrs(self) -> None:
|
||||
"""
|
||||
Set the attributes for total backwards compatibility.
|
||||
"""
|
||||
self.archive_url = self.wayback_machine_availability_api.archive_url
|
||||
self.JSON = self.wayback_machine_availability_api.JSON
|
||||
self.timestamp = self.wayback_machine_availability_api.timestamp()
|
||||
@@ -102,6 +123,10 @@ class Url(object):
|
||||
def total_archives(
|
||||
self, start_timestamp: Optional[str] = None, end_timestamp: Optional[str] = None
|
||||
) -> int:
|
||||
"""
|
||||
Returns an integer which indicates total number of archives for an URL.
|
||||
Useless in my opinion, only here because of backwards compatibility.
|
||||
"""
|
||||
cdx = WaybackMachineCDXServerAPI(
|
||||
self.url,
|
||||
user_agent=self.user_agent,
|
||||
@@ -122,6 +147,9 @@ class Url(object):
|
||||
end_timestamp: Optional[str] = None,
|
||||
match_type: str = "prefix",
|
||||
) -> Generator[str, None, None]:
|
||||
"""
|
||||
yields known URLs for any URL.
|
||||
"""
|
||||
if subdomain:
|
||||
match_type = "domain"
|
||||
if host:
|
||||
@@ -137,4 +165,4 @@ class Url(object):
|
||||
)
|
||||
|
||||
for snapshot in cdx.snapshots():
|
||||
yield (snapshot.original)
|
||||
yield snapshot.original
|
||||
|
Reference in New Issue
Block a user