(
self,
response: Response,
request: Request,
info: MediaPipeline.SpiderInfo,
*,
item: Any = None,
)
| 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}, |
nothing calls this directly
no test coverage detected