def get_movies_list():
    movies = Movie.query()

    data = []

    for movie in movies:
        item = movie.to_dict()
        item["id"] = movie.key.id()

        data.append(item)

    return {"error": False, "data": data}
Example #2
0
def movie_add():
    form = MovieForm()
    if form.validate_on_submit():
        data = form.data

        #提交的片名在数据库中已存在
        if Movie.query.filter_by(title=data['title']).count() == 1:
            flash('电影片名已存在,请检查', category='err')
            return redirect(url_for('admin.movie_add'))

        #获取上传文件的名称
        file_url = secure_filename(form.url.data.filename)
        file_logo = secure_filename(form.logo.data.filename)
        #文件保存路径操作
        file_save_path = app.config['UP_DIR']  #文件上传保存路径
        if not os.path.exists(file_save_path):
            os.makedirs(file_save_path)  #如果文件保存路径不存在,则创建一个多级目录
            import stat
            os.chmod(file_save_path, stat.S_IRWXU)  #授予可读写权限
        #对上传的文件进行重命名
        url = change_filename(file_url)
        logo = change_filename(file_logo)
        #保存文件,需要给文件的保存路径+文件名
        form.url.data.save(file_save_path + url)
        form.logo.data.save(file_save_path + logo)

        movie = Movie(title=data['title'],
                      url=url,
                      info=data['info'],
                      logo=logo,
                      star=data['star'],
                      play_num=0,
                      comment_num=0,
                      tag_id=data['tag_id'],
                      area=data['area'],
                      release_time=data['release_time'],
                      length=data['length'])
        db.session.add(movie)
        db.session.commit()
        flash('添加电影成功', 'ok')
        return redirect(url_for('admin.movie_add'))
    return render_template('admin/movie_add.html', form=form)
Example #3
0
def movie_add():
    """
    添加电影
    """
    form = MovieForm()
    form.tag_id.choices = [(v.id, v.name) for v in Tag.query.all()]
    if form.validate_on_submit():

        data = form.data
        file_url = secure_filename(form.url.data.filename)
        file_logo = secure_filename(form.logo.data.filename)

        # 保存路径是否存在
        if not os.path.exists(app.config['UP_DIR']):
            os.makedirs(app.config['UP_DIR'])
            os.chmod(app.config['UP_DIR'], stat.S_IRWXU)

        # 生成唯一文件名
        url = change_filename(file_url)
        logo = change_filename(file_logo)

        # 保存文件
        form.url.data.save(app.config['UP_DIR'] + url)
        form.logo.data.save(app.config['UP_DIR'] + logo)

        # 构造电影实体,存入数据库
        movie = Movie(title=data['title'],
                      url=url,
                      info=data['info'],
                      logo=logo,
                      star=int(data['star']),
                      play_num=0,
                      comment_num=0,
                      tag_id=int(data['tag_id']),
                      area=data['area'],
                      release_time=data['release_time'],
                      length=data['length'])
        db.session.add(movie)
        db.session.commit()
        flash('添加电影成功', 'success')
        return redirect(url_for('admin.movie_add'))
    return render_template('admin/movie_add.html', form=form)
Example #4
0
def upload_movie():
    form = MovieForm()
    form.tag.choices = [(t.id, t.name) for t in Tag.query.all()]
    print(form.validate_on_submit())
    if form.validate_on_submit():
        tags = [Tag.query.get_or_404(id) for id in form.tag.data]
        movie = Movie(name=form.name.data,
                      info=form.desc.data,
                      poster=form.poster.data,
                      url=form.source.data,
                      region=form.country.data,
                      length=form.length.data,
                      time_release=form.release.data,
                      tags=tags)
        print(movie)
        db.session.add(movie)
        db.session.commit()
        flash("Movie was upload", "success")
        return redirect(url_for("admin_bp.index"))
    return render_template("admin/upload_movie.html", form=form)
Example #5
0
def get_movie(id):

    get_movie_details_url = base_url.format(id, api_key)
    with urllib.request.urlopen(get_movie_details_url) as url:
        movie_details_data = url.read()
        movie_details_response = json.loads(movie_details_data)

        movie_object = None
        if movie_details_response:
            id = movie_details_response.get('id')
            title = movie_details_response.get('original_title')
            overview = movie_details_response.get('overview')
            poster = movie_details_response.get('poster_path')
            vote_average = movie_details_response.get('vote_average')
            vote_count = movie_details_response.get('vote_count')

            movie_object = Movie(id, title, overview, poster, vote_average,
                                 vote_count)

    return movie_object
Example #6
0
def movie(tmdb_id):
    mov = Movie.query.filter_by(tmdb_id=tmdb_id).first()
    if mov is None:
        data = tmdb.get_movie(tmdb_id)
        if not data:
            flash('Movie %s not found.' % tmdb_id)
            return redirect('/')
        mov = Movie(data)
    imdb = 'http://www.dereferer.org/?' + urllib.parse.quote_plus(
        'http://www.imdb.com/title/' + mov.imdb_id)
    settings_form = QualityForm()
    settings_form.quality.data = mov.search_quality
    return render_template('movies/view.html',
                           title=mov.title,
                           heading=mov.title,
                           media=mov,
                           search_form=SearchForm(),
                           settings_form=settings_form,
                           imdb_link=imdb,
                           refreshing=Library.refreshing_movie(tmdb_id))
Example #7
0
def handle_fomdata():
    moviename = request.form['name']
    movielength = Movie.query.filter_by(Name=moviename).count()
    if movielength == 0:
        moviedesc = request.form['desc']
        movieposter = request.form['poster']
        try:
            f = open('app/static/poster/' + moviename + '.jpg', 'wb')
            with urllib.request.urlopen(movieposter) as url:
                s = url.read()
            f.write(s)
            f.close()
            dbmovieposter = '/poster/' + moviename + '.jpg'
        except:
            dbmovieposter = ""
        nmovie = Movie(moviename, moviedesc, dbmovieposter)
        db.session.add(nmovie)
        db.session.commit()

    return "success"
Example #8
0
    def testGetMovie(self):
        rv, u = self._fixture_get_token()

        m = Movie(title='t', description='d')
        db.session.add(m)
        db.session.commit()

        rv_watched = self.client.get('/api/movie/%d' % m.id,
                                     headers={'Authorization': 'Bearer %s' % rv.get_json()['token']})

        expected = {
            '_links': {'self': 'http://localhost:5000/api/movie/1'},
            'description': 'd',
            'id': 1, 'imdbId': 0, 'tmdbId': 0, 'ytbeId': '0',
            'rating': {'score': 0.0, 'support': 0},
            'title': 't'
        }

        self.assertEqual(200, rv_watched.status_code)
        self.assertEqual(expected, rv_watched.get_json())
Example #9
0
def index():
    form = MovieForm()
    if request.method == 'POST':
        if not current_user.is_authenticated:
            flash('Please Login.')
            return redirect(url_for('login'))

        if form.validate_on_submit():
            title = form.title.data
            year = form.year.data
            movie = Movie(title=title, year=year)
            db.session.add(movie)
            db.session.commit()
            flash('Item created.')
            return redirect(url_for('index'))
        else:
            flash('Invalid input.')
            return redirect(url_for('index'))
    movies = Movie.query.all()
    return render_template('index.html', movies=movies, form=form)
Example #10
0
def movie_add():
    """
    编辑电影页面
    """
    form = MovieForm()
    if form.validate_on_submit():
        data = form.data
        file_url = secure_filename(form.url.data.filename)
        file_logo = secure_filename(form.logo.data.filename)
        if not os.path.exists(app.config["UP_DIR_MVLOGO"]):
            # 创建一个多级目录
            os.makedirs(app.config["UP_DIR_MVLOGO"])
            os.chmod(app.config["UP_DIR_MVLOGO"], "rw")

        if not os.path.exists(app.config["UP_DIR_MV"]):
            # 创建一个多级目录,用于保存电影
            os.makedirs(app.config["UP_DIR_MV"])
            os.chmod(app.config["UP_DIR_MV"], "rw")

        url = change_filename(file_url)
        logo = change_filename(file_logo)
        # 保存
        form.url.data.save(app.config["UP_DIR_MV"] + url)
        form.logo.data.save(app.config["UP_DIR_MVLOGO"] + logo)
        # url,logo为上传视频,图片之后获取到的地址
        movie = Movie(title=data["title"],
                      url=url,
                      info=data["info"],
                      logo=logo,
                      star=int(data["star"]),
                      playnum=0,
                      commentnum=0,
                      tag_id=int(data["tag_id"]),
                      area=data["area"],
                      release_time=data["release_time"],
                      length=data["length"])
        db.session.add(movie)
        db.session.commit()
        flash("添加电影成功!", "ok")
        return redirect(url_for('admin.movie_add'))
    return render_template("admin/movie_add.html", form=form)
Example #11
0
def movie_add():
    form = MovieForm()
    if form.validate_on_submit():
        data = form.data
        # file_url = secure_filename(''.join(lazy_pinyin(form.url.data.filename)))
        # file_logo = secure_filename(''.join(lazy_pinyin(form.logo.data.filename)))
        if not os.path.exists(app.config['MOVIE_DIR']):
            os.makedirs(app.config['MOVIE_DIR'])
            os.chmod(app.config['MOVIE_DIR'], 'rw')
        if not os.path.exists(app.config['LOGO_DIR']):
            os.makedirs(app.config['LOGO_DIR'])
            os.chmod(app.config['LOGO_DIR'], 'rw')
        # url = change_filename(file_url)
        url = form.url.data.filename
        # logo = change_filename(file_logo)
        logo = form.logo.data.filename
        form.url.data.save(app.config['MOVIE_DIR'] + url)
        form.logo.data.save(app.config['LOGO_DIR'] + logo)
        movie = Movie(
            title=data['title'],
            url=url,
            info=data['info'],
            logo=logo,
            star=data['star'],
            playnum=0,
            commentnum=0,
            tag_id=data["tag_id"],
            area=data['area'],
            length=data['length'],
            release_time=data['release_time'],
        )
        db.session.add(movie)
        db.session.commit()
        flash('添加电影成功', 'ok')
        oplog = Oplog(admin_id=session['admin_id'],
                      ip=request.remote_addr,
                      reason='添加一个电影:%s' % data['title'])
        db.session.add(oplog)
        db.session.commit()
        return redirect(url_for('admin.movie_add'))
    return render_template('admin/movie_add.html', form=form)
Example #12
0
def movie_add():
    '''
    电影添加
    '''
    form = MovieForm()
    if form.validate_on_submit():
        print(request.files["url"].filename)
        file_url = secure_filename(request.files["url"].filename)
        file_logo = secure_filename(request.files["logo"].filename)
        if not os.path.exists(app.config["UP_DIR"]):
            os.makedirs(app.config["UP_DIR"])
            os.chmod(app.config["UP_DIR"], 'rw')
        url = change_filename(file_url)
        logo = change_filename(file_logo)
        form.url.data.save(app.config["UP_DIR"] + url)
        form.logo.data.save(app.config["UP_DIR"] + logo)
        movie = Movie(
            title=form.title.data,
            url=url,
            info=form.info.data,
            logo=logo,
            star=int(form.star.data),
            playnum=0,
            commentnum=0,
            tag_id=int(form.tag_id.data),
            area=form.area.data,
            release_time=form.release_time.data,
            length=form.length.data,
        )
        db.session.add(movie)
        db.session.commit()

        # 将图片 视频上传到oss空间中
        oss = Oss()
        oss.putfile(url, app.config['UP_DIR'] + url)
        oss.putfile(url, app.config['UP_DIR'] + logo)
        print(url)

        flash("添加电影成功!", "ok")
        return redirect(url_for('admin.movie_list', page=1))
    return render_template("admin/movie_add.html", form=form)
Example #13
0
def movie_add():
    form = MovieForm()
    if form.validate_on_submit():
        data = form.data
        movie_count = Tag.query.filter_by(name=data['title']).count()
        if movie_count >= 1:
            flash('片名已存在', 'err')
            return redirect(url_for('admin.movie_add'))
        file_url = secure_filename(form.url.data.filename)
        file_logo = secure_filename(form.logo.data.filename)
        if not os.path.exists(app.config['UP_DIR']):
            os.makedirs(app.config['UP_DIR'])  # 创建目录
            os.chmod(app.config['UP_DIR'], stat.S_IRWXU)  # 授权可读写
        url = change_filename(file_url)
        logo = change_filename(file_logo)
        form.url.data.save(app.config['UP_DIR'] + url)
        form.url.data.save(app.config['UP_DIR'] + logo)
        movie = Movie(
            title=data['title'],
            url=url,
            info=data['info'],
            logo=logo,
            star=int(data['star']),
            playnum=0,
            commentnum=0,
            tag_id=int(data['tag_id']),
            area=data['area'],
            release_time=data['release_time'],
            length=data['length']
        )
        oplog = Oplog(
            admin_id=session['admin_id'],
            reason='添加电影:%s' % data['title'],
            ip=request.remote_addr
        )
        db.session.add(movie)
        db.session.add(oplog)
        db.session.commit()
        flash('添加电影成功', 'ok')
        return redirect(url_for('admin.movie_add'))
    return render_template("admin/movie_add.html", form=form)
Example #14
0
def movie_add():
    form = MovieForm()
    if form.validate_on_submit():
        data = form.data
        if Movie.query.filter_by(title=data["title"]).count() == 1:
            flash("影片已经存在!", "err")
            return redirect(url_for("admin.movie_add"))
        file_url = secure_filename(form.url.data.filename)  # 获取并转化为安全的电影文件名
        file_logo = secure_filename(form.logo.data.filename)
        if not os.path.exists(app.config['UP_DIR']):  # 存放目录不存在则创建
            os.makedirs(app.config['UP_DIR'])
            os.chmod(app.config['UP_DIR'], "rw")
        url = change_filename(file_url)  # 调用函数生成新的文件名
        logo = change_filename(file_logo)

        form.url.data.save(app.config['UP_DIR'] + url)  # 保存上传的数据
        form.logo.data.save(app.config['UP_DIR'] + logo)
        admin_id = session["admin_id"]
        logger.info("操作人id:{0}".format(admin_id))
        movie = Movie(title=data["title"],
                      url=url,
                      info=data["info"],
                      logo=logo,
                      star=int(data["star"]),
                      playnum=0,
                      commentnum=0,
                      tag_id=int(data["tag_id"]),
                      area=data["area"],
                      release_time=data["release_time"],
                      length=data["length"],
                      creater_id=admin_id)
        db.session.add(movie)
        db.session.commit()
        flash("添加电影成功!", "ok")
        oplog = Oplog(admin_id=session["admin_id"],
                      ip=request.remote_addr,
                      reason="添加新电影:%s" % data["title"])
        db.session.add(oplog)
        db.session.commit()
        return redirect(url_for("admin.movie_add"))
    return render_template("admin/movie_add.html", form=form)
Example #15
0
 def test_post_movie_actors_cd(self):
     '''Test post_actors as Casting Director '''
     movie = Movie(title='Test Movie', release_date='2020-01-15')
     movie.insert()
     actor = Actor(name='Test Actor', age=40, gender='M')
     actor.insert()
     res = self.client().post(f'/movies/{movie.id}/actors',
                              json={'actor': {
                                  'id': actor.id
                              }},
                              headers={'Authorization': bearer('cd')})
     self.assertEqual(res.status_code, 200)
     self.assertIsInstance(res.json["movie"], dict)
     actor.delete()
     movie.delete()
Example #16
0
def add_movies(movies):
    for m in movies:
        movie = Movie(m["id"], m["title"], m["overview"], m["adult"],
                      m["poster_path"], m["runtime"], m["release_date"],
                      m["original_language"], m["vote_average"])
        for c in m["credits"]["cast"]:
            character_name = c["character"]
            if c["order"] > 20:
                continue
            character = get_character(character_name)
            if (character):
                movie.characters.append(character)
            actor_id = c["id"]
            actor = Actor.query.filter_by(id=actor_id).first()
            if actor:
                movie.actors.append(actor)
            if actor and character:
                actor.characters.append(character)
        db.session.merge(movie)
        db.session.commit()
        print("Added " + m["title"])
Example #17
0
def get_movie(tmdb_id):
    """
    Get movie details from TMDB, store them in Movie model.

    Params: tmdb_id - The TMDB ID of the movie

    Returns: Movie object if tmdb_id is valid
             None otherwise
    """
    url = BASE_URL.format(api_endpoint='movie/' + str(tmdb_id))
    details = requests.get(url).json()

    # todo: handle errors from TMDB

    release_date = details.get('release_date')
    release_date = datetime.datetime.strptime(release_date, '%Y-%m-%d')

    movie = Movie(tmdb_id=tmdb_id,
                  title=details.get('title'),
                  release_date=release_date)
    return movie
Example #18
0
    def get(self, request, pk):
        user = User.get_user(request.user)
        movie = Movie.get_or_create(pk)

        if movie is None:
            raise Http404

        try:
            collected_item = CollectedMovie.objects.filter(user=user, movie=movie).get()
            collected_item.type = self.list_type
        except CollectedMovie.DoesNotExist:
            collected_item = CollectedMovie(
                user=user,
                movie=movie,
                type=self.list_type
            )

        collected_item.save()

        # success status
        return Response('')
Example #19
0
def scan_folders():
    """Scans video folders for video files, converts new videos and adds them to DB"""
    movies = []
    # Check for mp4, mkv, avi files in video folder
    fileset = formic.FileSet(include=["*.mp4", "*.mkv", "*.avi"],
                             directory=VIDEO_FOLDER)
    # Loop found files
    for file_name in fileset.files():
        file_name = os.path.join(fileset.get_directory(), file_name[1])
        # Return relative path of found files
        rec_name = file_name.replace(VIDEO_FOLDER, '')
        rel_name = rec_name
        rec_name = rec_name.replace('.avi', '.mp4')
        # See if path found in database, if not: continue
        if Movie.query.filter_by(url=rec_name).first() is None:
            # or Movie.query.filter_by(url = rec_name).first() < 1:
            # Check if filesize is different after 5 second, aka not completely uploaded yet
            size = os.path.getsize(file_name)
            time.sleep(5)
            if size == os.path.getsize(file_name):
                # Generate subtitle path from movie path
                # FIXME: Not needed anymore I guess
                subsrt = rec_name.replace('.mp4', '.srt')
                subsrt = subsrt.replace('.avi', '.srt')
                subsrt = subsrt.replace('.mkv', '.srt')
                # Get extension and add movie to database as IN_PROGRESS
                extension = os.path.splitext(rel_name)[1]
                dbextension = os.path.splitext(rec_name)[1]
                newmovie = Movie(url=rec_name, srt=subsrt, type=dbextension)
                db.session.add(newmovie)
                db.session.commit()
                # Fetch subtitles automatically
                get_subtitle(newmovie.id, file_name)
                # Check if needs converting or can just call done
                if extension == '.mp4':
                    complete(newmovie.id)
                elif extension == '.avi':
                    convert_mp4(newmovie.id, file_name)
                elif extension == '.mkv':
                    complete(newmovie.id)
def new_movie():

    title = request.forms.get("title")
    year = request.forms.get("year")
    runtime = request.forms.get("runtime")
    category = request.forms.get("category")
    comment = request.forms.get("comment")
    poster = request.files.get("poster")

    if title is not None and year is not None and runtime is not None and category is not None and poster is not None:
        try:
            movie = Movie()
            movie.title = title
            movie.year = int(year)
            movie.runtime = int(runtime)
            movie.category = category
            movie.comment = comment
            movie.poster = db.Blob(poster)

            movie_key = movie.put()

        except Exception, e:
            return e
Example #21
0
def movie_add():
    """添加电影"""
    form = MovieForm()
    if form.validate_on_submit():
        data = form.data
        file_url = secure_filename(form.url.data.filename)
        file_logo = secure_filename(form.logo.data.filename)
        if not os.path.exists(app.config["UP_DIR"]):
            # 创建一个多级目录
            os.makedirs(app.config["UP_DIR"])
            os.chmod(app.config["UP_DIR"], "rw")
        # url,logo为上传视频,图片之后得到的地址
        url = change_filename(file_url)
        logo = change_filename(file_logo)
        # 保存url和logo
        form.url.data.save(app.config["UP_DIR"] + url)
        form.logo.data.save(app.config["UP_DIR"] + logo)
        movie_count = Movie.query.filter_by(title=data["title"]).count()
        # 已存在该上映预告
        if movie_count == 1:
            flash("片名已经存在,请重新编辑!", "err")
            return redirect(url_for('admin.movie_add'))
        movie = Movie(
            title=data['title'],
            url=url,
            info=data['info'],
            logo=logo,
            star=int(data['star']),
            playnum=0,
            commentnum=0,
            tag_id=(data['tag_id']),
            area=data['area'],
            release_time=data['release_time'],
            length=data['length'],
        )
        db.session.add(movie)
        db.session.commit()
        flash("添加电影成功!", "ok")
        return redirect(url_for('admin.movie_add'))
    return render_template('admin/movie_add.html', form=form)
Example #22
0
def movie_add():
    form = MovieForm()
    if form.validate_on_submit():
        data = form.data
        file_url = secure_filename(form.url.data.filename)
        file_logo = secure_filename(form.logo.data.filename)

        if not os.path.exists(app.config["UP_DIR"]):
            os.makedirs(app.config["UP_DIR"])
            os.chmod(app.config["UP_DIR"], stat.S_IRWXU)

        url = change_filename(file_url)
        logo = change_filename(file_logo)
        form.url.data.save(app.config["UP_DIR"] + url)
        form.logo.data.save(app.config["UP_DIR"] + logo)

        movie = Movie(
            title=data["title"],
            url=url,
            info=data["info"],
            logo=logo,
            star=int(data["star"]),
            playnum=0,
            commentnum=0,
            tag_id=int(data["tag_id"]),
            area=data["area"],
            release_time=data["release_time"],
            length=data["length"],
        )
        db.session.add(movie)
        oplog = OpLog(
            admin_id=session["admin_id"],
            ip=request.remote_addr,
            reason='添加电影"{0}"'.format(movie.title),
        )
        db.session.add(oplog)
        db.session.commit()
        flash('电影"{0}"添加成功!'.format(data["title"]), "ok")
        return redirect(url_for("admin.movie_add"))
    return render_template("admin/movie_add.html", form=form)
Example #23
0
 def test_patch_movies_cd(self):
     '''Test patch_movies as Casting Director '''
     movie = Movie(title='Test Movie', release_date='2020-01-15')
     movie.insert()
     res = self.client().patch(f'/movies/{movie.id}',
                               json={
                                   'title': 'Test Movieeee',
                                   'release_date': '1920-01-15'
                               },
                               headers={'Authorization': bearer('cd')})
     self.assertEqual(res.status_code, 200)
     self.assertIsInstance(res.json['movie'], dict)
     movie = Movie.query.get(movie.id)
     self.assertEqual(movie.title, 'Test Movieeee')
     self.assertEqual(movie.release_date, '1920-01-15')
     movie.delete()
Example #24
0
def movie_add():
    form = MovieForm()
    if form.validate_on_submit():
        data = form.data
        title = Movie.query.filter_by(title=data['title']).count()
        if title != 0:
            flash('电影名称已经存在', 'err')
            return redirect(url_for('admin.movie_add'))
        elif form.url.data == '' or form.logo.data == '':
            flash('文件或封面不能为空', 'err')
            return redirect(url_for('admin.movie_add'))
        else:
            file_url = secure_filename(form.url.data.filename)
            file_logo = secure_filename(form.logo.data.filename)
            if not os.path.exists(app.config['UP_DIR']):
                os.makedirs(app.config['UP_DIR'])
                os.chmod(app.config['UP_DIR'], 'rw')
            url = change_filename(file_url)
            logo = change_filename(file_logo)
            form.url.data.save(app.config['UP_DIR'] + url)
            form.logo.data.save(app.config['UP_DIR'] + logo)
            movie = Movie(
                title=data['title'],
                url=url,
                info=data['info'],
                logo=logo,
                star=int(data['star']),
                playnum=0,
                commentnum=0,
                tag_id=int(data['tag_id']),
                area=data['area'],
                release_time=data['release_time'],
                length=data['length'],
            )
            db.session.add(movie)
            db.session.commit()
            flash('添加电影成功', 'ok')
            return redirect(url_for('admin.movie_add'))
    return render_template('admin/movie_add.html', form=form)
Example #25
0
def index():
    if request.method == 'POST':

        if not current_user.is_authenticated:
            return redirect(url_for('home.index'))

        title = request.form.get('title')
        year = request.form.get('year')

        if not title or not year or len(year) > 4 or len(title) > 60:
            flash('Invalid input.')
            return redirect(url_for('home.index'))

        movie = Movie(title=title, year=year)
        db.session.add(movie)
        db.session.commit()
        flash('Item created.')
        return redirect(url_for('home.index'))

    user = User.query.first()
    movies = Movie.query.all()
    return render_template('index.html', user=user, movies=movies)
Example #26
0
def movie_add():
    form = MovieFrom()
    form.tag_id.choices = [(v.id, v.name) for v in Tag.query.all()]  # 更新标签列表
    form.logo.validators = [DataRequired("请上传封面!")]
    form.url.validators = [DataRequired("请上传文件!")]
    if form.validate_on_submit():
        data = form.data
        movie_count = Movie.query.filter_by(title=data['title']).count()
        if movie_count == 1:
            flash("片名已经存在,出现冲突", "err")
            return redirect(url_for('admin.movie_add'))

        file_url = secure_filename(form.url.data.filename)
        file_logo = secure_filename(form.logo.data.filename)
        if not os.path.exists(app.config["UP_DIR"]):
            os.makedirs(app.config["UP_DIR"])
            os.chmod(app.config["UP_DIR"], "rw")
        url = change_filename(file_url)
        logo = change_filename(file_logo)
        form.url.data.save(app.config["UP_DIR"] + url)
        form.logo.data.save(app.config["UP_DIR"] + logo)
        movie = Movie(title=data["title"],
                      url=url,
                      info=data["info"],
                      logo=logo,
                      star=int(data["star"]),
                      playnum=0,
                      commentnum=0,
                      tag_id=int(data["tag_id"]),
                      area=data["area"],
                      release_time=data["release_time"],
                      length=data["length"])
        db.session.add(movie)
        db.session.commit()
        flash("添加电影成功!", "ok")
        reason = "添加电影: %s" % movie.title
        add_oplog(reason)
        return redirect(url_for('admin.movie_add'))
    return render_template("admin/movie_add.html", form=form)
Example #27
0
def movie_add():
    form = MovieForm()
    if form.validate_on_submit():
        data = form.data
        movie = Movie(
            title = data["title"],
            url = url,
            info = data["info"],
            logo = logo,
            star = data["star"],
            playnum = 0,
            commentnum = 0,
            tag_id = data["tag_id"],
            area = data["area"],
            lenth = data["lenth"],
            release_time = data["release_time"]
        )
        db.session.add(movie)
        db.session.commit()
        flash("添加电影成功!","ok")
        return redirect(url_for("admin.movie_add"))
    return render_template("admin/movie_add.html",form=form)
Example #28
0
    def setUp(self):
        """Define test variables and initialize app."""
        self.app = create_app()
        self.client = self.app.test_client
        self.database_name = "capstoneDB_test"

        self.database_path = os.getenv("TEST_DATABASE_URL")
        setup_db(self.app, self.database_path, self.database_name)

        self.movie = Movie(title="instersteller", release_date="2014-4-4")
        self.actor = Actor(name="tom cruise", age=55, gender="M")

        self.casting_producer_jwt = os.getenv("CASTING_PRODUCER_JWT")
        self.casting_director_jwt = os.getenv("CASTING_DIRECTOR_JWT")
        self.casting_assistant_jwt = os.getenv("CASTING_ASSISTANT_JWT")

        # binds the app to the current context
        with self.app.app_context():
            db = SQLAlchemy()
            db.init_app(self.app)
            # create all tables
            db.create_all()
Example #29
0
def movie_add():
    form = MovieForm()
    # 编写验证逻辑
    if form.validate_on_submit():
        # 获取前端表单数据
        data = form.data
        file_url = secure_filename(form.url.data.filename)
        # fiel_logo=form.logo.data.filename
        # 包裹之后,安全
        file_logo = secure_filename(form.logo.data.filename)
        if not os.path.exists(app.config["UP_DIR"]):
            # 创建文件目录
            os.makedirs(app.config["UP_DIR"])
            # 增加读写的权限
            os.chmod(app.config["UP_DIR"], "rw")
        url = change_filename(file_url)
        logo = change_filename(file_logo)
        # 然后进行保存操作
        form.url.data.save(app.config["UP_DIR"] + url)
        form.logo.data.save(app.config["UP_DIR"] + logo)

        movie = Movie(
            title=data['title'],
            # 文件上传保存路径
            url=url,  # 在init文件里面设设置
            info=data['info'],
            logo=logo,
            star=int(data["star"]),
            playnum=0,
            commentnum=0,
            tag_id=int(data["tag_id"]),
            area=data["area"],
            release_time=data["release_time"],
            length=data["length"])
        db.session.add(movie)
        db.session.commit()
        flash("添加电影成功!", "ok")
        return redirect(url_for("admin.movie_add"))
    return render_template("admin/movie_add.html", form=form)
Example #30
0
def process_results(movie_list):
    '''
    Function  that processes the movie result and transform them to a list of Objects
    Args:
        movie_list: A list of dictionaries that contain movie details
    Returns :
        movie_results: A list of movie objects
    '''
    movie_results = []
    for movie_item in movie_list:
        id = movie_item.get('id')
        title = movie_item.get('original_title')
        overview = movie_item.get('overview')
        poster = movie_item.get('poster_path')
        vote_average = movie_item.get('vote_average')
        vote_count = movie_item.get('vote_count')

        movie_object = Movie(id, title, overview, poster, vote_average,
                             vote_count)
        movie_results.append(movie_object)

    return movie_results
Example #31
0
def post_movie():
    if not session.get("user"):
        return redirect(url_for("home.index"))
    form = PostMovieForm()
    if form.validate_on_submit():
        data = form.data
        if not data['vote_count']:
            data['vote_count'] = 0
        if not data['vote_average']:
            data['vote_average'] = 0.0
        if not data['runtime']:
            data['runtime'] = 0.0
        movie = Movie(title=data['title'],
                      language=data['language'],
                      genre=data['genre'],
                      overview=data['overview'],
                      release_date=data['release_date'],
                      runtime=data['runtime'],
                      vote_count=data['vote_count'],
                      director=data['director'],
                      star=data['star'],
                      writer=data['writer'],
                      country=data['country'],
                      vote_average=data['vote_average'])
        posts = json.dumps(movie, default=Movie.movie2json)
        headers = {'Content-Type': 'application/json'}
        r = requests.post('http://127.0.0.1:5000/movies',
                          headers=headers,
                          data=posts)
        if r.status_code == 201:
            log = Log(request.remote_addr, time(), 'Post Movie')
            r = requests.post('http://127.0.0.1:5000/movies/logging',
                              headers=headers,
                              data=json.dumps(log, default=Log.log2json))
            return redirect(url_for("home.index"))
        else:
            flash("Something Error!", "err")
            return redirect(url_for("home.post_movie"))
    return render_template("home/post.html", form=form)
Example #32
0
def movie_add():
    """
	电影添加页面, 这里的电影播放器能够正常使用
	"""
    form = MovieForm()
    form.tag_id.choices = [(v.id, v.name) for v in Tag.query.all()]

    if form.validate_on_submit() is True:
        data = form.data
        path = create_app().config['UP_DIR']

        if os.path.exists(path) is False:
            os.makedirs(path)  # 当保存路径不存在时进行创建 √

        url = change_filename(form.url.data.filename)
        logo = change_filename(form.logo.data.filename)

        form.url.data.save(path + url)
        form.logo.data.save(path + logo)

        movie = Movie(  # 能够将文件名成功保存到数据库中 √
            title=data['title'],
            url=url,
            info=data['info'],
            logo=logo,
            star=int(data['star']),
            play_num=0,
            comment_num=0,
            tag_id=int(data['tag_id']),
            area=data['area'],
            release_time=data['release_time'],
            length=data['length'],
        )
        db.session.add(movie)
        db.session.commit()
        flash('电影添加成功', 'ok')
        return redirect(url_for('admin.movie_add'))
    return render_template('admin/movie_add.html', form=form)
Example #33
0
	def parse(self):
		for list in self.lists:
			dt = self.get_date_from_tag(list.div.strong)
			if dt is None:
				continue

			movie_list = []
			for child in list.ul.find_all('li'):
				contents = child.dl.find_all('span', 'link_txt')
				movie = Movie()
				movie.title = self.get_title_from_tag(child)
				movie.genre = self.get_genre_list_from_tag(contents[0])
				movie.director = self.get_director_list_from_tag(contents[1])
				try:
					movie.actor = self.get_actor_list_from_tag(contents[2])
				except IndexError:
					movie.actor = ""
				movie_list.append(movie)

			self.result[dt] = movie_list
def post_movie():
    data = request.body.readline()

    # if not data:
    #     abort(400, 'No data received')

    entity = json.loads(data)

    # if not entity.has_key('title'):
    #     abort(400, 'No title specified')

    try:
        movie = Movie()
        movie.title = entity["title"]
        movie.year = entity["year"]
        movie.runtime = entity["runtime"]
        movie.category = entity["category"]

        movie_key = movie.put()

        return {"error": False, "data": movie.to_dict()}

    except Exception, e:
        return {"error": True, "message": e}
Example #35
0
    if name:
        mapped = data_name_mapping.get(column.get('name'))
        column_pos[mapped] = pos
    pos += 1


for movie_data in data.get('data'):
    movie_api_id = movie_data[column_pos.get('api_id')]
    title = movie_data[column_pos.get('title')]
    year = movie_data[column_pos.get('year')]
    director = movie_data[column_pos.get('director')]
    movie = Movie.query.filter(Movie.title == title,
                               Movie.year == year,
                               Movie.director == director).first()
    if not movie:
        movie = Movie()
        movie.api_id = movie_data[column_pos.get('api_id')]
        sys.stdout.write('\rNEW Movie %s' % movie.api_id)
        movie.title = movie_data[column_pos.get('title')]
        movie.year = movie_data[column_pos.get('year')]
        movie.director = movie_data[column_pos.get('director')]
        # Set actors
        actors = [
            movie_data[column_pos.get('actor_1')],
            movie_data[column_pos.get('actor_2')],
            movie_data[column_pos.get('actor_3')]
        ]
        for actor_name in [a for a in actors if a]:
            actor = Actor.query.filter(Actor.name == actor_name).first()
            if not actor:
                actor = Actor(actor_name)
def get_movie_item(id):
    movie = Movie.get_by_id(int(id))
    data = movie.to_dict()
    data["id"] = movie.key.id()

    return {"error": False, "data": data}
def movie(movie):
    movie = Movie.get_movie(movie)
    return jsonify(movie)
def movies():
    limit = request.args.get("limit")
    movies_ = Movie.get_movies(limit)
    movies = json.dumps(movies_)
    return make_response(movies)