Exemple #1
0
def archive_messages(request):

    room_name = request.POST['room']
    if room_name == 'global':
        date = request.POST['date']
        date = date.split("/", 4)
        hours = request.POST['hours']

        date_time_started = datetime(int(date[2]), int(date[0]), int(date[1]), int(date[3]), 0, 0)
        date_time_finished = datetime(int(date[2]), int(date[0]), int(date[1]), int(date[3]), 0, 0) + timedelta(hours = int(hours))
    else:
        date = request.POST['date']
        date = date.split("/", 3)

        date_time_started = datetime(int(date[2]), int(date[0]), int(date[1]), 0, 0, 0)
        date_time_finished = datetime(int(date[2]), int(date[0]), int(date[1]), 0, 0, 0) + timedelta(hours = 24)


    messages = ChatMessage.objects.filter(destRoom__name=room_name).filter(messType="normal").filter(timeStamp__gte=date_time_started).filter(timeStamp__lte=date_time_finished)


    user = get_author(request)
    obj = {'user': unicode(user)}
    obj['count'] = messages.count()
    obj['msgs'] = create_message(user, messages)
    return HttpResponse(simplejson.dumps(obj))
Exemple #2
0
def private_log(request):
    user = get_author(request)
    position = request.POST['number']
    room = roomexist(request.POST['room'])

    return HttpResponse(
        simplejson.dumps(some_old_message(user, room, position)))
Exemple #3
0
def archive(request):
    user = request.user.get_profile()
    chat_user = get_author(request)

    if user.has_modifier('block-global-chat-page') or user.has_modifier('block-communication') or not chat_user.canAccessChat:
        return HttpResponseRedirect(reverse('wouso.interface.views.homepage'))
    if BoolSetting.get('disable-Chat').get_value():
        return HttpResponseRedirect(reverse('wouso.interface.views.homepage'))

    return render_to_response('chat/archive.html',
            {'chat_user': user,
             },
        context_instance=RequestContext(request))
Exemple #4
0
def private_log(request):
    user = get_author(request)
    position = request.POST['number']
    room = roomexist(request.POST['room'])

    return HttpResponse(simplejson.dumps(some_old_message(user, room, position)))
Exemple #5
0
def sendmessage(request):
    """ Default endpoint (/chat/m/)
    """
    user = get_author(request)
    data = request.REQUEST

    if data['opcode'] == 'message':
        room = roomexist(data['room'])
        if user.user.has_perm('chat.super_chat_user'):
            if data['msg'][0] == '/' and data['room'] == 'global':
                text = data['msg'].split(" ")
                if len(text) > 1:
                    try:
                        sender = Player.objects.get(nickname=text[1])
                        sender = sender.user.get_profile().get_extension(ChatUser)
                    except:
                        return json_response(serve_message(user))

                    if text[0] == '/kick':
                        add_message(text[1], user, room, sender, "special", "kick")
                    if text[0] == '/unban':
                        sender.canAccessChat = True
                        sender.save()
                    if text[0] == '/ban':
                        sender.canAccessChat = False
                        sender.save()
                    return json_response(serve_message(user))


        try:
            assert room is not None
            # content, author, room, user_to, messType, command
            add_message(data['msg'], user, room, user, "normal", "normal")
        except (ValueError, AssertionError):
            return HttpResponseBadRequest()
    elif data['opcode'] == 'keepAlive':
        chat_global = roomexist('global')
        if user.has_modifier('block-communication'):
            return json_response(special_message(user, None, "block-communication"))
        elif user.has_modifier('block-global-chat-page') or not user.canAccessChat:
            return json_response(special_message(user, None, "kick"))

        if user not in chat_global.participants.all():
            chat_global.participants.add(user)
            user.lastMessageTS = datetime.now()
            user.save()
    elif data['opcode'] == 'getRoom':
        try:
            user_to = Player.objects.get(id=data['to'])
            user_to = user_to.get_extension(ChatUser)
        except ChatUser.DoesNotExist:
            return HttpResponseBadRequest()
        if user.has_modifier('block-communication'):
            return HttpResponseBadRequest()
        if user_to.has_modifier('block-communication'):
            return HttpResponseBadRequest()
        rooms = ChatRoom.objects.exclude(name='global').filter(participants=user).filter(participants=user_to)
        rooms = [r for r in rooms if r.participants.count() <= 2]
        if len(rooms) > 1:
            return HttpResponseBadRequest()
        if rooms:
            room = rooms[0]
        else:
            name = '%d-%d' % ((user.id, user_to.id) if user.id < user_to.id else (user_to.id, user.id))
            room = ChatRoom.create(name)
        room.participants.add(user)
        room.participants.add(user_to.id)
        return json_response(room.to_dict())
    return json_response(serve_message(user))