MCPcopy
hub / github.com/scrapy/scrapy / _onsuccess

Method _onsuccess

scrapy/pipelines/files.py:542–576  ·  view source on GitHub ↗
(
        self,
        result: StatInfo,
        request: Request,
        info: MediaPipeline.SpiderInfo,
        path: str,
    )

Source from the content-addressed store, hash-verified

540 return store_cls(uri)
541
542 def _onsuccess(
543 self,
544 result: StatInfo,
545 request: Request,
546 info: MediaPipeline.SpiderInfo,
547 path: str,
548 ) -> FileInfo | None:
549 if not result:
550 return None # returning None force download
551
552 last_modified = result.get("last_modified", None)
553 if not last_modified:
554 return None # returning None force download
555
556 age_seconds = time.time() - last_modified
557 age_days = age_seconds / 60 / 60 / 24
558 if age_days > self.expires:
559 return None # returning None force download
560
561 referer = referer_str(request)
562 logger.debug(
563 "File (uptodate): Downloaded %(medianame)s from %(request)s "
564 "referred in <%(referer)s>",
565 {"medianame": self.MEDIA_NAME, "request": request, "referer": referer},
566 extra={"spider": info.spider},
567 )
568 self.inc_stats("uptodate")
569
570 checksum = result.get("checksum", None)
571 return {
572 "url": request.url,
573 "path": path,
574 "checksum": checksum,
575 "status": "uptodate",
576 }
577
578 def media_to_download(
579 self, request: Request, info: MediaPipeline.SpiderInfo, *, item: Any = None

Callers

nothing calls this directly

Calls 3

inc_statsMethod · 0.95
referer_strFunction · 0.90
getMethod · 0.45

Tested by

no test coverage detected