Fix uploads and favorites in twidere / twittnuker.

This commit is contained in:
Roger Braun 2017-04-14 16:13:34 +02:00
parent fa0c279139
commit 90b38fd51b
3 changed files with 31 additions and 13 deletions

View File

@ -39,6 +39,8 @@ def user_fetcher(username) do
post "/friendships/create", TwitterAPI.Controller, :follow
post "/friendships/destroy", TwitterAPI.Controller, :unfollow
post "/statusnet/media/upload", TwitterAPI.Controller, :upload
post "/media/upload", TwitterAPI.Controller, :upload_json
post "/favorites/create/:id", TwitterAPI.Controller, :favorite
post "/favorites/create", TwitterAPI.Controller, :favorite
end
end

View File

@ -137,13 +137,15 @@ def favorite(%User{} = user, %Activity{data: %{"object" => object}} = activity)
{:ok, status}
end
def upload(%Plug.Upload{} = file) do
def upload(%Plug.Upload{} = file, format \\ "xml") do
{:ok, object} = ActivityPub.upload(file)
url = List.first(object.data["url"])
href = url["href"]
type = url["mediaType"]
case format do
"xml" ->
# Fake this as good as possible...
"""
<?xml version="1.0" encoding="UTF-8"?>
@ -156,6 +158,14 @@ def upload(%Plug.Upload{} = file) do
<atom:link rel="enclosure" href="#{href}" type="#{type}"></atom:link>
</rsp>
"""
"json" ->
%{
media_id: object.id,
media_id_string: "#{object.id}}",
media_url: href,
size: 0
} |> Poison.encode!
end
end
def parse_mentions(text) do

View File

@ -84,6 +84,12 @@ def upload(conn, %{"media" => media}) do
|> send_resp(200, response)
end
def upload_json(conn, %{"media" => media}) do
response = TwitterAPI.upload(media, "json")
conn
|> json_reply(200, response)
end
def config(conn, _params) do
response = %{
site: %{