Beispiel #1
0
 def togglewatchlist(self):
     movie_id = int(self.request.form['movie_id'])
     movie = Movie.load(self.session, id=movie_id)
     if movie in self.user.watchlist:
         self.user.watchlist.remove(movie)
     else:
         # checked if already seen
         try:
             Rating.load(self.session, movie=movie, user=self.user)
         except NoResultFound:
             self.user.watchlist.add(movie)
Beispiel #2
0
 def togglewatchlist(self):
     movie_id = int(self.request.form['movie_id'])
     movie = Movie.load(self.session, id=movie_id)
     if movie in self.user.watchlist:
         self.user.watchlist.remove(movie)
     else:
         # checked if already seen
         try:
             Rating.load(self.session, movie=movie, user=self.user)
         except NoResultFound:
             self.user.watchlist.add(movie)
Beispiel #3
0
    def index(self):
        self.template = 'index.phtml'

        # top rated
        top_rated = Rating.top_rated(self.session, limit=6)
        self.view['top_rated'] = top_rated

        # last rated
        last_rated = self.view['last_rated']
        shuffle(last_rated)
        last_rated[5:] = []
        ids = map(itemgetter1, self.view['last_rated'])
        movies = self.session.query(Movie).filter(Movie.id.in_(ids)).all()
        movies = dict((m.id, m)
                      for m in movies)
        self.view['movies'] = movies

        # recent users
        self.view['recent_users'] = User.recent(self.session, limit=8)

        # recent ratings
        already_shown = set(ids)
        already_shown.update((m.id for m, _ in top_rated))
        recent = self.session.query(Rating)\
                     .options(joinedload(Rating.movie))\
                     .options(joinedload(Rating.user))\
                     .filter(not_(Rating.movie_id.in_(already_shown)))\
                     .order_by(Rating.rated.desc()).limit(15).all()
        shuffle(recent)
        recent[10:] = []
        self.view['recent_ratings'] = recent
Beispiel #4
0
    def show(self, movie_id, dummy):
        try:
            movie = Movie.load(self.session, id=movie_id)
        except NoResultFound:
            return self.not_found('error/404.phtml')

        # last ratings
        last_ratings = self.session.query(Rating.rating, User)\
                           .join((User, and_(User.id == Rating.user_id,
                                             Rating.movie == movie)))\
                           .order_by(Rating.rated.desc()).all()

        if len(last_ratings) == 0:
            avg_rating = None
        else:
            avg_rating = sum(r.rating for r in last_ratings) * .5 / len(last_ratings)

        # user rating
        if self.user is not None:
            try:
                self.view['rating'] = Rating.load(self.session, movie=movie, user=self.user)
            except NoResultFound:
                pass

        self.view.update({'movie': movie,
                          'meta': movie.get_meta(),
                          'last_ratings': last_ratings,
                          'avg_rating': avg_rating})
        self.template = 'movie.phtml'
Beispiel #5
0
    def index(self):
        self.template = 'index.phtml'

        # top rated
        top_rated = Rating.top_rated(self.session, limit=6)
        self.view['top_rated'] = top_rated

        # last rated
        last_rated = self.view['last_rated']
        shuffle(last_rated)
        last_rated[5:] = []
        ids = map(itemgetter1, self.view['last_rated'])
        movies = self.session.query(Movie).filter(Movie.id.in_(ids)).all()
        movies = dict((m.id, m) for m in movies)
        self.view['movies'] = movies

        # recent users
        self.view['recent_users'] = User.recent(self.session, limit=8)

        # recent ratings
        already_shown = set(ids)
        already_shown.update((m.id for m, _ in top_rated))
        recent = self.session.query(Rating)\
                     .options(joinedload(Rating.movie))\
                     .options(joinedload(Rating.user))\
                     .filter(not_(Rating.movie_id.in_(already_shown)))\
                     .order_by(Rating.rated.desc()).limit(15).all()
        shuffle(recent)
        recent[10:] = []
        self.view['recent_ratings'] = recent
Beispiel #6
0
    def index(self):
        self.template = 'index.phtml'

        # top rated
        self.view['top_rated'] = Rating.top_rated(self.session, limit=6)

        # last rated
        ids = map(itemgetter1, self.view['last_rated'])
        movies = self.session.query(Movie).filter(Movie.id.in_(ids)).all()
        movies = dict((m.id, m)
                      for m in movies)
        self.view['movies'] = movies

        # recent users
        self.view['recent_users'] = User.recent(self.session, limit=5)
Beispiel #7
0
    def __init__(self, request, tpl_env, appspace, action_name, **kwargs):

        self._request = request
        self.appspace = appspace
        self.action_name = action_name
        self.tpl_env = tpl_env

        # set blank template and empty view obj
        self.template = None
        self.view = {
            'path': request.path,
            'get': request.args,
            'cdn': environ['CDN_PREFIX']
        }

        # set the controller log
        self._log = ""

        # init response obj
        self._response = Response('', content_type="text/html; charset=UTF-8")
        self._response.status_code = 200

        # rest of the initializers (db, session, etc)
        for key, value in kwargs.iteritems():
            setattr(self, key, value)

        self.view['last_rated'] = Rating.last_rated(self.session, limit=17)

        # check user data
        self.user = None
        if 'logged' in self.request.cookies:
            parsed_cookie = parse_cookie(self.request.cookies['logged'])
            if parsed_cookie is None:
                self.response.delete_cookie('logged')
            else:
                service, service_user_id = parsed_cookie
                try:
                    user = User.load(self.session,
                                     service=service,
                                     nickname=service_user_id)
                    self.user = user
                except NoResultFound:
                    self.response.delete_cookie('logged')

        self.view['user'] = self.user
Beispiel #8
0
    def __init__(self, request, tpl_env, appspace, action_name, **kwargs):

        self._request = request
        self.appspace = appspace
        self.action_name = action_name
        self.tpl_env = tpl_env

        # set blank template and empty view obj
        self.template = None
        self.view = {'path': request.path,
                     'get': request.args,
                     'cdn': environ['CDN_PREFIX']}

        # set the controller log
        self._log = ""

        # init response obj
        self._response = Response('', content_type = "text/html; charset=UTF-8")
        self._response.status_code = 200

        # rest of the initializers (db, session, etc)
        for key, value in kwargs.iteritems():
            setattr(self, key, value)

        self.view['last_rated'] = Rating.last_rated(self.session, limit=17)

        # check user data
        self.user = None
        if 'logged' in self.request.cookies:
            parsed_cookie = parse_cookie(self.request.cookies['logged'])
            if parsed_cookie is None:
                self.response.delete_cookie('logged')
            else:
                service, service_user_id = parsed_cookie
                try:
                    user = User.load(self.session, service = service, nickname = service_user_id)
                    self.user = user
                except NoResultFound:
                    self.response.delete_cookie('logged')

        self.view['user'] = self.user