This commit is contained in:
Mirai Kumiko 2025-06-30 14:03:57 +02:00
parent fa350aa551
commit c531beadb7
Signed by: miraikumiko
GPG key ID: 3F178B1B5E0CB278
11 changed files with 20 additions and 41 deletions

View file

@ -4,12 +4,10 @@ defmodule NullaWeb.ActorController do
alias Nulla.Models.Actor
alias Nulla.Models.Relation
alias Nulla.Models.Note
alias Nulla.Models.InstanceSettings
def show(conn, %{"username" => username}) do
format = Phoenix.Controller.get_format(conn)
instance_settings = InstanceSettings.get_instance_settings!()
domain = instance_settings.domain
domain = NullaWeb.Endpoint.host()
case Actor.get_actor(preferredUsername: username, domain: domain) do
nil ->

View file

@ -39,7 +39,7 @@ defmodule NullaWeb.AuthController do
|> put_flash(:error, "Registration is disabled.")
|> redirect(to: ~p"/")
else
domain = instance_settings.domain
domain = NullaWeb.Endpoint.host()
hashed_password = Argon2.hash_pwd_salt(password)
{publicKeyPem, privateKeyPem} = Nulla.KeyGen.gen()

View file

@ -7,7 +7,7 @@ defmodule NullaWeb.FollowController do
def following(conn, %{"username" => username, "page" => page_param}) do
instance_settings = InstanceSettings.get_instance_settings!()
domain = instance_settings.domain
domain = NullaWeb.Endpoint.host()
limit = instance_settings.api_limit
actor = Actor.get_actor(preferredUsername: username, domain: domain)
total = Relation.count_following(actor.id)
@ -26,8 +26,7 @@ defmodule NullaWeb.FollowController do
end
def following(conn, %{"username" => username}) do
instance_settings = InstanceSettings.get_instance_settings!()
domain = instance_settings.domain
domain = NullaWeb.Endpoint.host()
actor = Actor.get_actor(preferredUsername: username, domain: domain)
total = Relation.count_following(actor.id)
@ -38,7 +37,7 @@ defmodule NullaWeb.FollowController do
def followers(conn, %{"username" => username, "page" => page_param}) do
instance_settings = InstanceSettings.get_instance_settings!()
domain = instance_settings.domain
domain = NullaWeb.Endpoint.host()
limit = instance_settings.api_limit
actor = Actor.get_actor(preferredUsername: username, domain: domain)
total = Relation.count_followers(actor.id)
@ -57,8 +56,7 @@ defmodule NullaWeb.FollowController do
end
def followers(conn, %{"username" => username}) do
instance_settings = InstanceSettings.get_instance_settings!()
domain = instance_settings.domain
domain = NullaWeb.Endpoint.host()
actor = Actor.get_actor(preferredUsername: username, domain: domain)
total = Relation.count_followers(actor.id)

View file

@ -1,10 +1,8 @@
defmodule NullaWeb.HostmetaController do
use NullaWeb, :controller
alias Nulla.Models.InstanceSettings
def index(conn, _params) do
instance_settings = InstanceSettings.get_instance_settings!()
domain = instance_settings.domain
domain = NullaWeb.Endpoint.host()
xml = """
<?xml version="1.0" encoding="UTF-8"?>

View file

@ -5,8 +5,7 @@ defmodule NullaWeb.NodeinfoController do
alias Nulla.Models.InstanceSettings
def index(conn, _params) do
instance_settings = InstanceSettings.get_instance_settings!()
domain = instance_settings.domain
domain = NullaWeb.Endpoint.host()
json(conn, ActivityPub.nodeinfo(domain))
end

View file

@ -3,14 +3,13 @@ defmodule NullaWeb.OutboxController do
alias Nulla.ActivityPub
alias Nulla.Models.Actor
alias Nulla.Models.Note
alias Nulla.Models.InstanceSettings
def outbox(conn, %{"username" => username} = params) do
domain = NullaWeb.Endpoint.host()
actor = Actor.get_actor(preferredUsername: username, domain: domain)
case Map.get(params, "page") do
"true" ->
instance_settings = InstanceSettings.get_instance_settings!()
domain = instance_settings.domain
actor = Actor.get_actor(preferredUsername: username, domain: domain)
max_id = params["max_id"] && String.to_integer(params["max_id"])
notes =
@ -42,9 +41,6 @@ defmodule NullaWeb.OutboxController do
)
_ ->
instance_settings = InstanceSettings.get_instance_settings!()
domain = instance_settings.domain
actor = Actor.get_actor(preferredUsername: username, domain: domain)
total = Note.get_total_notes_count(actor.id)
conn

View file

@ -2,21 +2,20 @@ defmodule NullaWeb.WebfingerController do
use NullaWeb, :controller
alias Nulla.ActivityPub
alias Nulla.Models.Actor
alias Nulla.Models.InstanceSettings
def index(conn, %{"resource" => resource}) do
case Regex.run(~r/^acct:(.+)@(.+)$/, resource) do
[_, username, domain] ->
case Actor.get_actor(preferredUsername: username, domain: domain) do
[_, preferredUsername, actor_domain] ->
case Actor.get_actor(preferredUsername: preferredUsername, domain: actor_domain) do
nil ->
conn
|> put_resp_content_type("text/plain")
|> send_resp(404, "")
%Actor{} = actor ->
instance_settings = InstanceSettings.get_instance_settings!()
domain = NullaWeb.Endpoint.host()
if domain == instance_settings.domain do
if actor_domain == domain do
json(conn, ActivityPub.webfinger(actor))
else
conn