Separate metadata from handle_url into handle_metadata, commenting

pull/511/head
Gio 5 years ago
parent c20bb5c338
commit c0b9ad678d

@ -69,6 +69,7 @@ class PatreonExtractor(Extractor):
post["type"] = "content" post["type"] = "content"
yield Message.Url, url, text.nameext_from_url(url, post) yield Message.Url, url, text.nameext_from_url(url, post)
# Metadata for post using dummy url for formatting
post.update({"metadata_only": True}) post.update({"metadata_only": True})
url = post.get("creator").get("image_url") url = post.get("creator").get("image_url")
yield Message.Metadata, url, text.nameext_from_url(url, post) yield Message.Metadata, url, text.nameext_from_url(url, post)

@ -99,9 +99,8 @@ class Job():
elif msg[0] == Message.Metadata: elif msg[0] == Message.Metadata:
_, url, kwds = msg _, url, kwds = msg
if self.pred_url(url, kwds): self.update_kwdict(kwds)
self.update_kwdict(kwds) self.handle_metadata(url, kwds)
self.handle_url(url, kwds)
elif msg[0] == Message.Version: elif msg[0] == Message.Version:
if msg[1] != 1: if msg[1] != 1:
@ -194,9 +193,6 @@ class DownloadJob(Job):
for pp in postprocessors: for pp in postprocessors:
pp.prepare(pathfmt) pp.prepare(pathfmt)
if kwdict.get("metadata_only"):
return
if pathfmt.exists(archive): if pathfmt.exists(archive):
self.handle_skip() self.handle_skip()
return return
@ -238,6 +234,19 @@ class DownloadJob(Job):
pp.run_after(pathfmt) pp.run_after(pathfmt)
self._skipcnt = 0 self._skipcnt = 0
def handle_metadata(self, url, kwdict, fallback=None):
"""Download the resource specified in 'url'"""
postprocessors = self.postprocessors
pathfmt = self.pathfmt
# prepare download
pathfmt.set_filename(kwdict)
if postprocessors:
for pp in postprocessors:
pp.prepare(pathfmt)
return
def handle_urllist(self, urls, kwdict): def handle_urllist(self, urls, kwdict):
"""Download the resource specified in 'url'""" """Download the resource specified in 'url'"""
fallback = iter(urls) fallback = iter(urls)
@ -510,6 +519,9 @@ class DataJob(Job):
def handle_url(self, url, kwdict): def handle_url(self, url, kwdict):
self.data.append((Message.Url, url, self.filter(kwdict))) self.data.append((Message.Url, url, self.filter(kwdict)))
def handle_metadata(self, url, kwdict):
self.data.append((Message.Url, url, self.filter(kwdict)))
def handle_urllist(self, urls, kwdict): def handle_urllist(self, urls, kwdict):
self.data.append((Message.Urllist, list(urls), self.filter(kwdict))) self.data.append((Message.Urllist, list(urls), self.filter(kwdict)))

@ -17,6 +17,7 @@ class Metadata_bypostPP(MetadataPP):
MetadataPP.__init__(self, pathfmt, options) MetadataPP.__init__(self, pathfmt, options)
def prepare(self, pathfmt): def prepare(self, pathfmt):
# Only run this processor on metadata messages, not individual images.
if pathfmt.kwdict.get("metadata_only"): if pathfmt.kwdict.get("metadata_only"):
MetadataPP.run(self, pathfmt) MetadataPP.run(self, pathfmt)

Loading…
Cancel
Save