Example #1
0
def set_youku_playlist_view(request, youku_id):
    """
    根据youku的youku playlist属性,在优酷网上将youku对象添加到该playlist中
    :param request:
    :param youku_id:
    :return:
    """
    youku = Youku.objects.get(pk=youku_id)
    result = set_youku_playlist_online(youku.youku_video_id,
                                       youku.youku_playlist_id)
    return render_to_response('result.html',
                              {'text': '更新playlist成功, youku_id为 ' + youku_id})
Example #2
0
def update_youku_online_info_view(request, youku_video_id):
    updated_youku_video_id = update_youku_online_info(youku_video_id)
    youku = Youku.objects.get(youku_video_id=updated_youku_video_id)
    if youku.setted_youku_playlist:
        updated_youku_playlist_video_id = set_youku_playlist_online(
            youku_video_id, youku.setted_youku_playlist.id)
        if updated_youku_playlist_video_id:
            youku.youku_playlist = youku.setted_youku_playlist
            youku.save(update_fields=['youku_playlist'])

    return render_to_response('result.html', {
        'text': '更新成功, 在优酷上的video id为 ' + updated_youku_video_id})
Example #3
0
def set_youku_playlist_view(request, youku_id):
    """
    根据youku的youku playlist属性,在优酷网上将youku对象添加到该playlist中
    :param request:
    :param youku_id:
    :return:
    """
    youku = Youku.objects.get(pk=youku_id)
    result = set_youku_playlist_online(youku.youku_video_id,
                                       youku.youku_playlist_id)
    return render_to_response('result.html',
                              {'text': '更新playlist成功, youku_id为 ' + youku_id})
Example #4
0
def update_youku_online_info_view(request, youku_video_id):
    updated_youku_video_id = update_youku_online_info(youku_video_id)
    youku = Youku.objects.get(youku_video_id=updated_youku_video_id)
    if youku.setted_youku_playlist:
        updated_youku_playlist_video_id = set_youku_playlist_online(
            youku_video_id, youku.setted_youku_playlist.id)
        if updated_youku_playlist_video_id:
            youku.youku_playlist = youku.setted_youku_playlist
            youku.save(update_fields=['youku_playlist'])

    return render_to_response(
        'result.html',
        {'text': '更新成功, 在优酷上的video id为 ' + updated_youku_video_id})
Example #5
0
    def save_formset(self, request, form, formset, change):
        """
        当Video Admin的页面保存inline对象(youku)时,如果更改了youku的playlist设置,
        则在playlist_id的优酷playlist中删除youku_video_id视频,
        并在优酷网上将视频添加到新设置的playlist中
        同时更新youku的playlist属性的值

        save_formset is called potentially many times during each add / change,
        once for every inline defined on your ModelAdmin.
        It is called by the base class implementation of save_related.

        form 为video的form
        formset是 inline对象 youku 的form

        :param request:
        :param form:
        :param formset:
        :param change:
        :return:
        """
        instances = formset.save(commit=False)
        for obj in formset.deleted_objects:
            obj.delete()
        for instance in instances:
            # instance 为 youku 对象
            instance.save()
            if "setted_youku_playlist" in formset.forms[0].changed_data:
                # 如果设置的setted_youku_playlist与youku_playlist不相同,则要在优酷网上将video
                # 从youku_playlist中删除,然后再将video添加到setted_youku_playlist中,
                # 最后将本地数据库中的youku_playlist设置为setted_youku_playlist
                setted_youku_playlist = formset.forms[0].cleaned_data["setted_youku_playlist"]
                origin_youku_playlist = formset.forms[0].cleaned_data["youku_playlist"]
                if setted_youku_playlist:
                    if setted_youku_playlist != origin_youku_playlist:
                        # todo 以下这段引用如果放在顶部则无法启动django server,原因未明
                        from video.function.youku_playlist import delete_video_from_playlist, set_youku_playlist_online

                        # 只要改变了field['youku_playlist'],自动在playlist_id的优酷playlist
                        # 中删除youku_video_id视频
                        if origin_youku_playlist:
                            delete_video_from_playlist(instance.youku_video_id, origin_youku_playlist.id)
                        playlist_id = set_youku_playlist_online(instance.youku_video_id, setted_youku_playlist.id)
                        if playlist_id:
                            instance.youku_playlist = instance.setted_youku_playlist
                            instance.save(update_fields=["youku_playlist"])
        formset.save_m2m()