MCPcopy
hub / github.com/scrapy/scrapy / media_downloaded

Method media_downloaded

scrapy/pipelines/files.py:616–682  ·  view source on GitHub ↗
(
        self,
        response: Response,
        request: Request,
        info: MediaPipeline.SpiderInfo,
        *,
        item: Any = None,
    )

Source from the content-addressed store, hash-verified

614 raise FileException
615
616 async def media_downloaded(
617 self,
618 response: Response,
619 request: Request,
620 info: MediaPipeline.SpiderInfo,
621 *,
622 item: Any = None,
623 ) -> FileInfo:
624 referer = referer_str(request)
625
626 if response.status != 200:
627 logger.warning(
628 "File (code: %(status)s): Error downloading file from "
629 "%(request)s referred in <%(referer)s>",
630 {"status": response.status, "request": request, "referer": referer},
631 extra={"spider": info.spider},
632 )
633 raise FileException("download-error")
634
635 if not response.body:
636 logger.warning(
637 "File (empty-content): Empty file from %(request)s referred "
638 "in <%(referer)s>: no-content",
639 {"request": request, "referer": referer},
640 extra={"spider": info.spider},
641 )
642 raise FileException("empty-content")
643
644 status = "cached" if "cached" in response.flags else "downloaded"
645 logger.debug(
646 "File (%(status)s): Downloaded file from %(request)s referred in "
647 "<%(referer)s>",
648 {"status": status, "request": request, "referer": referer},
649 extra={"spider": info.spider},
650 )
651 self.inc_stats(status)
652
653 try:
654 path = self.file_path(request, response=response, info=info, item=item)
655 checksum: str = await ensure_awaitable(
656 self.file_downloaded(response, request, info, item=item)
657 )
658 except FileException as exc:
659 logger.warning(
660 "File (error): Error processing file from %(request)s "
661 "referred in <%(referer)s>: %(errormsg)s",
662 {"request": request, "referer": referer, "errormsg": str(exc)},
663 extra={"spider": info.spider},
664 exc_info=True,
665 )
666 raise
667 except Exception as exc:
668 logger.error(
669 "File (unknown-error): Error processing file from %(request)s "
670 "referred in <%(referer)s>",
671 {"request": request, "referer": referer},
672 exc_info=True,
673 extra={"spider": info.spider},

Callers

nothing calls this directly

Calls 7

inc_statsMethod · 0.95
file_pathMethod · 0.95
file_downloadedMethod · 0.95
referer_strFunction · 0.90
ensure_awaitableFunction · 0.90
FileExceptionClass · 0.85
errorMethod · 0.80

Tested by

no test coverage detected