Merge branch 'develop' of ssh.gitgud.io:lambadalambda/pleroma into refactor/status-view

This commit is contained in:
dtluna 2017-06-20 22:32:11 +03:00
commit cc06d22d35
7 changed files with 47 additions and 23 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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)

View File

@ -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

View File

@ -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

View File

@ -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