Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 7 additions & 11 deletions website/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@
from django.contrib.contenttypes.models import ContentType
from django.core.cache import cache
from django.core.exceptions import ValidationError
from django.core.files.base import ContentFile
from django.core.files.storage import default_storage
from django.core.validators import MaxValueValidator, MinValueValidator, URLValidator
from django.db import models, transaction
Expand Down Expand Up @@ -299,16 +298,13 @@ def get_name(self):
def get_logo(self):
if self.logo:
return self.logo.url
image_request = requests.get("https://logo.clearbit.com/" + self.name)
try:
if image_request.status_code == 200:
image_content = ContentFile(image_request.content)
self.logo.save(self.name + ".jpg", image_content)
return self.logo.url

except:
favicon_url = self.url + "/favicon.ico"
return favicon_url
# Use Google's favicon service as a free alternative to Clearbit
# Extract domain from URL for better compatibility
parsed_url = urlparse(self.url if "://" in self.url else f"http://{self.url}")
domain = parsed_url.netloc or self.name
# Google favicon service with 128px size for better quality
favicon_url = f"https://www.google.com/s2/favicons?domain={domain}&sz=128"
return favicon_url

@property
def hostname_domain(self):
Expand Down
Loading