forked from forks/microblog.pub
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:
parent
4c995957a6
commit
4613997fe3
3 changed files with 14 additions and 0 deletions
|
@ -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:
|
||||||
|
|
|
@ -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":
|
||||||
|
|
|
@ -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"]
|
||||||
|
|
Loading…
Reference in a new issue