end
def home_timeline(%{assigns: %{user: user}} = conn, params) do
- activities = ActivityPub.fetch_activities([user.ap_id | user.following], Map.put(params, "type", "Create"))
+ params = params
+ |> Map.put("type", ["Create", "Announce"])
+
+ activities = ActivityPub.fetch_activities([user.ap_id | user.following], params)
|> Enum.reverse
conn
def public_timeline(%{assigns: %{user: user}} = conn, params) do
params = params
- |> Map.put("type", "Create")
+ |> Map.put("type", ["Create", "Announce"])
|> Map.put("local_only", !!params["local"])
activities = ActivityPub.fetch_public_activities(params)
def user_statuses(%{assigns: %{user: user}} = conn, params) do
with %User{ap_id: ap_id} <- Repo.get(User, params["id"]) do
params = params
- |> Map.put("type", "Create")
+ |> Map.put("type", ["Create", "Announce"])
|> Map.put("actor_id", ap_id)
activities = ActivityPub.fetch_activities([], params)
end
end
- def search(%{assigns: %{user: user}} = conn, %{"q" => query}) do
+ def search(%{assigns: %{user: user}} = conn, %{"q" => query} = params) do
+ if params["resolve"] == "true" do
+ User.get_or_fetch_by_nickname(query)
+ end
+
q = from u in User,
where: fragment("(to_tsvector('english', ?) || to_tsvector('english', ?)) @@ plainto_tsquery('english', ?)", u.nickname, u.name, ^query),
limit: 20
json(conn, res)
end
+ def favourites(%{assigns: %{user: user}} = conn, params) do
+ params = conn
+ |> Map.put("type", "Create")
+ |> Map.put("favorited_by", user.ap_id)
+
+ activities = ActivityPub.fetch_activities([], params)
+ |> Enum.reverse
+
+ conn
+ |> render(StatusView, "index.json", %{activities: activities, for: user, as: :activity})
+ end
+
def relationship_noop(%{assigns: %{user: user}} = conn, %{"id" => id}) do
Logger.debug("Unimplemented, returning unmodified relationship")
with %User{} = target <- Repo.get(User, id) do