projects
/
akkoma
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Return note objects as ostatus post activities.
[akkoma]
/
lib
/
pleroma
/
web
/
activity_pub
/
activity_pub.ex
diff --git
a/lib/pleroma/web/activity_pub/activity_pub.ex
b/lib/pleroma/web/activity_pub/activity_pub.ex
index 9441a37aba9b263b51a88176ff64590391fe00b7..194a5ec3d150d5a752ff9754c0dfd2c96c77c203 100644
(file)
--- a/
lib/pleroma/web/activity_pub/activity_pub.ex
+++ b/
lib/pleroma/web/activity_pub/activity_pub.ex
@@
-3,7
+3,7
@@
defmodule Pleroma.Web.ActivityPub.ActivityPub do
alias Pleroma.{Activity, Object, Upload, User}
import Ecto.Query
alias Pleroma.{Activity, Object, Upload, User}
import Ecto.Query
- def insert(map) when is_map(map) do
+ def insert(map
, local \\ true
) when is_map(map) do
map = map
|> Map.put_new_lazy("id", &generate_activity_id/0)
|> Map.put_new_lazy("published", &make_date/0)
map = map
|> Map.put_new_lazy("id", &generate_activity_id/0)
|> Map.put_new_lazy("published", &make_date/0)
@@
-16,10
+16,10
@@
defmodule Pleroma.Web.ActivityPub.ActivityPub do
map
end
map
end
- Repo.insert(%Activity{data: map})
+ Repo.insert(%Activity{data: map
, local: local
})
end
end
- def create(to, actor, context, object, additional \\ %{}, published \\ nil) do
+ def create(to, actor, context, object, additional \\ %{}, published \\ nil
, local \\ true
) do
published = published || make_date()
activity = %{
published = published || make_date()
activity = %{
@@
-32,7
+32,7
@@
defmodule Pleroma.Web.ActivityPub.ActivityPub do
}
|> Map.merge(additional)
}
|> Map.merge(additional)
- with {:ok, activity} <- insert(activity) do
+ with {:ok, activity} <- insert(activity
, local
) do
if actor.local do
Pleroma.Web.Federator.enqueue(:publish, activity)
end
if actor.local do
Pleroma.Web.Federator.enqueue(:publish, activity)
end
@@
-55,7
+55,8
@@
defmodule Pleroma.Web.ActivityPub.ActivityPub do
"type" => "Like",
"actor" => ap_id,
"object" => id,
"type" => "Like",
"actor" => ap_id,
"object" => id,
- "to" => [User.ap_followers(user), object.data["actor"]]
+ "to" => [User.ap_followers(user), object.data["actor"]],
+ "context" => object.data["context"]
}
{:ok, activity} = insert(data)
}
{:ok, activity} = insert(data)
@@
-71,6
+72,10
@@
defmodule Pleroma.Web.ActivityPub.ActivityPub do
update_object_in_activities(object)
update_object_in_activities(object)
+ if user.local do
+ Pleroma.Web.Federator.enqueue(:publish, activity)
+ end
+
{:ok, activity, object}
end
end
{:ok, activity, object}
end
end
@@
-121,7
+126,7
@@
defmodule Pleroma.Web.ActivityPub.ActivityPub do
end
def generate_object_id do
end
def generate_object_id do
-
generate_id("objects"
)
+
Pleroma.Web.Router.Helpers.o_status_url(Pleroma.Web.Endpoint, :object, Ecto.UUID.generate
)
end
def generate_id(type) do
end
def generate_id(type) do
@@
-149,6
+154,12
@@
defmodule Pleroma.Web.ActivityPub.ActivityPub do
query = from activity in query,
where: activity.id > ^since_id
query = from activity in query,
where: activity.id > ^since_id
+ query = if opts["local_only"] do
+ from activity in query, where: activity.local == true
+ else
+ query
+ end
+
query = if opts["max_id"] do
from activity in query, where: activity.id < ^opts["max_id"]
else
query = if opts["max_id"] do
from activity in query, where: activity.id < ^opts["max_id"]
else
@@
-171,7
+182,8
@@
defmodule Pleroma.Web.ActivityPub.ActivityPub do
"type" => "Announce",
"actor" => ap_id,
"object" => id,
"type" => "Announce",
"actor" => ap_id,
"object" => id,
- "to" => [User.ap_followers(user), object.data["actor"]]
+ "to" => [User.ap_followers(user), object.data["actor"]],
+ "context" => object.data["context"]
}
{:ok, activity} = insert(data)
}
{:ok, activity} = insert(data)