Apply mikf's diff regarding Archived.moe
Moved (and refactored) code into remote() Added a check for fixup_timestamp
This commit is contained in:
@@ -26,6 +26,9 @@ class FoolfuukaExtractor(BaseExtractor):
|
||||
self.remote = self._remote_direct
|
||||
elif self.category == "archivedmoe":
|
||||
self.referer = False
|
||||
self.fixup_timestamp = True
|
||||
else:
|
||||
self.fixup_timestamp = False
|
||||
|
||||
def items(self):
|
||||
yield Message.Directory, self.metadata()
|
||||
@@ -36,15 +39,6 @@ class FoolfuukaExtractor(BaseExtractor):
|
||||
url = media["media_link"]
|
||||
|
||||
if not url and "remote_media_link" in media:
|
||||
remote_media_link = media["remote_media_link"]
|
||||
if "/b/" not in remote_media_link and \
|
||||
remote_media_link.startswith("https://archived.moe/"):
|
||||
filename = media["media"].rpartition(".")[0]
|
||||
if len(filename) > 13:
|
||||
filename_remainder = len(filename) - 13
|
||||
media["remote_media_link"] = remote_media_link.replace(
|
||||
filename, filename[:-filename_remainder]
|
||||
)
|
||||
url = self.remote(media)
|
||||
if url and url[0] == "/":
|
||||
url = self.root + url
|
||||
@@ -66,9 +60,18 @@ class FoolfuukaExtractor(BaseExtractor):
|
||||
"""Resolve a remote media link"""
|
||||
page = self.request(media["remote_media_link"]).text
|
||||
url = text.extr(page, 'http-equiv="Refresh" content="0; url=', '"')
|
||||
if url.endswith(".webm") and \
|
||||
url.startswith("https://thebarchive.com/"):
|
||||
return url[:-1]
|
||||
|
||||
if url.startswith("https://thebarchive.com/"):
|
||||
# '.webm' -> '.web' (#5116)
|
||||
if url.endswith(".webm"):
|
||||
url = url[:-1]
|
||||
elif self.fixup_timestamp:
|
||||
# trim filename/timestamp to 13 characters (#7652)
|
||||
path, _, filename = url.rpartition("/")
|
||||
name, _, ext = filename.rpartition(".")
|
||||
if len(name) > 13:
|
||||
url = "{}/{}.{}".format(path, name[:13], ext)
|
||||
|
||||
return url
|
||||
|
||||
@staticmethod
|
||||
|
||||
Reference in New Issue
Block a user