projects
/
akkoma
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'develop' of ssh.gitgud.io:lambadalambda/pleroma into develop
[akkoma]
/
lib
/
pleroma
/
web
/
twitter_api
/
twitter_api_controller.ex
diff --git
a/lib/pleroma/web/twitter_api/twitter_api_controller.ex
b/lib/pleroma/web/twitter_api/twitter_api_controller.ex
index d9ff7e5305b2e55e7022e4bb12c6d4b7811fd4ea..96a5f2151dd1b913f56064cfcc505519c1f0b629 100644
(file)
--- a/
lib/pleroma/web/twitter_api/twitter_api_controller.ex
+++ b/
lib/pleroma/web/twitter_api/twitter_api_controller.ex
@@
-2,8
+2,9
@@
defmodule Pleroma.Web.TwitterAPI.Controller do
use Pleroma.Web, :controller
alias Pleroma.Web.TwitterAPI.TwitterAPI
alias Pleroma.Web.TwitterAPI.Representers.{UserRepresenter, ActivityRepresenter}
use Pleroma.Web, :controller
alias Pleroma.Web.TwitterAPI.TwitterAPI
alias Pleroma.Web.TwitterAPI.Representers.{UserRepresenter, ActivityRepresenter}
- alias Pleroma.{Repo, Activity}
+ alias Pleroma.{
Web,
Repo, Activity}
alias Pleroma.Web.ActivityPub.ActivityPub
alias Pleroma.Web.ActivityPub.ActivityPub
+ alias Ecto.Changeset
def verify_credentials(%{assigns: %{user: user}} = conn, _params) do
response = user |> UserRepresenter.to_json(%{for: user})
def verify_credentials(%{assigns: %{user: user}} = conn, _params) do
response = user |> UserRepresenter.to_json(%{for: user})
@@
-15,7
+16,7
@@
defmodule Pleroma.Web.TwitterAPI.Controller do
def status_update(%{assigns: %{user: user}} = conn, %{"status" => status_text} = status_data) do
if status_text |> String.trim |> String.length != 0 do
media_ids = extract_media_ids(status_data)
def status_update(%{assigns: %{user: user}} = conn, %{"status" => status_text} = status_data) do
if status_text |> String.trim |> String.length != 0 do
media_ids = extract_media_ids(status_data)
- {:ok, activity} = TwitterAPI.create_status(user, Map.put(status_data, "media_ids", media_ids
))
+ {:ok, activity} = TwitterAPI.create_status(user, Map.put(status_data, "media_ids", media_ids))
conn
|> json_reply(200, ActivityRepresenter.to_json(activity, %{user: user}))
else
conn
|> json_reply(200, ActivityRepresenter.to_json(activity, %{user: user}))
else
@@
-41,6
+42,14
@@
defmodule Pleroma.Web.TwitterAPI.Controller do
end
end
end
end
+ def public_and_external_timeline(%{assigns: %{user: user}} = conn, params) do
+ statuses = TwitterAPI.fetch_public_and_external_statuses(user, params)
+ {:ok, json} = Poison.encode(statuses)
+
+ conn
+ |> json_reply(200, json)
+ end
+
def public_timeline(%{assigns: %{user: user}} = conn, params) do
statuses = TwitterAPI.fetch_public_statuses(user, params)
{:ok, json} = Poison.encode(statuses)
def public_timeline(%{assigns: %{user: user}} = conn, params) do
statuses = TwitterAPI.fetch_public_statuses(user, params)
{:ok, json} = Poison.encode(statuses)
@@
-79,34
+88,34
@@
defmodule Pleroma.Web.TwitterAPI.Controller do
def follow(%{assigns: %{user: user}} = conn, params) do
case TwitterAPI.follow(user, params) do
def follow(%{assigns: %{user: user}} = conn, params) do
case TwitterAPI.follow(user, params) do
- {
:ok, user, followed, _activity
} ->
+ {
:ok, user, followed, _activity
} ->
response = followed |> UserRepresenter.to_json(%{for: user})
conn
|> json_reply(200, response)
response = followed |> UserRepresenter.to_json(%{for: user})
conn
|> json_reply(200, response)
- {
:error, msg
} -> forbidden_json_reply(conn, msg)
+ {
:error, msg
} -> forbidden_json_reply(conn, msg)
end
end
def unfollow(%{assigns: %{user: user}} = conn, params) do
case TwitterAPI.unfollow(user, params) do
end
end
def unfollow(%{assigns: %{user: user}} = conn, params) do
case TwitterAPI.unfollow(user, params) do
- {
:ok, user, unfollowed,
} ->
+ {
:ok, user, unfollowed
} ->
response = unfollowed |> UserRepresenter.to_json(%{for: user})
conn
|> json_reply(200, response)
response = unfollowed |> UserRepresenter.to_json(%{for: user})
conn
|> json_reply(200, response)
- {
:error, msg
} -> forbidden_json_reply(conn, msg)
+ {
:error, msg
} -> forbidden_json_reply(conn, msg)
end
end
end
end
- def fetch_status(%{assigns: %{user: user}} = conn, %{
"id" => id
}) do
- response =
TwitterAPI.fetch_status(user, id) |> Poison.encode!
+ def fetch_status(%{assigns: %{user: user}} = conn, %{
"id" => id
}) do
+ response =
Poison.encode!(TwitterAPI.fetch_status(user, id))
conn
|> json_reply(200, response)
end
conn
|> json_reply(200, response)
end
- def fetch_conversation(%{assigns: %{user: user}} = conn, %{
"id" => id
}) do
+ def fetch_conversation(%{assigns: %{user: user}} = conn, %{
"id" => id
}) do
id = String.to_integer(id)
id = String.to_integer(id)
- response =
TwitterAPI.fetch_conversation(user, id) |> Poison.encode!
+ response =
Poison.encode!(TwitterAPI.fetch_conversation(user, id))
conn
|> json_reply(200, response)
conn
|> json_reply(200, response)
@@
-132,8
+141,8
@@
defmodule Pleroma.Web.TwitterAPI.Controller do
def config(conn, _params) do
response = %{
site: %{
def config(conn, _params) do
response = %{
site: %{
- name:
Pleroma.
Web.base_url,
- server:
Pleroma.
Web.base_url,
+ name: Web.base_url,
+ server: Web.base_url,
textlimit: -1
}
}
textlimit: -1
}
}
@@
-163,11
+172,16
@@
defmodule Pleroma.Web.TwitterAPI.Controller do
def retweet(%{assigns: %{user: user}} = conn, %{"id" => id}) do
activity = Repo.get(Activity, id)
def retweet(%{assigns: %{user: user}} = conn, %{"id" => id}) do
activity = Repo.get(Activity, id)
- {:ok, status} = TwitterAPI.retweet(user, activity)
- response = Poison.encode!(status)
+ if activity.data["actor"] == user.ap_id do
+ bad_request_reply(conn, "You cannot repeat your own notice.")
+ else
+ {:ok, status} = TwitterAPI.retweet(user, activity)
+ response = Poison.encode!(status)
- conn
- |> json_reply(200, response)
+ conn
+
+ |> json_reply(200, response)
+ end
end
def register(conn, params) do
end
def register(conn, params) do
@@
-183,11
+197,10
@@
defmodule Pleroma.Web.TwitterAPI.Controller do
def update_avatar(%{assigns: %{user: user}} = conn, params) do
{:ok, object} = ActivityPub.upload(params)
def update_avatar(%{assigns: %{user: user}} = conn, params) do
{:ok, object} = ActivityPub.upload(params)
- change =
Ecto.
Changeset.change(user, %{avatar: object.data})
+ change = Changeset.change(user, %{avatar: object.data})
{:ok, user} = Repo.update(change)
{:ok, user} = Repo.update(change)
- response = UserRepresenter.to_map(user, %{for: user})
- |> Poison.encode!
+ response = Poison.encode!(UserRepresenter.to_map(user, %{for: user}))
conn
|> json_reply(200, response)
conn
|> json_reply(200, response)