store home page URL in update profile Objects, render better in activities UI

fixes #407
pull/413/head
Ryan Barrett 2023-02-07 12:43:36 -08:00
rodzic 52c6aa6160
commit b5a0386cd0
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 6BE31FDF4776E9D4
3 zmienionych plików z 15 dodań i 7 usunięć

Wyświetl plik

@ -207,12 +207,15 @@ def fetch_objects(query, user):
or inner_obj.get('displayName') or inner_obj.get('displayName')
or inner_obj.get('summary')) or inner_obj.get('summary'))
url = util.get_first(inner_obj, 'url') or inner_obj.get('id') url = util.get_first(inner_obj, 'url') or inner_obj.get('id')
if url: if (obj.domains and
content = common.pretty_link(url, text=content, user=user) inner_obj.get('id', '').strip('/') == f'https://{obj.domains[0]}'):
elif (obj.domains and
obj_as1.get('id', '').strip('/') == f'https://{obj.domains[0]}'):
obj.phrase = 'updated' obj.phrase = 'updated'
obj_as1['content'] = 'their profile' obj_as1.update({
'content': 'their profile',
'url': f'https://{obj.domains[0]}',
})
elif url:
content = common.pretty_link(url, text=content, user=user)
obj.content = (obj_as1.get('content') obj.content = (obj_as1.get('content')
or obj_as1.get('displayName') or obj_as1.get('displayName')

Wyświetl plik

@ -1102,10 +1102,12 @@ class WebmentionTest(testutil.TestCase):
)) ))
id = 'https://orig/#update-2022-01-02T03:04:05+00:00' id = 'https://orig/#update-2022-01-02T03:04:05+00:00'
wrapped_id = f'http://localhost/r/{id}'
self.assert_deliveries(mock_post, ('https://shared/inbox', 'https://inbox'), { self.assert_deliveries(mock_post, ('https://shared/inbox', 'https://inbox'), {
'@context': 'https://www.w3.org/ns/activitystreams', '@context': 'https://www.w3.org/ns/activitystreams',
'type': 'Update', 'type': 'Update',
'id': f'http://localhost/r/{id}', 'id': wrapped_id,
'url': wrapped_id,
'actor': 'http://localhost/orig', 'actor': 'http://localhost/orig',
'object': { 'object': {
**ACTOR_AS2_FULL, **ACTOR_AS2_FULL,
@ -1116,6 +1118,7 @@ class WebmentionTest(testutil.TestCase):
expected_as1 = { expected_as1 = {
'id': id, 'id': id,
'url': id,
'objectType': 'activity', 'objectType': 'activity',
'verb': 'update', 'verb': 'update',
'object': ACTOR_AS1_UNWRAPPED, 'object': ACTOR_AS1_UNWRAPPED,

Wyświetl plik

@ -63,12 +63,14 @@ class Webmention(View):
'objectType': 'activity', 'objectType': 'activity',
'verb': 'update', 'verb': 'update',
'id': id, 'id': id,
'url': id,
'object': actor_as1, 'object': actor_as1,
} }
self.source_as2 = common.postprocess_as2({ self.source_as2 = common.postprocess_as2({
'@context': 'https://www.w3.org/ns/activitystreams', '@context': 'https://www.w3.org/ns/activitystreams',
'type': 'Update', 'type': 'Update',
'id': common.host_url(f'{source}#update-{util.now().isoformat()}'), 'id': id,
'url': id,
'object': actor_as2, 'object': actor_as2,
}, user=self.user) }, user=self.user)
return self.try_activitypub() or 'No ActivityPub targets' return self.try_activitypub() or 'No ActivityPub targets'