예제 #1
0
파일: views.py 프로젝트: Rudy24/modnoemesto
def receive(request):
    if request.method != 'POST':
        raise Http404
    post = request.POST

    if not post.get('chat_id', None) or not post.get('offset', None):
        raise Http404

    try:
        chat_id = post['chat_id']
    except:
        raise Http404

    storage = ChatStorage(chat_id)
    storage.set_user_online(request.user.pk)

    offset = post['offset']

    if offset == u'0':
        offset = datetime(2000, 01, 01).strftime(settings.CHAT_MESSAGE_DATE_FORMAT)

    storage = ChatStorage(chat_id)
    json_data = storage.get_by_offset_json(offset)

    return HttpResponse(json_data)
예제 #2
0
파일: views.py 프로젝트: Rudy24/modnoemesto
def join(request):
    chat_id = request.POST.get("chat_id", "")

    storage = ChatStorage(chat_id)
    user = User.objects.get(pk=request.user.pk)
    text = u"%s входит в чат." % user.get_full_name()
    message = Message(request.user.pk, text, type=Message.TYPE_SYSTEM)
    storage.put(message)
    return HttpResponse('')
예제 #3
0
파일: views.py 프로젝트: dgk/modnoemesto
def send(request):
    chat_id = request.POST.get("chat_id", "")
    message = request.POST.get("message", "")
    message = clean_message(message)

    storage = ChatStorage(chat_id)
    message = Message(request.user.pk, message)
    storage.put(message)
    return HttpResponse('')
예제 #4
0
파일: views.py 프로젝트: Rudy24/modnoemesto
def send(request):
    chat_id = request.POST.get("chat_id", "")
    message = request.POST.get("message", "")
    message = clean_message(message)

    storage = ChatStorage(chat_id)
    message = Message(request.user.pk, message)
    storage.put(message)
    return HttpResponse('')
예제 #5
0
파일: views.py 프로젝트: dgk/modnoemesto
def join(request):
    chat_id = request.POST.get("chat_id", "")

    storage = ChatStorage(chat_id)
    user = User.objects.get(pk=request.user.pk)
    text = u"%s входит в чат." % user.get_full_name()
    message = Message(request.user.pk, text, type=Message.TYPE_SYSTEM)
    storage.put(message)
    return HttpResponse('')
예제 #6
0
파일: tests.py 프로젝트: Rudy24/modnoemesto
 def test_storage_poinert_overflow(self):
     chat = self.chat
     storage = ChatStorage(chat.id)
     user_id = self.test_user.id
     text = "test message %d"
     messages = deque([], settings.CHAT_MAX_ITEMS)
     for i in range(settings.CHAT_MAX_ITEMS + 7):
         message = Message(user_id, text % i)
         messages.append(message)
         storage.put(message)
     #time.sleep(2)
     storage = ChatStorage(chat.id)
     self.failUnlessEqual(list(messages), storage.all())
예제 #7
0
파일: tests.py 프로젝트: Rudy24/modnoemesto
    def test_storage_poinert(self):
        chat = self.chat
        storage = ChatStorage(chat.id)
        user_id = self.test_user.id
        text = "test message %d"
        messages = []
        for i in range(2):
            message = Message(user_id, text % i)
            messages.append(message)
            storage.put(message)

        storage = ChatStorage(chat.id)
        self.failUnlessEqual(messages, storage.all())
예제 #8
0
파일: views.py 프로젝트: dgk/modnoemesto
def receive(request):
    if request.method != 'POST':
        raise Http404
    post = request.POST

    if not post.get('chat_id', None) or not post.get('offset', None):
        raise Http404

    try:
        chat_id = post['chat_id']
    except:
        raise Http404

    storage = ChatStorage(chat_id)
    storage.set_user_online(request.user.pk)

    offset = post['offset']

    if offset == u'0':
        offset = datetime(2000, 01,
                          01).strftime(settings.CHAT_MESSAGE_DATE_FORMAT)

    storage = ChatStorage(chat_id)
    json_data = storage.get_by_offset_json(offset)

    return HttpResponse(json_data)
예제 #9
0
파일: tests.py 프로젝트: dgk/modnoemesto
    def test_storage(self):
        chat = self.chat
        storage = ChatStorage(chat.id)
        self.failUnlessEqual([], storage.all())

        user_id = self.test_user.id
        text = "test message"

        message = Message(user_id, text)
        storage.put(message)

        storage = ChatStorage(chat.id)
        self.failUnlessEqual([message], storage.all())
예제 #10
0
파일: tests.py 프로젝트: dgk/modnoemesto
 def test_storage_poinert_overflow(self):
     chat = self.chat
     storage = ChatStorage(chat.id)
     user_id = self.test_user.id
     text = "test message %d"
     messages = deque([], settings.CHAT_MAX_ITEMS)
     for i in range(settings.CHAT_MAX_ITEMS + 7):
         message = Message(user_id, text % i)
         messages.append(message)
         storage.put(message)
     #time.sleep(2)
     storage = ChatStorage(chat.id)
     self.failUnlessEqual(list(messages), storage.all())
예제 #11
0
파일: tests.py 프로젝트: dgk/modnoemesto
    def test_storage_poinert(self):
        chat = self.chat
        storage = ChatStorage(chat.id)
        user_id = self.test_user.id
        text = "test message %d"
        messages = []
        for i in range(2):
            message = Message(user_id, text % i)
            messages.append(message)
            storage.put(message)

        storage = ChatStorage(chat.id)
        self.failUnlessEqual(messages, storage.all())
예제 #12
0
파일: tests.py 프로젝트: Rudy24/modnoemesto
    def test_storage(self):
        chat = self.chat
        storage = ChatStorage(chat.id)
        self.failUnlessEqual([], storage.all())

        user_id = self.test_user.id
        text = "test message"

        message = Message(user_id, text)
        storage.put(message)

        storage = ChatStorage(chat.id)
        self.failUnlessEqual([message], storage.all())
예제 #13
0
파일: tests.py 프로젝트: Rudy24/modnoemesto
    def _test_users_online(self):
        chat = self.chat
        storage = ChatStorage(chat.id)

        user_id = self.current_user.pk
        self.failUnlessEqual(0, len(storage.online_users()))
        storage.set_user_online(user_id)
        self.failUnlessEqual(1, len(storage.online_users()))

        user_id = random.randint(0, 100)
        storage.set_user_online(user_id)
        self.failUnlessEqual(2, len(storage.online_users()))

        storage.set_user_offline(user_id)
        self.failUnlessEqual(1, len(storage.online_users()))
예제 #14
0
파일: views.py 프로젝트: dgk/modnoemesto
def leave(request):
    chat_id = request.POST.get("chat_id", "")

    storage = ChatStorage(chat_id)
    storage.set_user_offline(request.user.pk)
    return HttpResponse('')
예제 #15
0
파일: views.py 프로젝트: dgk/modnoemesto
def sync(request):
    chat_id = request.POST.get('id')
    storage = ChatStorage(chat_id)

    return HttpResponse(storage.all_json())
예제 #16
0
파일: views.py 프로젝트: Rudy24/modnoemesto
def sync(request):
    chat_id = request.POST.get('id')
    storage = ChatStorage(chat_id)

    return HttpResponse(storage.all_json())
예제 #17
0
파일: tests.py 프로젝트: dgk/modnoemesto
    def _test_users_online(self):
        chat = self.chat
        storage = ChatStorage(chat.id)

        user_id = self.current_user.pk
        self.failUnlessEqual(0, len(storage.online_users()))
        storage.set_user_online(user_id)
        self.failUnlessEqual(1, len(storage.online_users()))

        user_id = random.randint(0, 100)
        storage.set_user_online(user_id)
        self.failUnlessEqual(2, len(storage.online_users()))

        storage.set_user_offline(user_id)
        self.failUnlessEqual(1, len(storage.online_users()))
예제 #18
0
파일: views.py 프로젝트: Rudy24/modnoemesto
def leave(request):
    chat_id = request.POST.get("chat_id", "")

    storage = ChatStorage(chat_id)
    storage.set_user_offline(request.user.pk)
    return HttpResponse('')