MCPcopy
hub / github.com/HisMax/RedInk / get_cached_generation_events

Method get_cached_generation_events

backend/services/image.py:565–623  ·  view source on GitHub ↗
(self, record_id: str, pages: list)

Source from the content-addressed store, hash-verified

563 }
564
565 def get_cached_generation_events(self, record_id: str, pages: list) -> List[Dict[str, Any]]:
566 record = self.history_service.get_record(record_id, sync_images=True)
567 if not record:
568 return []
569
570 images = record.get("images") or {}
571 task_id = images.get("task_id")
572 generated = images.get("generated") or []
573 if not task_id or not HistoryImageMerger.has_images(generated):
574 return []
575
576 total = len(pages)
577 completed = 0
578 failed_indices = []
579 events: List[Dict[str, Any]] = []
580
581 for page in pages:
582 index = page.get("index")
583 filename = generated[index] if isinstance(index, int) and index < len(generated) else ""
584 if filename:
585 completed += 1
586 events.append({
587 "event": "complete",
588 "data": {
589 "index": index,
590 "status": "done",
591 "image_url": f"/api/images/{task_id}/{filename}",
592 "phase": "cached",
593 "cached": True,
594 }
595 })
596 else:
597 failed_indices.append(index)
598 events.append({
599 "event": "error",
600 "data": {
601 "index": index,
602 "status": "error",
603 "message": "历史记录中缺少该页图片,可手动补全",
604 "retryable": True,
605 "phase": "cached",
606 "cached": True,
607 }
608 })
609
610 events.append({
611 "event": "finish",
612 "data": {
613 "success": len(failed_indices) == 0,
614 "task_id": task_id,
615 "images": generated,
616 "total": total,
617 "completed": completed,
618 "failed": len(failed_indices),
619 "failed_indices": failed_indices,
620 "cached": True,
621 }
622 })

Calls 3

get_recordMethod · 0.80
getMethod · 0.80
has_imagesMethod · 0.80