Make site_name optional of OG metadata

main
Thomas Sileo 2022-07-31 15:27:12 +02:00
parent 3b74ecff29
commit b557035eac
2 changed files with 6 additions and 4 deletions

View File

@ -285,7 +285,9 @@
</div> </div>
<div> <div>
<a href="{{ og_meta.url }}">{{ og_meta.title }}</a> <a href="{{ og_meta.url }}">{{ og_meta.title }}</a>
{% if og_meta.site_name %}
<small style="display:block;">{{ og_meta.site_name }}</small> <small style="display:block;">{{ og_meta.site_name }}</small>
{% endif %}
</div> </div>
{% endif %} {% endif %}
</div> </div>

View File

@ -17,7 +17,7 @@ class OpenGraphMeta(BaseModel):
title: str title: str
image: str image: str
description: str description: str
site_name: str site_name: str | None = None
def _scrap_og_meta(html: str) -> OpenGraphMeta | None: def _scrap_og_meta(html: str) -> OpenGraphMeta | None:
@ -29,10 +29,10 @@ def _scrap_og_meta(html: str) -> OpenGraphMeta | None:
raw = {} raw = {}
for field in OpenGraphMeta.__fields__.keys(): for field in OpenGraphMeta.__fields__.keys():
og_field = f"og:{field}" og_field = f"og:{field}"
if not ogs.get(og_field): if not ogs.get(og_field) and field != "site_name":
return None return None
raw[field] = ogs[og_field] raw[field] = ogs.get(og_field, None)
return OpenGraphMeta.parse_obj(raw) return OpenGraphMeta.parse_obj(raw)