Exemple #1
0
def editVideoTags(vid,
                  tags,
                  user,
                  edit_behaviour='replace',
                  not_found_behaviour='ignore',
                  user_lang='ENG'):
    log(
        obj={
            'tags': tags,
            'vid': vid,
            'edit_behaviour': edit_behaviour,
            'not_found_behaviour': not_found_behaviour
        })
    filterOperation('editVideoTags', user, vid)
    if edit_behaviour not in ['replace', 'append', 'remove']:
        raise UserError('INCORRECT_edit_behaviour')
    if not_found_behaviour not in ['ignore', 'error', 'append']:
        raise UserError('INCORRECT_non_found_behaviour')
    if edit_behaviour == 'remove' and not_found_behaviour == 'append':
        raise UserError('INCORRECT_REQUEST')
    filterSingleVideo(vid, user)
    if len(tags) > VideoConfig.MAX_TAGS_PER_VIDEO:
        raise UserError('TAGS_LIMIT_EXCEEDED')
    item = tagdb.db.videos.find_one({'_id': ObjectId(vid)})
    if item is None:
        raise UserError('ITEM_NOT_EXIST')
    if not_found_behaviour == 'append':
        tags = editTags_append_impl(tags, user, user_lang)
    else:
        tags = tagdb.filter_tags(tags)
    return editTags_impl(item, tags, user, edit_behaviour)
Exemple #2
0
def updatePlaylistCoverVID(pid, vid, page, page_size, user):
    log(obj={'pid': pid, 'vid': vid})
    with redis_lock.Lock(rdb, "playlistEdit:" +
                         str(pid)), MongoTransaction(client) as s:
        list_obj = db.playlists.find_one({'_id': ObjectId(pid)})
        log(obj={'playlist': list_obj})
        if list_obj is None:
            raise UserError('PLAYLIST_NOT_EXIST')
        filterOperation('editPlaylist', user, list_obj)
        video_obj = filterSingleVideo(vid, user)
        if video_obj is None:
            raise UserError('VIDEO_NOT_EXIST')
        cover = video_obj['item']['cover_image']
        db.playlists.update_one({'_id': ObjectId(pid)},
                                {'$set': {
                                    "cover": cover
                                }},
                                session=s())
        db.playlists.update_one({'_id': ObjectId(pid)}, {
            '$set': {
                'meta.modified_by': makeUserMeta(user),
                'meta.modified_at': datetime.now()
            }
        },
                                session=s())
        #video_page, video_count = listPlaylistVideos(pid, page - 1, page_size, user)
        s.mark_succeed()
def editVideoTags(vid, tags, user):
    log(obj={'tags': tags, 'vid': vid})
    filterOperation('editVideoTags', user, vid)
    filterSingleVideo(vid, user)
    if len(tags) > VideoConfig.MAX_TAGS_PER_VIDEO:
        raise UserError('TAGS_LIMIT_EXCEEDED')
    tagdb.verify_tags(tags)
    item = tagdb.db.items.find_one({'_id': ObjectId(vid)})
    if item is None:
        raise UserError('ITEM_NOT_EXIST')
    if len(tags) > VideoConfig.MAX_TAGS_PER_VIDEO:
        raise UserError('TOO_MANY_TAGS')
    with redis_lock.Lock(
            rdb, "videoEdit:" +
            item['item']['unique_id']), MongoTransaction(client) as s:
        tagdb.update_item_tags(item, tags, makeUserMeta(user), session=s())
        s.mark_succeed()
Exemple #4
0
def getVideoDetail(vid, user, raise_error=False):
    try:
        vid = ObjectId(vid)
    except:
        raise UserError("INCORRECT_VIDEO_ID")
    video_obj = filterSingleVideo(vid, user, raise_error)
    if video_obj is None:
        raise UserError('VIDEO_NOT_EXIST')
    return video_obj
Exemple #5
0
def getVideoDetailWithTags(vid, language, user):
    try:
        vid = ObjectId(vid)
    except:
        raise UserError("INCORRECT_VIDEO_ID")
    video_obj = filterSingleVideo(vid, user)
    if video_obj is None:
        raise UserError('VIDEO_NOT_EXIST')
    return db.retrive_item_with_tag_category_map(video_obj, language)
Exemple #6
0
def createPlaylistFromSingleVideo(language, vid, user) :
	log(obj = {'vid': vid})
	filterOperation('createPlaylist', user)
	video_obj = filterSingleVideo(vid, user)
	if video_obj is None :
		raise UserError('VIDEO_NOT_EXIST')
	new_playlist_id = createPlaylist(language, video_obj['item']['title'], video_obj['item']['desc'], video_obj['item']['cover_image'], user)
	log(obj = {'pid': new_playlist_id})
	addVideoToPlaylist(new_playlist_id, vid, user)
	return new_playlist_id
def refreshVideoDetail(vid, user):
    log(obj={'vid': vid})
    filterOperation('refreshVideoDetail', user, vid)
    filterSingleVideo(vid, user)
    item = tagdb.retrive_item(vid)
    if item is None:
        raise UserError('ITEM_NOT_EXIST')
    json_str = dumps({
        'url': item['item']['url'],
        'tags': [],
        'dst_copy': '',
        'dst_playlist': '',
        'dst_rank': -1,
        'other_copies': [],
        'user': user,
        'playlist_ordered': None,
        'update_video_detail': True,
        'event_id': getEventID()
    })
    postTask(json_str)
Exemple #8
0
def updatePlaylistCoverVID(pid, vid, offset, limit, user):
    log(obj={'pid': pid, 'vid': vid})
    with redis_lock.Lock(rdb, "playlistEdit:" +
                         str(pid)), MongoTransaction(client) as s:
        list_obj = playlist_db.retrive_item(pid)
        log(obj={'playlist': list_obj})
        if list_obj is None:
            raise UserError('PLAYLIST_NOT_EXIST')
        filterOperation('editPlaylist', user, list_obj)
        video_obj = filterSingleVideo(vid, user)
        if video_obj is None:
            raise UserError('VIDEO_NOT_EXIST')
        cover = video_obj['item']['cover_image']
        playlist_db.update_item_query(list_obj,
                                      {'$set': {
                                          "item.cover": cover
                                      }},
                                      user=makeUserMeta(user),
                                      session=s())
        #video_page, video_count = listPlaylistVideos(pid, page - 1, page_size, user)
        s.mark_succeed()
Exemple #9
0
def getVideoDetail(vid, user, raise_error=False):
    return filterSingleVideo(vid, user, raise_error)
Exemple #10
0
def getVideoDetailWithTags(vid, language, user):
    video_obj = filterSingleVideo(vid, user)
    return db.retrive_item_with_tag_category_map(video_obj, language)
def getVideoTags(vid, user_language, user):
    filterSingleVideo(vid, user)
    item, tags, category_tag_map, tag_category_map = tagdb.retrive_item_with_tag_category_map(
        vid, user_language)
    return tags