@@ -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()
|
||||
@@ -57,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
|
||||
|
||||
@@ -35,6 +35,16 @@ __tests__ = (
|
||||
),
|
||||
},
|
||||
|
||||
{
|
||||
"#url" : "https://archived.moe/a/thread/279540316/",
|
||||
"#comment" : "filename/timestamp fixup for redirect URL (#7652)",
|
||||
"#category": ("foolfuuka", "archivedmoe", "thread"),
|
||||
"#class" : foolfuuka.FoolfuukaThreadExtractor,
|
||||
"#urls" : (
|
||||
"http://desuarchive.org/a/full_image/1749537017533.jpg",
|
||||
),
|
||||
},
|
||||
|
||||
{
|
||||
"#url" : "https://archived.moe/gd/",
|
||||
"#category": ("foolfuuka", "archivedmoe", "board"),
|
||||
|
||||
Reference in New Issue
Block a user