Example #1
0
def ws_disconnect(message):
    """
    Channels connection close.
    Deregister the client
    """
    language = message.channel_session['knocker']
    gr = Group('knocker-{0}'.format(language))
    gr.discard(message.reply_channel)
Example #2
0
def ws_disconnect(message):
    """
    Channels connection close.
    Deregister the client
    """
    language = message.channel_session['knocker']
    gr = Group('knocker-{0}'.format(language))
    gr.discard(message.reply_channel)
Example #3
0
def disconnect_group_by_arrival_time(message, params):
    session_pk, page_index, app_name, player_id = params.split(',')
    session_pk = int(session_pk)
    page_index = int(page_index)

    group_name = channels_group_by_arrival_time_group_name(session_pk, page_index)
    group = Group(group_name)
    group.discard(message.reply_channel)
Example #4
0
def ws_disconnect(message):
    try:
        label = message.channel_session['room']
        room = Room.objects.get(label=label)
        group = Group('chat-' + label, channel_layer=message.channel_layer)
        group.discard(message.reply_channel)
        send_user_login(group, message, False)
    except (KeyError, Room.DoesNotExist):
        pass
Example #5
0
def disconnect_wait_page(message, params):
    app_label, page_index, model_name, model_pk = params.split(',')
    page_index = int(page_index)
    model_pk = int(model_pk)

    group_name = channels_wait_page_group_name(app_label, page_index,
                                               model_name, model_pk)
    group = Group(group_name)
    group.discard(message.reply_channel)
Example #6
0
def disconnect_wait_page(message, params):
    app_label, page_index, model_name, model_pk = params.split(',')
    page_index = int(page_index)
    model_pk = int(model_pk)

    group_name = channels_wait_page_group_name(
        app_label, page_index, model_name, model_pk
    )
    group = Group(group_name)
    group.discard(message.reply_channel)
Example #7
0
def disconnect_wait_page(message, params):
    session_pk, page_index, group_id_in_subsession = params.split(',')
    session_pk = int(session_pk)
    page_index = int(page_index)

    group_name = channels_wait_page_group_name(
        session_pk, page_index, group_id_in_subsession
    )

    group = Group(group_name)
    group.discard(message.reply_channel)
Example #8
0
def party_connected(message, party_id):
    if party_id != message.http_session['party_id']:
        raise Exception(
            f"Party ID mismatch: {party_id} != {message.channel_session['party_id']}"
        )
    old_member_id = message.http_session.get('member_id')
    if old_member_id:
        try:
            member = PartyMember.objects.get(id=old_member_id)
        except:
            pass
        else:
            if member.nick:
                group = Group(f"party-{member.party.id}")
                group.send({
                    "text":
                    json.dumps({
                        "action": "member_left",
                        "channel": member.channel,
                        "nick": member.nick
                    })
                })
                group.discard(message.reply_channel)
            member.delete()
        message.http_session.delete('member_id')
    party = Party.objects.get(id=party_id)
    if party.members.count() >= 6:
        print("Too many members!")
        message.reply_channel.send({
            "text":
            json.dumps({
                "action": "goodbye",
                "message": "room_full"
            })
        })
        message.reply_channel.send({"close": True})
        return
    member = PartyMember(party=party, channel=message.reply_channel.name)
    member.save()
    message.http_session['member_id'] = member.id
    message.http_session.save()
    message.reply_channel.send({"accept": True})
    message.reply_channel.send({
        "text":
        json.dumps({
            "action": "hello",
            "channel": message.reply_channel.name
        })
    })
Example #9
0
def ws_disconnect(message):
    try:
        label = message.channel_session['room']
        room = Room.objects.get(label=label)
        group = Group('chat-' + label, channel_layer=message.channel_layer)
        group.discard(message.reply_channel)
        position = message.channel_session['position']
        player = room.player_set.filter(position=position).first()
        room.player_set.remove(player)
        room.capacity += 1
        room.save()
        send_players_update(room, group)

    except (KeyError, Room.DoesNotExist):
        pass
Example #10
0
def party_disconnected(message):
    if 'member_id' not in message.http_session:
        return
    try:
        PartyMember.objects.get(id=message.http_session['member_id']).delete()
    except PartyMember.DoesNotExist:
        print("No such party member.")
    message.http_session.delete('member_id')
    message.http_session.save()
    if 'nickname' not in message.http_session:
        return
    group = Group(f"party-{message.http_session['party_id']}")
    group.discard(message.reply_channel)
    group.send({
        "text":
        json.dumps({
            "action": "member_left",
            "channel": message.reply_channel.name,
            "nick": message.http_session['nickname']
        })
    })
Example #11
0
def chat_receive(msg):
    if not msg.user.is_authenticated():
        # TODO
        return
    data = json.loads(msg.content['text'])
    pprint(data)
    tag = data['tag']
    room = data['data']['room']
    group = Group('chat-' + room)
    if tag == 'send':
        group.add(msg.reply_channel)
        group.send({
            'text':
            json.dumps({
                'user': msg.user.player.id,
                'room': room,
                'msg': data['data']['msg'],
            }),
        })
    elif tag == 'subscribe':
        if data['data']['yes']:
            group.add(msg.reply_channel)
        else:
            group.discard(msg.reply_channel)
Example #12
0
def disconnect_auto_advance(message, params):
    participant_code, page_index = params.split(',')

    group = Group('auto-advance-{}'.format(participant_code))
    group.discard(message.reply_channel)
Example #13
0
def disconnect_wait_for_session(message, pre_create_id):
    group = Group(
        channels_create_session_group_name(pre_create_id)
    )
    group.discard(message.reply_channel)
Example #14
0
def disconnect_auto_advance(message, params):
    participant_code, page_index = params.split(',')

    group = Group('auto-advance-{}'.format(participant_code))
    group.discard(message.reply_channel)
 def disconnect(self, request, *args, **kwargs):
     band_id = kwargs.get("band_id")
     group = Group(self.CHAT_GROUP_TEMPLATE % band_id)
     group.discard(request.reply_channel)
Example #16
0
def disconnect_wait_for_session(message, pre_create_id):
    group = Group(
        channels_create_session_group_name(pre_create_id)
    )
    group.discard(message.reply_channel)
Example #17
0
def ws_disconnect(message, room):
    g = Group('chat:{}'.format(room))
    g.discard(message.reply_channel)
    data = {'text': 'A user disconnected', 'type': 'log'}
    g.send({'text': json.dumps(data)})
def chat_disconnect(message):
    room = message.channel_session['room']

    group = Group('chat-%s' % room)
    group.discard(message.reply_channel)
Example #19
0
def ws_disconnect(message, post_pk):
    group = Group('post-{}'.format(post_pk))
    group.discard(message.reply_channel)

    group = Group(message.channel_session['session_group_name'])
    group.discard(message.reply_channel)
Example #20
0
def ws_disconnect(message):
    group = Group("room-%s" % message.user.id)
    group.discard(message.reply_channel)
Example #21
0
def clear_group(group_name):
    print("Disconnecting previously connected chefs in group %s" % group_name)
    group = Group(group_name)
    chans = channel_layers.backends['default'].channel_layer.group_channels(group_name)
    for chan in chans:
        group.discard(chan)
def chat_disconnect(message):
    room = message.channel_session['room']

    group = Group('chat-%s' % room)
    group.discard(message.reply_channel)