projects
/
akkoma
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'feature/return-total-for-reports' into 'develop'
[akkoma]
/
lib
/
pleroma
/
web
/
streamer
/
state.ex
diff --git
a/lib/pleroma/web/streamer/state.ex
b/lib/pleroma/web/streamer/state.ex
index 7b5199068f2a1c82a5b40f333fae56dc6f181eef..c48752d95b2ab0d10d4dd2d523717b51b5711dc4 100644
(file)
--- a/
lib/pleroma/web/streamer/state.ex
+++ b/
lib/pleroma/web/streamer/state.ex
@@
-4,16
+4,18
@@
defmodule Pleroma.Web.Streamer.State do
alias Pleroma.Web.Streamer.StreamerSocket
alias Pleroma.Web.Streamer.StreamerSocket
+ @env Mix.env()
+
def start_link(_) do
GenServer.start_link(__MODULE__, %{sockets: %{}}, name: __MODULE__)
end
def add_socket(topic, socket) do
def start_link(_) do
GenServer.start_link(__MODULE__, %{sockets: %{}}, name: __MODULE__)
end
def add_socket(topic, socket) do
- GenServer.call(__MODULE__, {:add,
socket, topic
})
+ GenServer.call(__MODULE__, {:add,
topic, socket
})
end
def remove_socket(topic, socket) do
end
def remove_socket(topic, socket) do
-
GenServer.call(__MODULE__, {:remove, socket, topic}
)
+
do_remove_socket(@env, topic, socket
)
end
def get_sockets do
end
def get_sockets do
@@
-29,7
+31,7
@@
defmodule Pleroma.Web.Streamer.State do
{:reply, state, state}
end
{:reply, state, state}
end
- def handle_call({:add,
socket, topic
}, _from, %{sockets: sockets} = state) do
+ def handle_call({:add,
topic, socket
}, _from, %{sockets: sockets} = state) do
internal_topic = internal_topic(topic, socket)
stream_socket = StreamerSocket.from_socket(socket)
internal_topic = internal_topic(topic, socket)
stream_socket = StreamerSocket.from_socket(socket)
@@
-44,7
+46,7
@@
defmodule Pleroma.Web.Streamer.State do
{:reply, state, state}
end
{:reply, state, state}
end
- def handle_call({:remove,
socket, topic
}, _from, %{sockets: sockets} = state) do
+ def handle_call({:remove,
topic, socket
}, _from, %{sockets: sockets} = state) do
internal_topic = internal_topic(topic, socket)
stream_socket = StreamerSocket.from_socket(socket)
internal_topic = internal_topic(topic, socket)
stream_socket = StreamerSocket.from_socket(socket)
@@
-57,6
+59,14
@@
defmodule Pleroma.Web.Streamer.State do
{:reply, state, state}
end
{:reply, state, state}
end
+ defp do_remove_socket(:test, _, _) do
+ :ok
+ end
+
+ defp do_remove_socket(_env, topic, socket) do
+ GenServer.call(__MODULE__, {:remove, topic, socket})
+ end
+
defp internal_topic(topic, socket)
when topic in ~w[user user:notification direct] do
"#{topic}:#{socket.assigns[:user].id}"
defp internal_topic(topic, socket)
when topic in ~w[user user:notification direct] do
"#{topic}:#{socket.assigns[:user].id}"