Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Pleroma
pleroma
Commits
d2099c84
Commit
d2099c84
authored
Mar 27, 2018
by
lain
Browse files
More Jason changes.
parent
527e8037
Pipeline
#994
failed with stage
in 2 minutes and 7 seconds
Changes
8
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
lib/pleroma/plugs/authentication_plug.ex
View file @
d2099c84
...
...
@@ -58,7 +58,7 @@ defp halt_or_continue(conn, %{optional: true}) do
defp
halt_or_continue
(
conn
,
_
)
do
conn
|>
put_resp_content_type
(
"application/json"
)
|>
send_resp
(
403
,
Poi
son
.
encode!
(%{
error:
"Invalid credentials."
}))
|>
send_resp
(
403
,
Ja
son
.
encode!
(%{
error:
"Invalid credentials."
}))
|>
halt
end
end
lib/pleroma/web/activity_pub/activity_pub.ex
View file @
d2099c84
...
...
@@ -305,7 +305,7 @@ def user_data_from_user_object(data) do
def
fetch_and_prepare_user_from_ap_id
(
ap_id
)
do
with
{
:ok
,
%{
status_code:
200
,
body:
body
}}
<-
@httpoison
.
get
(
ap_id
,
[
"Accept"
:
"application/activity+json"
]),
{
:ok
,
data
}
<-
Poi
son
.
decode
(
body
)
do
{
:ok
,
data
}
<-
Ja
son
.
decode
(
body
)
do
user_data_from_user_object
(
data
)
else
e
->
Logger
.
error
(
"Could not decode user at fetch
#{
ap_id
}
,
#{
inspect
(
e
)
}
"
)
...
...
@@ -348,7 +348,7 @@ def publish(actor, activity) do
|>
Enum
.
uniq
{
:ok
,
data
}
=
Transmogrifier
.
prepare_outgoing
(
activity
.
data
)
json
=
Poi
son
.
encode!
(
data
)
json
=
Ja
son
.
encode!
(
data
)
Enum
.
each
remote_inboxes
,
fn
(
inbox
)
->
Federator
.
enqueue
(
:publish_single_ap
,
%{
inbox:
inbox
,
json:
json
,
actor:
actor
,
id:
activity
.
data
[
"id"
]})
end
...
...
@@ -370,7 +370,7 @@ def fetch_object_from_id(id) do
Logger
.
info
(
"Fetching
#{
id
}
via AP"
)
with
true
<-
String
.
starts_with?
(
id
,
"http"
),
{
:ok
,
%{
body:
body
,
status_code:
code
}}
when
code
in
200
..
299
<-
@httpoison
.
get
(
id
,
[
Accept:
"application/activity+json"
],
follow_redirect:
true
,
timeout:
10000
,
recv_timeout:
20000
),
{
:ok
,
data
}
<-
Poi
son
.
decode
(
body
),
{
:ok
,
data
}
<-
Ja
son
.
decode
(
body
),
nil
<-
Object
.
get_by_ap_id
(
data
[
"id"
]),
params
<-
%{
"type"
=>
"Create"
,
"to"
=>
data
[
"to"
],
"cc"
=>
data
[
"cc"
],
"actor"
=>
data
[
"attributedTo"
],
"object"
=>
data
},
{
:ok
,
activity
}
<-
Transmogrifier
.
handle_incoming
(
params
)
do
...
...
lib/pleroma/web/mastodon_api/mastodon_api_controller.ex
View file @
d2099c84
...
...
@@ -284,7 +284,7 @@ def get_notification(%{assigns: %{user: user}} = conn, %{"id" => id} = _params)
{
:error
,
reason
}
->
conn
|>
put_resp_content_type
(
"application/json"
)
|>
send_resp
(
403
,
Poi
son
.
encode!
(%{
"error"
=>
reason
}))
|>
send_resp
(
403
,
Ja
son
.
encode!
(%{
"error"
=>
reason
}))
end
end
...
...
@@ -300,7 +300,7 @@ def dismiss_notification(%{assigns: %{user: user}} = conn, %{"id" => id} = _para
{
:error
,
reason
}
->
conn
|>
put_resp_content_type
(
"application/json"
)
|>
send_resp
(
403
,
Poi
son
.
encode!
(%{
"error"
=>
reason
}))
|>
send_resp
(
403
,
Ja
son
.
encode!
(%{
"error"
=>
reason
}))
end
end
...
...
@@ -381,7 +381,7 @@ def follow(%{assigns: %{user: follower}} = conn, %{"id" => id}) do
{
:error
,
message
}
->
conn
|>
put_resp_content_type
(
"application/json"
)
|>
send_resp
(
403
,
Poi
son
.
encode!
(%{
"error"
=>
message
}))
|>
send_resp
(
403
,
Ja
son
.
encode!
(%{
"error"
=>
message
}))
end
end
...
...
@@ -394,7 +394,7 @@ def follow(%{assigns: %{user: follower}} = conn, %{"uri" => uri}) do
{
:error
,
message
}
->
conn
|>
put_resp_content_type
(
"application/json"
)
|>
send_resp
(
403
,
Poi
son
.
encode!
(%{
"error"
=>
message
}))
|>
send_resp
(
403
,
Ja
son
.
encode!
(%{
"error"
=>
message
}))
end
end
...
...
@@ -419,7 +419,7 @@ def block(%{assigns: %{user: blocker}} = conn, %{"id" => id}) do
{
:error
,
message
}
->
conn
|>
put_resp_content_type
(
"application/json"
)
|>
send_resp
(
403
,
Poi
son
.
encode!
(%{
"error"
=>
message
}))
|>
send_resp
(
403
,
Ja
son
.
encode!
(%{
"error"
=>
message
}))
end
end
...
...
@@ -431,7 +431,7 @@ def unblock(%{assigns: %{user: blocker}} = conn, %{"id" => id}) do
{
:error
,
message
}
->
conn
|>
put_resp_content_type
(
"application/json"
)
|>
send_resp
(
403
,
Poi
son
.
encode!
(%{
"error"
=>
message
}))
|>
send_resp
(
403
,
Ja
son
.
encode!
(%{
"error"
=>
message
}))
end
end
...
...
@@ -565,7 +565,7 @@ def index(%{assigns: %{user: user}} = conn, _params) do
push_subscription:
nil
,
accounts:
accounts
,
custom_emojis:
mastodon_emoji
}
|>
Poi
son
.
encode!
}
|>
Ja
son
.
encode!
conn
|>
put_layout
(
false
)
|>
render
(
MastodonView
,
"index.html"
,
%{
initial_state:
initial_state
})
...
...
lib/pleroma/web/streamer.ex
View file @
d2099c84
...
...
@@ -42,8 +42,8 @@ def handle_cast(%{action: :stream, topic: "user", item: %Notification{} = item},
Enum
.
each
(
topics
[
topic
]
||
[],
fn
(
socket
)
->
json
=
%{
event:
"notification"
,
payload:
Pleroma
.
Web
.
MastodonAPI
.
MastodonAPIController
.
render_notification
(
socket
.
assigns
[
"user"
],
item
)
|>
Poi
son
.
encode!
}
|>
Poi
son
.
encode!
payload:
Pleroma
.
Web
.
MastodonAPI
.
MastodonAPIController
.
render_notification
(
socket
.
assigns
[
"user"
],
item
)
|>
Ja
son
.
encode!
}
|>
Ja
son
.
encode!
send
socket
.
transport_pid
,
{
:text
,
json
}
end
)
...
...
@@ -95,8 +95,8 @@ def push_to_socket(topics, topic, item) do
Enum
.
each
(
topics
[
topic
]
||
[],
fn
(
socket
)
->
json
=
%{
event:
"update"
,
payload:
Pleroma
.
Web
.
MastodonAPI
.
StatusView
.
render
(
"status.json"
,
activity:
item
,
for:
socket
.
assigns
[
:user
])
|>
Poi
son
.
encode!
}
|>
Poi
son
.
encode!
payload:
Pleroma
.
Web
.
MastodonAPI
.
StatusView
.
render
(
"status.json"
,
activity:
item
,
for:
socket
.
assigns
[
:user
])
|>
Ja
son
.
encode!
}
|>
Ja
son
.
encode!
send
socket
.
transport_pid
,
{
:text
,
json
}
end
)
...
...
lib/pleroma/web/twitter_api/representers/base_representer.ex
View file @
d2099c84
...
...
@@ -5,7 +5,7 @@ def to_json(object) do to_json(object, %{}) end
def
to_json
(
object
,
options
)
do
object
|>
to_map
(
options
)
|>
Poi
son
.
encode!
|>
Ja
son
.
encode!
end
def
enum_to_list
(
enum
,
options
)
do
...
...
@@ -21,7 +21,7 @@ def enum_to_json(enum) do enum_to_json(enum, %{}) end
def
enum_to_json
(
enum
,
options
)
do
enum
|>
enum_to_list
(
options
)
|>
Poi
son
.
encode!
|>
Ja
son
.
encode!
end
end
end
...
...
lib/pleroma/web/twitter_api/twitter_api.ex
View file @
d2099c84
...
...
@@ -169,7 +169,7 @@ def upload(%Plug.Upload{} = file, format \\ "xml") do
media_id_string:
"
#{
object
.
id
}
}"
,
media_url:
href
,
size:
0
}
|>
Poi
son
.
encode!
}
|>
Ja
son
.
encode!
end
end
...
...
@@ -190,7 +190,7 @@ def register_user(params) do
else
{
:error
,
changeset
}
->
errors
=
Ecto
.
Changeset
.
traverse_errors
(
changeset
,
fn
{
msg
,
_opts
}
->
msg
end
)
|>
Poi
son
.
encode!
|>
Ja
son
.
encode!
{
:error
,
%{
error:
errors
}}
end
end
...
...
lib/pleroma/web/twitter_api/twitter_api_controller.ex
View file @
d2099c84
...
...
@@ -44,7 +44,7 @@ defp extract_media_ids(status_data) do
def
public_and_external_timeline
(%{
assigns:
%{
user:
user
}}
=
conn
,
params
)
do
statuses
=
TwitterAPI
.
fetch_public_and_external_statuses
(
user
,
params
)
{
:ok
,
json
}
=
Poi
son
.
encode
(
statuses
)
{
:ok
,
json
}
=
Ja
son
.
encode
(
statuses
)
conn
|>
json_reply
(
200
,
json
)
...
...
@@ -52,7 +52,7 @@ def public_and_external_timeline(%{assigns: %{user: user}} = conn, params) do
def
public_timeline
(%{
assigns:
%{
user:
user
}}
=
conn
,
params
)
do
statuses
=
TwitterAPI
.
fetch_public_statuses
(
user
,
params
)
{
:ok
,
json
}
=
Poi
son
.
encode
(
statuses
)
{
:ok
,
json
}
=
Ja
son
.
encode
(
statuses
)
conn
|>
json_reply
(
200
,
json
)
...
...
@@ -60,7 +60,7 @@ def public_timeline(%{assigns: %{user: user}} = conn, params) do
def
friends_timeline
(%{
assigns:
%{
user:
user
}}
=
conn
,
params
)
do
statuses
=
TwitterAPI
.
fetch_friend_statuses
(
user
,
params
)
{
:ok
,
json
}
=
Poi
son
.
encode
(
statuses
)
{
:ok
,
json
}
=
Ja
son
.
encode
(
statuses
)
conn
|>
json_reply
(
200
,
json
)
...
...
@@ -85,7 +85,7 @@ def user_timeline(%{assigns: %{user: user}} = conn, params) do
params
=
Map
.
merge
(
params
,
%{
"actor_id"
=>
target_user
.
ap_id
,
"whole_db"
=>
true
})
statuses
=
TwitterAPI
.
fetch_user_statuses
(
user
,
params
)
conn
|>
json_reply
(
200
,
statuses
|>
Poi
son
.
encode!
)
|>
json_reply
(
200
,
statuses
|>
Ja
son
.
encode!
)
{
:error
,
msg
}
->
bad_request_reply
(
conn
,
msg
)
end
...
...
@@ -93,7 +93,7 @@ def user_timeline(%{assigns: %{user: user}} = conn, params) do
def
mentions_timeline
(%{
assigns:
%{
user:
user
}}
=
conn
,
params
)
do
statuses
=
TwitterAPI
.
fetch_mentions
(
user
,
params
)
{
:ok
,
json
}
=
Poi
son
.
encode
(
statuses
)
{
:ok
,
json
}
=
Ja
son
.
encode
(
statuses
)
conn
|>
json_reply
(
200
,
json
)
...
...
@@ -140,7 +140,7 @@ def unfollow(%{assigns: %{user: user}} = conn, params) do
end
def
fetch_status
(%{
assigns:
%{
user:
user
}}
=
conn
,
%{
"id"
=>
id
})
do
response
=
Poi
son
.
encode!
(
TwitterAPI
.
fetch_status
(
user
,
id
))
response
=
Ja
son
.
encode!
(
TwitterAPI
.
fetch_status
(
user
,
id
))
conn
|>
json_reply
(
200
,
response
)
...
...
@@ -148,7 +148,7 @@ def fetch_status(%{assigns: %{user: user}} = conn, %{"id" => id}) do
def
fetch_conversation
(%{
assigns:
%{
user:
user
}}
=
conn
,
%{
"id"
=>
id
})
do
id
=
String
.
to_integer
(
id
)
response
=
Poi
son
.
encode!
(
TwitterAPI
.
fetch_conversation
(
user
,
id
))
response
=
Ja
son
.
encode!
(
TwitterAPI
.
fetch_conversation
(
user
,
id
))
conn
|>
json_reply
(
200
,
response
)
...
...
@@ -200,7 +200,7 @@ def register(conn, params) do
else
{
:error
,
errors
}
->
conn
|>
json_reply
(
400
,
Poi
son
.
encode!
(
errors
))
|>
json_reply
(
400
,
Ja
son
.
encode!
(
errors
))
end
end
...
...
@@ -220,7 +220,7 @@ def update_banner(%{assigns: %{user: user}} = conn, params) do
{
:ok
,
user
}
<-
User
.
update_and_set_cache
(
change
)
do
CommonAPI
.
update
(
user
)
%{
"url"
=>
[
%{
"href"
=>
href
}
|
_
]}
=
object
.
data
response
=
%{
url:
href
}
|>
Poi
son
.
encode!
response
=
%{
url:
href
}
|>
Ja
son
.
encode!
conn
|>
json_reply
(
200
,
response
)
end
...
...
@@ -232,7 +232,7 @@ def update_background(%{assigns: %{user: user}} = conn, params) do
change
<-
User
.
info_changeset
(
user
,
%{
info:
new_info
}),
{
:ok
,
_user
}
<-
User
.
update_and_set_cache
(
change
)
do
%{
"url"
=>
[
%{
"href"
=>
href
}
|
_
]}
=
object
.
data
response
=
%{
url:
href
}
|>
Poi
son
.
encode!
response
=
%{
url:
href
}
|>
Ja
son
.
encode!
conn
|>
json_reply
(
200
,
response
)
end
...
...
@@ -240,7 +240,7 @@ def update_background(%{assigns: %{user: user}} = conn, params) do
def
external_profile
(%{
assigns:
%{
user:
current_user
}}
=
conn
,
%{
"profileurl"
=>
uri
})
do
with
{
:ok
,
user_map
}
<-
TwitterAPI
.
get_external_profile
(
current_user
,
uri
),
response
<-
Poi
son
.
encode!
(
user_map
)
do
response
<-
Ja
son
.
encode!
(
user_map
)
do
conn
|>
json_reply
(
200
,
response
)
else
...
...
@@ -259,7 +259,7 @@ def update_most_recent_notification(%{assigns: %{user: user}} = conn, %{"id" =>
changeset
<-
User
.
info_changeset
(
user
,
%{
info:
updated_info
}),
{
:ok
,
_user
}
<-
User
.
update_and_set_cache
(
changeset
)
do
conn
|>
json_reply
(
200
,
Poi
son
.
encode!
(
mrn
))
|>
json_reply
(
200
,
Ja
son
.
encode!
(
mrn
))
else
_e
->
bad_request_reply
(
conn
,
"Can't update."
)
end
...
...
@@ -287,7 +287,7 @@ def friends_ids(%{assigns: %{user: user}} = conn, _params) do
with
{
:ok
,
friends
}
<-
User
.
get_friends
(
user
)
do
ids
=
friends
|>
Enum
.
map
(
fn
x
->
x
.
id
end
)
|>
Poi
son
.
encode!
|>
Ja
son
.
encode!
json
(
conn
,
ids
)
else
...
...
@@ -296,7 +296,7 @@ def friends_ids(%{assigns: %{user: user}} = conn, _params) do
end
def
empty_array
(
conn
,
_params
)
do
json
(
conn
,
Poi
son
.
encode!
([]))
json
(
conn
,
Ja
son
.
encode!
([]))
end
def
update_profile
(%{
assigns:
%{
user:
user
}}
=
conn
,
params
)
do
...
...
@@ -339,6 +339,6 @@ defp forbidden_json_reply(conn, error_message) do
end
defp
error_json
(
conn
,
error_message
)
do
%{
"error"
=>
error_message
,
"request"
=>
conn
.
request_path
}
|>
Poi
son
.
encode!
%{
"error"
=>
error_message
,
"request"
=>
conn
.
request_path
}
|>
Ja
son
.
encode!
end
end
lib/pleroma/web/web_finger/web_finger.ex
View file @
d2099c84
...
...
@@ -4,7 +4,7 @@ defmodule Pleroma.Web.WebFinger do
alias
Pleroma
.
{
Repo
,
User
,
XmlBuilder
}
alias
Pleroma
.
Web
alias
Pleroma
.
Web
.
{
XML
,
Salmon
,
OStatus
}
require
Poi
son
require
Ja
son
require
Logger
def
host_meta
do
...
...
@@ -182,7 +182,7 @@ def finger(account) do
if
doc
!=
:error
do
webfinger_from_xml
(
doc
)
else
{
:ok
,
doc
}
=
Poi
son
.
decode
(
body
)
{
:ok
,
doc
}
=
Ja
son
.
decode
(
body
)
webfinger_from_json
(
doc
)
end
else
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment