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