Scrape instance nodeinfo #251

Merged
floatingghost merged 15 commits from instance-info into develop 2022-11-06 22:49:39 +00:00
2 changed files with 27 additions and 7 deletions
Showing only changes of commit c7cdc00af8 - Show all commits

View file

@ -25,6 +25,7 @@ test "Represent a user account" do
user = user =
insert(:user, %{ insert(:user, %{
ap_id: "https://example.com/users/chikichikibanban",
follower_count: 3, follower_count: 3,
note_count: 5, note_count: 5,
background: background_image, background: background_image,
@ -38,6 +39,8 @@ test "Represent a user account" do
also_known_as: ["https://shitposter.zone/users/shp"] also_known_as: ["https://shitposter.zone/users/shp"]
}) })
insert(:instance, %{host: "example.com", nodeinfo: %{version: "2.1"}})
expected = %{ expected = %{
id: to_string(user.id), id: to_string(user.id),
username: "shp", username: "shp",
@ -50,6 +53,15 @@ test "Represent a user account" do
statuses_count: 5, statuses_count: 5,
note: "<span>valid html</span>. a<br/>b<br/>c<br/>d<br/>f &#39;&amp;&lt;&gt;&quot;", note: "<span>valid html</span>. a<br/>b<br/>c<br/>d<br/>f &#39;&amp;&lt;&gt;&quot;",
url: user.ap_id, url: user.ap_id,
akkoma: %{
instance: %{
name: "example.com",
nodeinfo: %{
"version" => "2.1"
},
favicon: nil
}
},
avatar: "http://localhost:4001/images/avi.png", avatar: "http://localhost:4001/images/avi.png",
avatar_static: "http://localhost:4001/images/avi.png", avatar_static: "http://localhost:4001/images/avi.png",
header: "http://localhost:4001/images/banner.png", header: "http://localhost:4001/images/banner.png",
@ -598,4 +610,10 @@ test "uses mediaproxy urls when it's enabled (regardless of media preview proxy
|> assert() |> assert()
end end
end end
test "returns nil in the instance field when no instance is held locally" do
user = insert(:user)
view = AccountView.render("show.json", %{user: user, skip_visibility_check: true})
assert view[:akkoma][:instance] == nil
end
end end

View file

@ -36,6 +36,15 @@ def conversation_factory do
} }
end end
def instance_factory(attrs \\ %{}) do
%Pleroma.Instances.Instance{
host: attrs[:domain] || "example.com",
nodeinfo: %{version: "2.0", openRegistrations: true},
unreachable_since: nil
}
|> Map.merge(attrs)
end
def user_factory(attrs \\ %{}) do def user_factory(attrs \\ %{}) do
pem = Enum.random(@rsa_keys) pem = Enum.random(@rsa_keys)
@ -522,13 +531,6 @@ def oauth_app_factory do
} }
end end
def instance_factory do
%Pleroma.Instances.Instance{
host: "domain.com",
unreachable_since: nil
}
end
def oauth_token_factory(attrs \\ %{}) do def oauth_token_factory(attrs \\ %{}) do
scopes = Map.get(attrs, :scopes, ["read"]) scopes = Map.get(attrs, :scopes, ["read"])
oauth_app = Map.get_lazy(attrs, :app, fn -> insert(:oauth_app, scopes: scopes) end) oauth_app = Map.get_lazy(attrs, :app, fn -> insert(:oauth_app, scopes: scopes) end)