tasks.py 686 B

1234567891011121314151617181920212223242526272829
  1. import requests
  2. from celery import shared_task
  3. from requests.exceptions import RequestException
  4. from ..models import Css
  5. @shared_task
  6. def update_remote_css_size(pk):
  7. try:
  8. css = Css.objects.get(pk=pk, url__isnull=False)
  9. css.size = get_remove_css_size(css.url)
  10. except Css.DoesNotExist:
  11. pass
  12. else:
  13. css.save(update_fields=["size"])
  14. def get_remove_css_size(url):
  15. try:
  16. response = requests.head(url)
  17. response.raise_for_status()
  18. except RequestException:
  19. return 0
  20. else:
  21. try:
  22. return int(response.headers.get("content-length", 0))
  23. except (TypeError, ValueError):
  24. return 0