AP instance actor: move AS2 JSON files, start adding per-protocol bot users

pull/968/head
Ryan Barrett 2024-04-21 16:33:26 -07:00
rodzic 18b1a33d22
commit e1f9021696
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 6BE31FDF4776E9D4
4 zmienionych plików z 9 dodań i 9 usunięć

Wyświetl plik

@ -7,7 +7,7 @@
"id": "https://bsky.brid.gy/bsky.brid.gy", "id": "https://bsky.brid.gy/bsky.brid.gy",
"url": "https://bsky.brid.gy/", "url": "https://bsky.brid.gy/",
"preferredUsername": "bsky.brid.gy", "preferredUsername": "bsky.brid.gy",
"summary": "Bridgy Fed bot user for Bluesky. To bridge your fediverse account to Bluesky, follow this account or reply <em>yes</em> when it promps you with a DM. <a href="https://fed.brid.gy/docs">More info here.</a>", "summary": "<a href='https://fed.brid.gy/'>Bridgy Fed</a> bot user for <a href='https://bsky.social/'>Bluesky</a>. To bridge your fediverse account to Bluesky, follow this account or reply <em>yes</em> when it promps you with a DM. <a href='https://fed.brid.gy/docs'>More info here.</a>",
"name": "Bridgy Fed", "name": "Bridgy Fed",
"attachment": [{ "attachment": [{
"name": "Web site", "name": "Web site",

Wyświetl plik

@ -495,7 +495,7 @@ class ActivityPubTest(TestCase):
activitypub._INSTANCE_ACTOR = testutil.global_user activitypub._INSTANCE_ACTOR = testutil.global_user
self.addCleanup(reset_instance_actor) self.addCleanup(reset_instance_actor)
actor_as2 = json_loads(util.read('static/instance-actor.as2.json')) actor_as2 = json_loads(util.read('fed.brid.gy.as2.json'))
self.make_user(common.PRIMARY_DOMAIN, cls=Web, obj_as2=actor_as2) self.make_user(common.PRIMARY_DOMAIN, cls=Web, obj_as2=actor_as2)
activitypub._INSTANCE_ACTOR = None activitypub._INSTANCE_ACTOR = None

Wyświetl plik

@ -2755,8 +2755,7 @@ class WebUtilTest(TestCase):
def test_fetch_instance_actor(self, _, __): def test_fetch_instance_actor(self, _, __):
obj = Object(id=f'https://{common.PRIMARY_DOMAIN}/') obj = Object(id=f'https://{common.PRIMARY_DOMAIN}/')
self.assertTrue(Web.fetch(obj)) self.assertTrue(Web.fetch(obj))
self.assertEqual(obj.as2, self.assertEqual(obj.as2, json_loads(util.read('fed.brid.gy.as2.json')))
json_loads(util.read('static/instance-actor.as2.json')))
def test_fetch_resolves_relative_urls(self, mock_get, __): def test_fetch_resolves_relative_urls(self, mock_get, __):
mock_get.return_value = requests_response("""\ mock_get.return_value = requests_response("""\

11
web.py
Wyświetl plik

@ -24,7 +24,7 @@ from requests.auth import HTTPBasicAuth
from werkzeug.exceptions import BadGateway, BadRequest, HTTPException, NotFound from werkzeug.exceptions import BadGateway, BadRequest, HTTPException, NotFound
import common import common
from common import add, DOMAIN_RE, SUPERDOMAIN from common import add, DOMAIN_RE, PRIMARY_DOMAIN, PROTOCOL_DOMAINS, SUPERDOMAIN
from flask_app import app, cache from flask_app import app, cache
from ids import translate_handle, translate_object_id, translate_user_id from ids import translate_handle, translate_object_id, translate_user_id
from models import Follower, Object, PROTOCOLS, Target, User from models import Follower, Object, PROTOCOLS, Target, User
@ -440,10 +440,11 @@ class Web(User, Protocol):
return False return False
is_homepage = urlparse(url).path.strip('/') == '' is_homepage = urlparse(url).path.strip('/') == ''
if is_homepage:
if is_homepage and util.domain_from_link(url) == common.PRIMARY_DOMAIN: domain = util.domain_from_link(url)
obj.as2 = json_loads(util.read('static/instance-actor.as2.json')) if domain == PRIMARY_DOMAIN or domain in PROTOCOL_DOMAINS:
return True obj.as2 = json_loads(util.read(f'{domain}.as2.json'))
return True
require_backlink = (common.host_url().rstrip('/') require_backlink = (common.host_url().rstrip('/')
if check_backlink and not is_homepage if check_backlink and not is_homepage