[skeb] rename 'data' -> 'file' & add tests

This commit is contained in:
Mike Fährmann
2024-02-10 19:35:50 +01:00
parent f9a8e8cacf
commit 4cfceb23cb
2 changed files with 42 additions and 36 deletions

View File

@@ -34,12 +34,12 @@ class SkebExtractor(Extractor):
if metadata: if metadata:
post.update(metadata) post.update(metadata)
datas = self._get_urls_from_post(response) files = self._get_files_from_post(response)
post["count"] = len(datas) post["count"] = len(files)
yield Message.Directory, post yield Message.Directory, post
for post["num"], data in enumerate(datas, 1): for post["num"], file in enumerate(files, 1):
post.update(data) post.update(file)
url = post["file_url"] url = file["file_url"]
yield Message.Url, url, text.nameext_from_url(url, post) yield Message.Url, url, text.nameext_from_url(url, post)
def posts(self): def posts(self):
@@ -109,47 +109,48 @@ class SkebExtractor(Extractor):
} }
return resp, post return resp, post
def _get_urls_from_post(self, resp): def _get_files_from_post(self, resp):
datas = [] files = []
if self.thumbnails and "og_image_url" in resp: if self.thumbnails and "og_image_url" in resp:
data = {} files.append({
data["content_category"] = "thumb" "content_category": "thumb",
data["file_id"] = "thumb" "file_id" : "thumb",
data["_file_id"] = str(resp["id"]) + "t" "_file_id": str(resp["id"]) + "t",
data["file_url"] = resp["og_image_url"] "file_url": resp["og_image_url"],
datas.append(data) })
if self.article and "article_image_url" in resp: if self.article and "article_image_url" in resp:
url = resp["article_image_url"] url = resp["article_image_url"]
if url: if url:
data = {} files.append({
data["content_category"] = "article" "content_category": "article",
data["file_id"] = "article" "file_id" : "article",
data["_file_id"] = str(resp["id"]) + "a" "_file_id": str(resp["id"]) + "a",
data["file_url"] = url "file_url": url,
datas.append(data) })
for preview in resp["previews"]: for preview in resp["previews"]:
data = {}
data["content_category"] = "preview"
data["file_id"] = data["_file_id"] = preview["id"]
data["file_url"] = preview["url"]
info = preview["information"] info = preview["information"]
data["original"] = { files.append({
"width" : info["width"], "content_category": "preview",
"height" : info["height"], "file_id" : preview["id"],
"byte_size" : info["byte_size"], "_file_id": preview["id"],
"duration" : info["duration"], "file_url": preview["url"],
"frame_rate": info["frame_rate"], "original": {
"software" : info["software"], "width" : info["width"],
"extension" : info["extension"], "height" : info["height"],
"is_movie" : info["is_movie"], "byte_size" : info["byte_size"],
"transcoder": info["transcoder"], "duration" : info["duration"],
} "frame_rate": info["frame_rate"],
datas.append(data) "software" : info["software"],
"extension" : info["extension"],
"is_movie" : info["is_movie"],
"transcoder": info["transcoder"],
},
})
return datas return files
class SkebPostExtractor(SkebExtractor): class SkebPostExtractor(SkebExtractor):

View File

@@ -16,6 +16,8 @@ __tests__ = (
"anonymous" : False, "anonymous" : False,
"body" : r"re:はじめまして。私はYouTubeにてVTuberとして活動をしている湊ラ", "body" : r"re:はじめまして。私はYouTubeにてVTuberとして活動をしている湊ラ",
"count" : 2,
"num" : range(1, 2),
"client" : { "client" : {
"avatar_url" : r"re:https://pbs.twimg.com/profile_images/\d+/\w+\.jpg", "avatar_url" : r"re:https://pbs.twimg.com/profile_images/\d+/\w+\.jpg",
"header_url" : r"re:https://pbs.twimg.com/profile_banners/1375007870291300358/\d+/1500x500", "header_url" : r"re:https://pbs.twimg.com/profile_banners/1375007870291300358/\d+/1500x500",
@@ -60,6 +62,9 @@ __tests__ = (
"#class" : skeb.SkebUserExtractor, "#class" : skeb.SkebUserExtractor,
"#pattern" : r"https://si\.imgix\.net/\w+/uploads/origins/[\w-]+", "#pattern" : r"https://si\.imgix\.net/\w+/uploads/origins/[\w-]+",
"#range" : "1-5", "#range" : "1-5",
"count": int,
"num" : int,
}, },
{ {