From 87d932c6558340ec58f71dc9ce6fee4444f04a90 Mon Sep 17 00:00:00 2001 From: freamon Date: Mon, 19 Aug 2024 23:44:58 +0000 Subject: [PATCH] Return local user via their Alt in find_actor_or_create (just so activities log shows when Lemmy is Announcing back local content) --- app/activitypub/util.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/activitypub/util.py b/app/activitypub/util.py index cfcb2332..4cf40b4a 100644 --- a/app/activitypub/util.py +++ b/app/activitypub/util.py @@ -34,6 +34,8 @@ from app.utils import get_request, allowlist_html, get_setting, ap_datetime, mar notification_subscribers, communities_banned_from, lemmy_markdown_to_html, actor_contains_blocked_words, \ html_to_text, opengraph_parse, url_to_thumbnail_file, add_to_modlog_activitypub +from sqlalchemy import or_ + def public_key(): if not os.path.exists('./public.pem'): @@ -289,7 +291,8 @@ def find_actor_or_create(actor: str, create_if_not_found=True, community_only=Fa return Community.query.filter(Community.ap_profile_id == actor).first() # finds communities formatted like https://localhost/c/* if current_app.config['SERVER_NAME'] + '/u/' in actor: - user = User.query.filter(User.ap_profile_id == actor).filter_by(ap_id=None, banned=False).first() # finds local users + alt_user_name = actor_url.rsplit('/', 1)[-1] + user = User.query.filter(or_(User.ap_profile_id == actor, User.alt_user_name == alt_user_name)).filter_by(ap_id=None, banned=False).first() # finds local users if user is None: return None elif actor.startswith('https://'):