images.py 1.0 KB

123456789101112131415161718192021222324252627282930
  1. from __future__ import annotations
  2. from ..enums import HacsCategory
  3. from ..repositories.base import HacsRepository
  4. from .base import ActionValidationBase, ValidationException
  5. IGNORED = ["-shield", "img.shields.io", "buymeacoffee.com"]
  6. async def async_setup_validator(repository: HacsRepository) -> Validator:
  7. """Set up this validator."""
  8. return Validator(repository=repository)
  9. class Validator(ActionValidationBase):
  10. """Validate the repository."""
  11. categories = [HacsCategory.PLUGIN, HacsCategory.THEME]
  12. more_info = "https://hacs.xyz/docs/publish/include#check-images"
  13. async def async_validate(self):
  14. """Validate the repository."""
  15. info = await self.repository.async_get_info_file_contents()
  16. for line in info.split("\n"):
  17. if "<img" in line or "![" in line:
  18. if [ignore for ignore in IGNORED if ignore in line]:
  19. continue
  20. return
  21. raise ValidationException("The repository does not have images in the Readme file")