kopia lustrzana https://dev.funkwhale.audio/funkwhale/funkwhale
26 wiersze
777 B
Python
26 wiersze
777 B
Python
import json
|
|
import logging
|
|
|
|
from asgiref.sync import async_to_sync
|
|
from channels.layers import get_channel_layer
|
|
from django.core.serializers.json import DjangoJSONEncoder
|
|
|
|
logger = logging.getLogger(__name__)
|
|
channel_layer = get_channel_layer()
|
|
group_add = async_to_sync(channel_layer.group_add)
|
|
|
|
|
|
def group_send(group, event):
|
|
# we serialize the payload ourselves and deserialize it to ensure it
|
|
# works with msgpack. This is dirty, but we'll find a better solution
|
|
# later
|
|
s = json.dumps(event, cls=DjangoJSONEncoder)
|
|
event = json.loads(s)
|
|
logger.debug(
|
|
"[channels] Dispatching %s to group %s: %s",
|
|
event["type"],
|
|
group,
|
|
{"type": event["data"]["type"]},
|
|
)
|
|
async_to_sync(channel_layer.group_send)(group, event)
|