Exemple #1
0
def videolist():
    Video.update_video_torrents_info()
    page = request.args.get('page', 1, type=int)
    videos = Video.get_list_videos(page,
                                   int(current_app.config['VIDEO_PER_PAGE']))
    prev_url = url_for('videoapp.videolist',
                       page=videos.prev) if videos.has_prev else None
    next_url = url_for('videoapp.videolist',
                       page=videos.next) if videos.has_next else None
    return render_template('videoapp/videolist.html',
                           title='Videos',
                           prev_url=prev_url,
                           next_url=next_url,
                           videos=videos.videos)
Exemple #2
0
def send_file(id):
    video = Video.get_video(id)
    if video.torrent_status == 'completed':
        print(video.file_path)
        return send_from_directory(current_app.config['FILMS_FOLDER'],
                                   video.id + '.mp4')
    return redirect(url_for('videoapp.videolist'))
Exemple #3
0
def select_by_ids(video_ids: list):
    """
    select count(*) from audios
    :return: record size
    """
    tupVar = tuple(video_ids)
    # sql语句 建表
    sql = """SELECT * FROM videos where id in %s;"""
    db = PostgreSql()
    results = db.select_by_ids(sql, (tupVar, ))
    videos = list()
    for result in results:
        video_id = result['id']
        video_name = result['name']
        video_md5 = result['md5']
        video_format = result['format']
        local_video_path = result['local_video_path']
        cloud_video_path = result['cloud_video_path']
        cloud_cover_path = result['cloud_cover_path']
        date_created = result['date_created']
        size = result['size']
        video = Video(video_id, video_name, video_md5, video_format,
                      local_video_path, cloud_video_path, cloud_cover_path,
                      size, date_created)
        videos.append(video)
    return videos
Exemple #4
0
def video(id):
    video = Video.get_video(id)
    if video.torrent_status == 'completed':
        filename = url_for('videoapp.send_file', id=video.id)
        return render_template('videoapp/video.html',
                               video=video,
                               title=video.title,
                               filename=filename)
    return redirect(url_for('videoapp.videolist'))
Exemple #5
0
def add_torrent():
    form = AddTorrentForm()
    if form.validate_on_submit():

        if 'file' not in request.files:
            flash('No file part')
            return redirect(request.url)
        file = request.files['file']
        if file.filename == '':
            flash('No selected file')
            return redirect(request.url)
        if file and allowed_file(file.filename):
            Video.add_video(form.title.data,
                            base64.b64encode(file.read()).decode('utf-8'))
            return redirect(url_for('videoapp.videolist'))
        else:
            flash('no secure filename')
            return redirect(url_for(request.url))
    return render_template('videoapp/add_torrent.html',
                           form=form,
                           title='Add torrent')
Exemple #6
0
def get_videos_torrent_info():
    videoids = request.form.getlist('ids[]')
    resp = []
    for id in videoids:
        video = Video.get_video(id)
        video.update_torrent_info()
        resp.append({
            'id': video.id,
            'torrent_status': video.torrent_status,
            'torrent_eta': video.torrent_eta,
            'torrent_progress': video.torrent_progress
        })
    return jsonify(resp)
Exemple #7
0
def video_info(id):
    video = Video.get_video(id)
    video.update_torrent_info()
    if video is None:
        flash('video with id {} does not exist'.format(id))
        return redirect(url_for('videoapp.videolist'))
    if request.method == 'POST':
        video.try_update_from_imdb()
        return redirect(url_for('videoapp.videolist'))
    else:
        filename = url_for('videoapp.send_file', id=video.id)
        return render_template('videoapp/video_info.html',
                               video=video,
                               title=video.title,
                               filename=filename)
 def test_ConfigFileNotFound(self):
     with self.assertRaises(FileNotFoundError):
         Video("nonexistent_file.mp4", "nonexistent_file.ini")
Exemple #9
0
import matplotlib.pyplot as plt

from app.video import Video

v0 = Video("videos/video0.mp4", "workspace/config.ini")
# v0.extract_frames(show=False)
# frame_gen = v0.frame_generator()
# for f in frame_gen:
#    print(f"#{f.frame_no} {f.frame_time} {np.shape(f.frame)}")
time_series = v0.extract_time_series()
# print(time_series)

score0 = time_series.score()
score0.time_series()

Exemple #10
0
def video_popup(id):
    video = Video.get_video(id)
    if video is not None:
        return render_template('videoapp/video_popup.html', video=video)
    return redirect(url_for('videoapp.videolist'))
Exemple #11
0
def delete_video(id):
    if current_user.admin:
        Video.get_video(id).remove_video()
    return redirect(url_for('videoapp.videolist'))