Add option to set image_url ("background image") for user

While this option is not used anywhere in microblog.pub itself, some
other servers do occasionally use it when showing remote profiles.

Also, this image _can_ be used in microblog.pub - just add this:

	<img src="{{ local_actor.image_url }}">

in the appropriate place of your template!
This commit is contained in:
Alexey Shpakovsky 2022-11-10 22:43:33 +01:00 committed by Thomas Sileo
parent 4c995957a6
commit 4613997fe3
3 changed files with 14 additions and 0 deletions

View file

@ -154,6 +154,12 @@ if ALSO_KNOWN_AS:
if MOVED_TO: if MOVED_TO:
ME["movedTo"] = MOVED_TO ME["movedTo"] = MOVED_TO
if config.CONFIG.image_url:
ME["image"] = {
"mediaType": mimetypes.guess_type(config.CONFIG.image_url)[0],
"type": "Image",
"url": config.CONFIG.image_url,
}
class NotAnObjectError(Exception): class NotAnObjectError(Exception):
def __init__(self, url: str, resp: httpx.Response | None = None) -> None: def __init__(self, url: str, resp: httpx.Response | None = None) -> None:

View file

@ -88,6 +88,10 @@ class Actor:
def icon_media_type(self) -> str | None: def icon_media_type(self) -> str | None:
return self.ap_actor.get("icon", {}).get("mediaType") return self.ap_actor.get("icon", {}).get("mediaType")
@property
def image_url(self) -> str | None:
return self.ap_actor.get("image", {}).get("url")
@property @property
def public_key_as_pem(self) -> str: def public_key_as_pem(self) -> str:
return self.ap_actor["publicKey"]["publicKeyPem"] return self.ap_actor["publicKey"]["publicKeyPem"]
@ -381,6 +385,9 @@ def _actor_hash(actor: Actor) -> bytes:
if actor.icon_url: if actor.icon_url:
h.update(actor.icon_url.encode()) h.update(actor.icon_url.encode())
if actor.image_url:
h.update(actor.image_url.encode())
if actor.attachments: if actor.attachments:
for a in actor.attachments: for a in actor.attachments:
if a.get("type") != "PropertyValue": if a.get("type") != "PropertyValue":

View file

@ -92,6 +92,7 @@ class Config(pydantic.BaseModel):
summary: str summary: str
https: bool https: bool
icon_url: str icon_url: str
image_url: str
secret: str secret: str
debug: bool = False debug: bool = False
trusted_hosts: list[str] = ["127.0.0.1"] trusted_hosts: list[str] = ["127.0.0.1"]