summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md2
-rw-r--r--lib/pleroma/web/ostatus/ostatus_controller.ex13
-rw-r--r--lib/pleroma/web/router.ex1
-rw-r--r--test/web/ostatus/ostatus_controller_test.exs10
4 files changed, 25 insertions, 1 deletions
diff --git a/README.md b/README.md
index 5fd08e2f2..b07593f67 100644
--- a/README.md
+++ b/README.md
@@ -35,7 +35,7 @@ No release has been made yet, but several servers have been online for months al
* Run `mix ecto.migrate` to run the database migrations. You will have to do this again after certain updates.
- * You can check if your instance is configured correctly by running it with `mix phx.serve` and checking the instance info endpoint at `/api/v1/instance`. If it shows your uri, name and email correctly, you are configured correctly. If it shows something like `localhost:4000`, your configuration is probably wrong, unless you are running a local development setup.
+ * You can check if your instance is configured correctly by running it with `mix phx.server` and checking the instance info endpoint at `/api/v1/instance`. If it shows your uri, name and email correctly, you are configured correctly. If it shows something like `localhost:4000`, your configuration is probably wrong, unless you are running a local development setup.
* The common and convenient way for adding HTTPS is by using Nginx as a reverse proxy. You can look at example Nginx configuration in `installation/pleroma.nginx`. If you need TLS/SSL certificates for HTTPS, you can look get some for free with letsencrypt: https://letsencrypt.org/
On Debian you can use `certbot` package and command to manage letsencrypt certificates.
diff --git a/lib/pleroma/web/ostatus/ostatus_controller.ex b/lib/pleroma/web/ostatus/ostatus_controller.ex
index 1ac07546f..d442d16fd 100644
--- a/lib/pleroma/web/ostatus/ostatus_controller.ex
+++ b/lib/pleroma/web/ostatus/ostatus_controller.ex
@@ -86,6 +86,19 @@ defmodule Pleroma.Web.OStatus.OStatusController do
end
end
+ def notice(conn, %{"id" => id}) do
+ with %Activity{} = activity <- Repo.get(Activity, id),
+ %User{} = user <- User.get_cached_by_ap_id(activity.data["actor"]) do
+ case get_format(conn) do
+ "html" ->
+ conn
+ |> put_resp_content_type("text/html")
+ |> send_file(200, "priv/static/index.html")
+ _ -> represent_activity(conn, activity, user)
+ end
+ end
+ end
+
defp represent_activity(conn, activity, user) do
response = activity
|> ActivityRepresenter.to_simple_form(user, true)
diff --git a/lib/pleroma/web/router.ex b/lib/pleroma/web/router.ex
index f3c476fdc..6806e8a75 100644
--- a/lib/pleroma/web/router.ex
+++ b/lib/pleroma/web/router.ex
@@ -207,6 +207,7 @@ defmodule Pleroma.Web.Router do
get "/objects/:uuid", OStatus.OStatusController, :object
get "/activities/:uuid", OStatus.OStatusController, :activity
+ get "/notice/:id", OStatus.OStatusController, :notice
get "/users/:nickname/feed", OStatus.OStatusController, :feed
get "/users/:nickname", OStatus.OStatusController, :feed_redirect
diff --git a/test/web/ostatus/ostatus_controller_test.exs b/test/web/ostatus/ostatus_controller_test.exs
index 20d17d41f..9c945e35b 100644
--- a/test/web/ostatus/ostatus_controller_test.exs
+++ b/test/web/ostatus/ostatus_controller_test.exs
@@ -73,6 +73,16 @@ defmodule Pleroma.Web.OStatus.OStatusControllerTest do
assert response(conn, 200)
end
+
+ test "gets a notice", %{conn: conn} do
+ note_activity = insert(:note_activity)
+ url = "/notice/#{note_activity.id}"
+
+ conn = conn
+ |> get(url)
+
+ assert response(conn, 200)
+ end
end
defmodule Pleroma.Web.OStatusMock do