end
end
- def publish(topic, user, activity) do
+ @supported_activities [
+ "Create",
+ "Follow",
+ "Like",
+ "Announce",
+ "Undo",
+ "Delete"
+ ]
+ def publish(topic, user, %{data: %{"type" => type}} = activity) when type in @supported_activities do
# TODO: Only send to still valid subscriptions.
query = from sub in WebsubServerSubscription,
- where: sub.topic == ^topic and sub.state == "active"
+ where: sub.topic == ^topic and sub.state == "active",
+ where: fragment("? > NOW()", sub.valid_until)
subscriptions = Repo.all(query)
Enum.each(subscriptions, fn(sub) ->
response = user
Pleroma.Web.Federator.enqueue(:publish_single_websub, data)
end)
end
+ def publish(_,_,_), do: ""
def sign(secret, doc) do
:crypto.hmac(:sha, secret, to_string(doc)) |> Base.encode16 |> String.downcase
{:ok, websub}
else {:error, reason} ->
- Logger.debug("Couldn't create subscription.")
+ Logger.debug("Couldn't create subscription")
Logger.debug(inspect(reason))
{:error, reason}