mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-04 05:53:43 +00:00 
			
		
		
		
	thumbnail: Tighten and clarify the "type: ignore" limitation.
This commit is contained in:
		
				
					committed by
					
						
						Tim Abbott
					
				
			
			
				
	
			
			
			
						parent
						
							3cbbf2307b
						
					
				
				
					commit
					912c1b5984
				
			@@ -19,7 +19,7 @@ from zerver.lib.thumbnail import (
 | 
				
			|||||||
    rewrite_thumbnailed_images,
 | 
					    rewrite_thumbnailed_images,
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
from zerver.lib.upload import save_attachment_contents, upload_backend
 | 
					from zerver.lib.upload import save_attachment_contents, upload_backend
 | 
				
			||||||
from zerver.models import ArchivedMessage, ImageAttachment, Message
 | 
					from zerver.models import AbstractMessage, ArchivedMessage, ImageAttachment, Message
 | 
				
			||||||
from zerver.worker.base import QueueProcessingWorker, assign_queue
 | 
					from zerver.worker.base import QueueProcessingWorker, assign_queue
 | 
				
			||||||
 | 
					
 | 
				
			||||||
logger = logging.getLogger(__name__)
 | 
					logger = logging.getLogger(__name__)
 | 
				
			||||||
@@ -158,15 +158,17 @@ def ensure_thumbnails(image_attachment: ImageAttachment) -> int:
 | 
				
			|||||||
def update_message_rendered_content(
 | 
					def update_message_rendered_content(
 | 
				
			||||||
    realm_id: int, path_id: str, image_data: MarkdownImageMetadata | None
 | 
					    realm_id: int, path_id: str, image_data: MarkdownImageMetadata | None
 | 
				
			||||||
) -> None:
 | 
					) -> None:
 | 
				
			||||||
    for message_class in [Message, ArchivedMessage]:
 | 
					    message_classes: list[type[AbstractMessage]] = [Message, ArchivedMessage]
 | 
				
			||||||
 | 
					    for message_class in message_classes:
 | 
				
			||||||
        messages_with_image = (
 | 
					        messages_with_image = (
 | 
				
			||||||
            message_class.objects.filter(  # type: ignore[attr-defined]  # TODO: ?
 | 
					            message_class._default_manager.filter(  # type: ignore[misc]  # Both Message and ArchivedMessage have an "attachment" many-to-many, but this is not guaranteed by the type system
 | 
				
			||||||
                realm_id=realm_id, attachment__path_id=path_id
 | 
					                realm_id=realm_id, attachment__path_id=path_id
 | 
				
			||||||
            )
 | 
					            )
 | 
				
			||||||
            .select_for_update(of=("self",))
 | 
					            .select_for_update(of=("self",))
 | 
				
			||||||
            .order_by("id")
 | 
					            .order_by("id")
 | 
				
			||||||
        )
 | 
					        )
 | 
				
			||||||
        for message in messages_with_image:
 | 
					        for message in messages_with_image:
 | 
				
			||||||
 | 
					            assert message.rendered_content is not None
 | 
				
			||||||
            rendered_content = rewrite_thumbnailed_images(
 | 
					            rendered_content = rewrite_thumbnailed_images(
 | 
				
			||||||
                message.rendered_content,
 | 
					                message.rendered_content,
 | 
				
			||||||
                {} if image_data is None else {path_id: image_data},
 | 
					                {} if image_data is None else {path_id: image_data},
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user