def set_playback_data(request):
    comment = None

    if 'uuid' not in request.POST:
        try:
            comment_id = request.POST['comment_id']
        except KeyError:
            raise ServiceError("Missing comment ID.")

        comment = get_object_or_404(QuestComment, id=comment_id)

        if request.user.id != comment.author.id:
            raise ServiceError("Can't upload playback data to a drawing you didn't create.")

    if 'playback_plist_data' in request.FILES:
        #plist = readPlistFromBytes(b''.join(request.FILES.get('playback_plist_data').chunks()))
        plist = readPlist(request.FILES['playback_plist_data'])
        playback_data = json.backend_dumps(plist)
    elif 'playback_data' in request.FILES:
        playback_data = u''.join(request.FILES.get('playback_data').chunks())
    else:
        playback_data = request.POST['playback_data']

    if comment is not None:
        save_playback_data(playback_data, comment=comment)
    else:
        save_playback_data(playback_data, uuid=request.POST['uuid'])
Exemple #2
0
def create_quest_comment(quest=None, author=None, playback_data=None):
    if author is None:
        author = create_user()

    if quest is None:
        quest = create_quest()

    content = create_content()
    cmt = create_comment(parent_comment=quest, reply_content=content, author=author)

    cmt = QuestComment.objects.get(id=cmt.id)

    if playback_data is not None:
        save_playback_data(playback_data, comment=cmt)

    return cmt