Merge branch 'develop' of ssh.gitgud.io:lambadalambda/pleroma into refactor/status-view
This commit is contained in:
commit
cc06d22d35
|
@ -12,16 +12,17 @@ defmodule Pleroma.Activity do
|
|||
|
||||
def get_by_ap_id(ap_id) do
|
||||
Repo.one(from activity in Activity,
|
||||
where: fragment("? @> ?", activity.data, ^%{id: ap_id}))
|
||||
where: fragment("(?)->>'id' = ?", activity.data, ^to_string(ap_id)))
|
||||
end
|
||||
|
||||
def all_by_object_ap_id(ap_id) do
|
||||
Repo.all(from activity in Activity,
|
||||
where: fragment("? @> ?", activity.data, ^%{object: %{id: ap_id}}))
|
||||
where: fragment("(?)->'object'->>'id' = ?", activity.data, ^to_string(ap_id)))
|
||||
end
|
||||
|
||||
def get_create_activity_by_object_ap_id(ap_id) do
|
||||
Repo.one(from activity in Activity,
|
||||
where: fragment("? @> ?", activity.data, ^%{type: "Create", object: %{id: ap_id}}))
|
||||
where: fragment("(?)->'object'->>'id' = ?", activity.data, ^to_string(ap_id))
|
||||
and fragment("(?)->>'type' = 'Create'", activity.data))
|
||||
end
|
||||
end
|
||||
|
|
|
@ -26,8 +26,8 @@ defmodule Pleroma.Web.Router do
|
|||
scope "/api", Pleroma.Web do
|
||||
pipe_through :api
|
||||
|
||||
get "/help/test", TwitterAPI.Controller, :help_test
|
||||
get "/statusnet/config", TwitterAPI.Controller, :config
|
||||
get "/help/test", TwitterAPI.UtilController, :help_test
|
||||
get "/statusnet/config", TwitterAPI.UtilController, :config
|
||||
|
||||
get "/statuses/public_timeline", TwitterAPI.Controller, :public_timeline
|
||||
get "/statuses/public_and_external_timeline", TwitterAPI.Controller, :public_and_external_timeline
|
||||
|
|
|
@ -0,0 +1,18 @@
|
|||
defmodule Pleroma.Web.TwitterAPI.UtilController do
|
||||
use Pleroma.Web, :controller
|
||||
alias Pleroma.Web
|
||||
|
||||
def help_test(conn, _params) do
|
||||
json(conn, "ok")
|
||||
end
|
||||
|
||||
def config(conn, _params) do
|
||||
json(conn, %{
|
||||
site: %{
|
||||
name: Web.base_url,
|
||||
server: Web.base_url,
|
||||
textlimit: -1
|
||||
}
|
||||
})
|
||||
end
|
||||
end
|
|
@ -1,7 +1,7 @@
|
|||
defmodule Pleroma.Web.TwitterAPI.Controller do
|
||||
use Pleroma.Web, :controller
|
||||
alias Pleroma.Web.TwitterAPI.{StatusView, TwitterAPI, UserView}
|
||||
alias Pleroma.{Web, Repo, Activity}
|
||||
alias Pleroma.{Repo, Activity}
|
||||
alias Pleroma.Web.ActivityPub.ActivityPub
|
||||
alias Ecto.Changeset
|
||||
|
||||
|
@ -110,26 +110,12 @@ defmodule Pleroma.Web.TwitterAPI.Controller do
|
|||
|> send_resp(200, response)
|
||||
end
|
||||
|
||||
def help_test(conn, _params) do
|
||||
json(conn, "ok")
|
||||
end
|
||||
|
||||
def upload_json(conn, %{"media" => media}) do
|
||||
response = TwitterAPI.upload(media, "json")
|
||||
conn
|
||||
|> json_reply(200, response)
|
||||
end
|
||||
|
||||
def config(conn, _params) do
|
||||
json(conn, %{
|
||||
site: %{
|
||||
name: Web.base_url,
|
||||
server: Web.base_url,
|
||||
textlimit: -1
|
||||
}
|
||||
})
|
||||
end
|
||||
|
||||
def favorite(%{assigns: %{user: user}} = conn, %{"id" => id}) do
|
||||
activity = Repo.get(Activity, id)
|
||||
{:ok, activity} = TwitterAPI.favorite(user, activity)
|
||||
|
|
|
@ -50,13 +50,17 @@ defmodule Pleroma.Web.Websub do
|
|||
|> to_string
|
||||
|
||||
signature = sign(sub.secret || "", response)
|
||||
Logger.debug(fn -> "Pushing to #{sub.callback}" end)
|
||||
Logger.debug(fn -> "Pushing #{topic} to #{sub.callback}" end)
|
||||
|
||||
Task.start(fn ->
|
||||
@httpoison.post(sub.callback, response, [
|
||||
with {:ok, %{status_code: code}} <- @httpoison.post(sub.callback, response, [
|
||||
{"Content-Type", "application/atom+xml"},
|
||||
{"X-Hub-Signature", "sha1=#{signature}"}
|
||||
])
|
||||
]) do
|
||||
Logger.debug(fn -> "Pushed to #{sub.callback}, code #{code}" end)
|
||||
else e ->
|
||||
Logger.debug(fn -> "Couldn't push to #{sub.callback}, #{inspect(e)}" end)
|
||||
end
|
||||
end)
|
||||
end)
|
||||
end
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
defmodule Pleroma.Repo.Migrations.AddObjectActivityIndex do
|
||||
use Ecto.Migration
|
||||
|
||||
def change do
|
||||
create index(:objects, ["(data->'object'->>'id')", "(data->>'type')"], name: :activities_create_objects_index)
|
||||
end
|
||||
end
|
|
@ -0,0 +1,8 @@
|
|||
defmodule Pleroma.Repo.Migrations.AddObjectActivityIndexPartTwo do
|
||||
use Ecto.Migration
|
||||
|
||||
def change do
|
||||
drop index(:objects, ["(data->'object'->>'id')", "(data->>'type')"], name: :activities_create_objects_index)
|
||||
create index(:activities, ["(data->'object'->>'id')", "(data->>'type')"], name: :activities_create_objects_index)
|
||||
end
|
||||
end
|
Loading…
Reference in New Issue