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))
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)))
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))
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)))
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))