projects
/
akkoma
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Prefer naming this put_application because we're putting it into the params map
[akkoma]
/
lib
/
pleroma
/
object.ex
diff --git
a/lib/pleroma/object.ex
b/lib/pleroma/object.ex
index 8836beaac8f55c635c27af434c424ea9943d6801..aaf12384004c37911063e4e82e9b8a3ec49a88e1 100644
(file)
--- a/
lib/pleroma/object.ex
+++ b/
lib/pleroma/object.ex
@@
-1,5
+1,5
@@
# Pleroma: A lightweight social networking server
# Pleroma: A lightweight social networking server
-# Copyright © 2017-202
0
Pleroma Authors <https://pleroma.social/>
+# Copyright © 2017-202
1
Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.Object do
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.Object do
@@
-108,39
+108,42
@@
defmodule Pleroma.Object do
Logger.debug("Backtrace: #{inspect(Process.info(:erlang.self(), :current_stacktrace))}")
end
Logger.debug("Backtrace: #{inspect(Process.info(:erlang.self(), :current_stacktrace))}")
end
- def normalize(_,
fetch_remote \\ true, options \\ [
])
+ def normalize(_,
options \\ [fetch: false
])
# If we pass an Activity to Object.normalize(), we can try to use the preloaded object.
# Use this whenever possible, especially when walking graphs in an O(N) loop!
# If we pass an Activity to Object.normalize(), we can try to use the preloaded object.
# Use this whenever possible, especially when walking graphs in an O(N) loop!
- def normalize(%Object{} = object, _
, _
), do: object
- def normalize(%Activity{object: %Object{} = object}, _
, _
), do: object
+ def normalize(%Object{} = object, _), do: object
+ def normalize(%Activity{object: %Object{} = object}, _), do: object
# A hack for fake activities
# A hack for fake activities
- def normalize(%Activity{data: %{"object" => %{"fake" => true} = data}}, _
, _
) do
+ def normalize(%Activity{data: %{"object" => %{"fake" => true} = data}}, _) do
%Object{id: "pleroma:fake_object_id", data: data}
end
# No preloaded object
%Object{id: "pleroma:fake_object_id", data: data}
end
# No preloaded object
- def normalize(%Activity{data: %{"object" => %{"id" => ap_id}}},
fetch_remote, _
) do
+ def normalize(%Activity{data: %{"object" => %{"id" => ap_id}}},
options
) do
warn_on_no_object_preloaded(ap_id)
warn_on_no_object_preloaded(ap_id)
- normalize(ap_id,
fetch_remote
)
+ normalize(ap_id,
options
)
end
# No preloaded object
end
# No preloaded object
- def normalize(%Activity{data: %{"object" => ap_id}},
fetch_remote, _
) do
+ def normalize(%Activity{data: %{"object" => ap_id}},
options
) do
warn_on_no_object_preloaded(ap_id)
warn_on_no_object_preloaded(ap_id)
- normalize(ap_id,
fetch_remote
)
+ normalize(ap_id,
options
)
end
# Old way, try fetching the object through cache.
end
# Old way, try fetching the object through cache.
- def normalize(%{"id" => ap_id}, fetch_remote, _), do: normalize(ap_id, fetch_remote)
- def normalize(ap_id, false, _) when is_binary(ap_id), do: get_cached_by_ap_id(ap_id)
+ def normalize(%{"id" => ap_id}, options), do: normalize(ap_id, options)
- def normalize(ap_id, true, options) when is_binary(ap_id) do
- Fetcher.fetch_object_from_id!(ap_id, options)
+ def normalize(ap_id, options) when is_binary(ap_id) do
+ if Keyword.get(options, :fetch) do
+ Fetcher.fetch_object_from_id!(ap_id, options)
+ else
+ get_cached_by_ap_id(ap_id)
+ end
end
end
- def normalize(_, _
, _
), do: nil
+ def normalize(_, _), do: nil
# Owned objects can only be accessed by their owner
def authorize_access(%Object{data: %{"actor" => actor}}, %User{ap_id: ap_id}) do
# Owned objects can only be accessed by their owner
def authorize_access(%Object{data: %{"actor" => actor}}, %User{ap_id: ap_id}) do
@@
-285,7
+288,7
@@
defmodule Pleroma.Object do
end
def increase_vote_count(ap_id, name, actor) do
end
def increase_vote_count(ap_id, name, actor) do
- with %Object{} = object <- Object.normalize(ap_id),
+ with %Object{} = object <- Object.normalize(ap_id
, fetch: false
),
"Question" <- object.data["type"] do
key = if poll_is_multiple?(object), do: "anyOf", else: "oneOf"
"Question" <- object.data["type"] do
key = if poll_is_multiple?(object), do: "anyOf", else: "oneOf"
@@
-326,7
+329,7
@@
defmodule Pleroma.Object do
end
def replies(object, opts \\ []) do
end
def replies(object, opts \\ []) do
- object = Object.normalize(object)
+ object = Object.normalize(object
, fetch: false
)
query =
Object
query =
Object
@@
-346,8
+349,4
@@
defmodule Pleroma.Object do
def self_replies(object, opts \\ []),
do: replies(object, Keyword.put(opts, :self_only, true))
def self_replies(object, opts \\ []),
do: replies(object, Keyword.put(opts, :self_only, true))
-
- def hashtags(%Object{data: %{"hashtags" => hashtags}}), do: hashtags || []
- def hashtags(%Object{data: %{"tag" => tags}}), do: Enum.filter(tags, &is_bitstring(&1))
- def hashtags(_), do: []
end
end