content_html = add_user_links(content, mentions)
+ date = make_date()
+
activity = %{
"type" => "Create",
"to" => to,
"type" => "Note",
"to" => to,
"content" => content_html,
- "published" => make_date,
+ "published" => date,
"context" => context,
"attachment" => attachments
},
- "published" => make_date,
+ "published" => date,
"context" => context
}
end
def fetch_friend_statuses(user, opts \\ %{}) do
- ActivityPub.fetch_activities(user.following, opts)
+ ActivityPub.fetch_activities([user.ap_id | user.following], opts)
|> activities_to_statuses(%{for: user})
end
|> activities_to_statuses(%{for: user})
end
+ def fetch_user_statuses(user, opts \\ %{}) do
+ target = get_user(user, opts)
+ ActivityPub.fetch_activities([], Map.merge(opts, %{"actor_id" => target.ap_id}))
+ |> activities_to_statuses(%{for: user})
+ end
+
def fetch_conversation(user, id) do
query = from activity in Activity,
where: fragment("? @> ?", activity.data, ^%{ statusnetConversationId: id}),
"type" => "Follow",
"actor" => follower.ap_id,
"object" => followed.ap_id,
- "published" => make_date
+ "published" => make_date()
})
do
{ :ok, follower, followed, activity }
defp make_date do
DateTime.utc_now() |> DateTime.to_iso8601
end
+
+ defp get_user(user, params) do
+ case params do
+ %{ "user_id" => user_id } ->
+ Repo.get(User, user_id)
+ %{ "screen_name" => nickname } ->
+ Repo.get_by!(User, nickname: nickname)
+ _ ->
+ user
+ end
+ end
end