mirror of
https://github.com/bookwyrm-social/bookwyrm.git
synced 2024-12-23 00:26:33 +00:00
Merge pull request #3150 from dato/get_representative_atomic
Make get_representative() atomic
This commit is contained in:
commit
ffeca9f908
1 changed files with 7 additions and 11 deletions
|
@ -236,7 +236,7 @@ class ActivityObject:
|
|||
omit = kwargs.get("omit", ())
|
||||
data = self.__dict__.copy()
|
||||
# recursively serialize
|
||||
for (k, v) in data.items():
|
||||
for k, v in data.items():
|
||||
try:
|
||||
if issubclass(type(v), ActivityObject):
|
||||
data[k] = v.serialize()
|
||||
|
@ -397,18 +397,14 @@ def resolve_remote_id(
|
|||
def get_representative():
|
||||
"""Get or create an actor representing the instance
|
||||
to sign outgoing HTTP GET requests"""
|
||||
username = f"{INSTANCE_ACTOR_USERNAME}@{DOMAIN}"
|
||||
email = "bookwyrm@localhost"
|
||||
try:
|
||||
user = models.User.objects.get(username=username)
|
||||
except models.User.DoesNotExist:
|
||||
user = models.User.objects.create_user(
|
||||
username=username,
|
||||
email=email,
|
||||
return models.User.objects.get_or_create(
|
||||
username=f"{INSTANCE_ACTOR_USERNAME}@{DOMAIN}",
|
||||
defaults=dict(
|
||||
email="bookwyrm@localhost",
|
||||
local=True,
|
||||
localname=INSTANCE_ACTOR_USERNAME,
|
||||
)
|
||||
return user
|
||||
),
|
||||
)[0]
|
||||
|
||||
|
||||
def get_activitypub_data(url):
|
||||
|
|
Loading…
Reference in a new issue