Пример #1
0
 def get(self, title, session=None):
     try:
         tvmaze_id = int(title)
     except ValueError:
         tvmaze_id = None
     try:
         if tvmaze_id:
             series = tvm.series_lookup(tvmaze_id=tvmaze_id, session=session)
         else:
             series = tvm.series_lookup(series_name=title, session=session)
     except LookupError as e:
         raise NotFoundError(e.args[0])
     return jsonify(series.to_dict())
Пример #2
0
 def get(self, title, session=None):
     try:
         tvmaze_id = int(title)
     except ValueError:
         tvmaze_id = None
     try:
         if tvmaze_id:
             series = tvm.series_lookup(tvmaze_id=tvmaze_id,
                                        session=session)
         else:
             series = tvm.series_lookup(series_name=title, session=session)
     except LookupError as e:
         raise NotFoundError(e.args[0])
     return jsonify(series.to_dict())
Пример #3
0
    def get(self, tvmaze_id, session=None):
        args = episode_parser.parse_args()
        air_date = args.get('air_date')
        season_num = args.get('season_num')
        ep_num = args.get('ep_num')

        kwargs = {'tvmaze_id': tvmaze_id,
                  'session': session}
        if air_date:
            kwargs['series_id_type'] = 'date'
            kwargs['series_date'] = air_date
        elif season_num and ep_num:
            kwargs['series_id_type'] = 'ep'
            kwargs['series_season'] = season_num
            kwargs['series_episode'] = ep_num
        else:
            return {'status': 'error',
                    'message': 'not enough parameters sent for lookup'}, 500

        try:
            episode = tvm.episode_lookup(**kwargs)
        except LookupError as e:
            return {'status': 'error',
                    'message': e.args[0]
                    }, 404
        return jsonify(episode.to_dict())
Пример #4
0
    def test_series_expiration(self, execute_task):
        task = execute_task('test_series_expiration')
        entry = task.entries[0]
        assert entry['tvmaze_series_name'].lower() == 'Shameless'.lower(), 'lookup failed'
        assert entry['tvmaze_episode_id'] == 11134, 'episode id should be 11134, instead its %s' % entry[
            'tvmaze_episode_id']
        with Session() as session:
            # Manually change a value of the series to differ from actual value
            assert session.query(
                TVMazeSeries).first().name == 'Shameless', 'should have added Shameless and not Shameless (2011)'
            session.query(TVMazeSeries).update({'runtime': 100})
            session.commit()

            # Verify value has changed successfully and series expiration status is still False
            assert not session.query(TVMazeSeries).first().expired, 'expired status should be False'
            assert session.query(TVMazeSeries).first().runtime == 100, 'should be updated to 99'

            # Set series last_update time to 8 days ago, to trigger a show refresh upon request.
            last_week = datetime.now() - timedelta(days=8)  # Assuming max days between refreshes is 7
            session.query(TVMazeSeries).update({'last_update': last_week})
            session.commit()

            # Verify series expiration flag is now True
            assert session.query(TVMazeSeries).first().expired, 'expired status should be True'

            lookupargs = {'title': "Shameless"}
            series = APITVMaze.series_lookup(**lookupargs)

            # Verify series data has been refreshed with actual values upon 2nd call, and series expiration flag
            # is set to False
            assert series.runtime == 60, \
                'runtime should have been updated back to 60 from 100, instead its %s' % series.runtime
            assert not session.query(TVMazeSeries).first().expired, 'expired status should be False'
Пример #5
0
    def test_search_results(self, execute_task):
        task = execute_task('test_search_result')
        entry = task.entries[0]
        print(entry['tvmaze_series_name'].lower())
        assert entry['tvmaze_series_name'].lower() == 'Shameless'.lower(
        ), 'lookup failed'
        with Session() as session:
            assert task.entries[1]['tvmaze_series_name'].lower(
            ) == 'Shameless'.lower(), 'second lookup failed'

            assert len(session.query(TVMazeLookup).all()
                       ) == 1, 'should have added 1 show to search result'

            assert len(session.query(TVMazeSeries).all()
                       ) == 1, 'should only have added one show to show table'
            assert session.query(TVMazeSeries).first(
            ).name == 'Shameless', 'should have added Shameless and not Shameless (2011)'
            # change the search query
            session.query(TVMazeLookup).update(
                {'search_name': "shameless.s01e03.hdtv-flexget"})
            session.commit()

            lookupargs = {'title': "Shameless.S01E03.HDTV-FlexGet"}
            series = APITVMaze.series_lookup(**lookupargs)

            assert series.tvdb_id == entry[
                'tvdb_id'], 'tvdb id should be the same as the first entry'
            assert series.tvmaze_id == entry[
                'tvmaze_series_id'], 'tvmaze id should be the same as the first entry'
            assert series.name.lower() == entry['tvmaze_series_name'].lower(
            ), 'series name should match first entry'
Пример #6
0
    def test_series_expiration(self, execute_task):
        task = execute_task('test_series_expiration')
        entry = task.entries[0]
        assert entry['tvmaze_series_name'].lower() == 'Shameless'.lower(), 'lookup failed'
        assert entry['tvmaze_episode_id'] == 11134, 'episode id should be 11134, instead its %s' % entry[
            'tvmaze_episode_id']
        with Session() as session:
            # Manually change a value of the series to differ from actual value
            assert session.query(
                TVMazeSeries).first().name == 'Shameless', 'should have added Shameless and not Shameless (2011)'
            session.query(TVMazeSeries).update({'runtime': 100})
            session.commit()

            # Verify value has changed successfully and series expiration status is still False
            assert not session.query(TVMazeSeries).first().expired, 'expired status should be False'
            assert session.query(TVMazeSeries).first().runtime == 100, 'should be updated to 99'

            # Set series last_update time to 8 days ago, to trigger a show refresh upon request.
            last_week = datetime.now() - timedelta(days=8)  # Assuming max days between refreshes is 7
            session.query(TVMazeSeries).update({'last_update': last_week})
            session.commit()

            # Verify series expiration flag is now True
            assert session.query(TVMazeSeries).first().expired, 'expired status should be True'

            lookupargs = {'title': "Shameless"}
            series = APITVMaze.series_lookup(**lookupargs)

            # Verify series data has been refreshed with actual values upon 2nd call, and series expiration flag
            # is set to False
            assert series.runtime == 60, \
                'runtime should have been updated back to 60 from 100, instead its %s' % series.runtime
            assert not session.query(TVMazeSeries).first().expired, 'expired status should be False'
Пример #7
0
    def get(self, tvmaze_id, session=None):
        args = episode_parser.parse_args()
        air_date = args.get('air_date')
        season_num = args.get('season_num')
        ep_num = args.get('ep_num')

        kwargs = {'tvmaze_id': tvmaze_id, 'session': session}
        if air_date:
            kwargs['series_id_type'] = 'date'
            kwargs['series_date'] = air_date
        elif season_num and ep_num:
            kwargs['series_id_type'] = 'ep'
            kwargs['series_season'] = season_num
            kwargs['series_episode'] = ep_num
        else:
            return {
                'status': 'error',
                'message': 'not enough parameters sent for lookup'
            }, 500

        try:
            episode = tvm.episode_lookup(**kwargs)
        except LookupError as e:
            return {'status': 'error', 'message': e.args[0]}, 404
        return jsonify(episode.to_dict())
Пример #8
0
    def get(self, title, session=None):
        try:
            tvmaze_id = int(title)
        except ValueError:
            tvmaze_id = None

        try:
            if tvmaze_id:
                result = tvm.series_lookup(tvmaze_id=tvmaze_id,
                                           session=session)
            else:
                result = tvm.series_lookup(series_name=title, session=session)
        except LookupError as e:
            return {'status': 'error', 'message': e.args[0]}, 404

        return jsonify(result.to_dict())
Пример #9
0
    def get(self, title, session=None):
        try:
            tvmaze_id = int(title)
        except ValueError:
            tvmaze_id = None

        try:
            if tvmaze_id:
                result = tvm.series_lookup(tvmaze_id=tvmaze_id, session=session)
            else:
                result = tvm.series_lookup(series_name=title, session=session)
        except LookupError as e:
            return {'status': 'error',
                    'message': e.args[0]
                    }, 404

        return jsonify(result.to_dict())
Пример #10
0
    def get(self, tvmaze_id, session=None):
        args = episode_parser.parse_args()
        air_date = args.get('air_date')
        season_num = args.get('season_num')
        ep_num = args.get('ep_num')

        kwargs = {'tvmaze_id': tvmaze_id, 'session': session}
        if air_date:
            kwargs['series_id_type'] = 'date'
            kwargs['series_date'] = air_date
        elif season_num and ep_num:
            kwargs['series_id_type'] = 'ep'
            kwargs['series_season'] = season_num
            kwargs['series_episode'] = ep_num
        else:
            raise BadRequest('not enough parameters sent for lookup')
        try:
            episode = tvm.episode_lookup(**kwargs)
        except LookupError as e:
            raise NotFoundError(e.args[0])
        return jsonify(episode.to_dict())
Пример #11
0
    def get(self, tvmaze_id, session=None):
        args = episode_parser.parse_args()
        air_date = args.get('air_date')
        season_num = args.get('season_num')
        ep_num = args.get('ep_num')

        kwargs = {'tvmaze_id': tvmaze_id,
                  'session': session}
        if air_date:
            kwargs['series_id_type'] = 'date'
            kwargs['series_date'] = air_date
        elif season_num and ep_num:
            kwargs['series_id_type'] = 'ep'
            kwargs['series_season'] = season_num
            kwargs['series_episode'] = ep_num
        else:
            raise BadRequest('not enough parameters sent for lookup')
        try:
            episode = tvm.episode_lookup(**kwargs)
        except LookupError as e:
            raise NotFoundError(e.args[0])
        return jsonify(episode.to_dict())
Пример #12
0
    def test_search_results(self, execute_task):
        task = execute_task('test_search_result')
        entry = task.entries[0]
        print(entry['tvmaze_series_name'].lower())
        assert entry['tvmaze_series_name'].lower() == 'Shameless'.lower(), 'lookup failed'
        with Session() as session:
            assert task.entries[1]['tvmaze_series_name'].lower() == 'Shameless'.lower(), 'second lookup failed'

            assert len(session.query(TVMazeLookup).all()) == 1, 'should have added 1 show to search result'

            assert len(session.query(TVMazeSeries).all()) == 1, 'should only have added one show to show table'
            assert session.query(
                TVMazeSeries).first().name == 'Shameless', 'should have added Shameless and not Shameless (2011)'
            # change the search query
            session.query(TVMazeLookup).update({'search_name': "shameless.s01e03.hdtv-flexget"})
            session.commit()

            lookupargs = {'title': "Shameless.S01E03.HDTV-FlexGet"}
            series = APITVMaze.series_lookup(**lookupargs)

            assert series.tvdb_id == entry['tvdb_id'], 'tvdb id should be the same as the first entry'
            assert series.tvmaze_id == entry['tvmaze_series_id'], 'tvmaze id should be the same as the first entry'
            assert series.name.lower() == entry['tvmaze_series_name'].lower(), 'series name should match first entry'
Пример #13
0
    def test_series_expiration(self, execute_task):
        task = execute_task("test_series_expiration")
        entry = task.entries[0]
        assert entry["tvmaze_series_name"].lower() == "Shameless".lower(), "lookup failed"
        assert entry["tvmaze_episode_id"] == 11134, (
            "episode id should be 11134, instead its %s" % entry["tvmaze_episode_id"]
        )
        with Session() as session:
            # Manually change a value of the series to differ from actual value
            assert (
                session.query(TVMazeSeries).first().name == "Shameless"
            ), "should have added Shameless and not Shameless (2011)"
            session.query(TVMazeSeries).update({"runtime": 100})
            session.commit()

            # Verify value has changed successfully and series expiration status is still False
            assert not session.query(TVMazeSeries).first().expired, "expired status should be False"
            assert session.query(TVMazeSeries).first().runtime == 100, "should be updated to 99"

            # Set series last_update time to 8 days ago, to trigger a show refresh upon request.
            last_week = datetime.now() - timedelta(days=8)  # Assuming max days between refreshes is 7
            session.query(TVMazeSeries).update({"last_update": last_week})
            session.commit()

            # Verify series expiration flag is now True
            assert session.query(TVMazeSeries).first().expired, "expired status should be True"

            lookupargs = {"title": "Shameless"}
            series = APITVMaze.series_lookup(**lookupargs)

            # Verify series data has been refreshed with actual values upon 2nd call, and series expiration flag
            # is set to False
            assert series.runtime == 60, (
                "runtime should have been updated back to 60 from 100, instead its %s" % series.runtime
            )
            assert not session.query(TVMazeSeries).first().expired, "expired status should be False"
Пример #14
0
    def test_search_results(self, execute_task):
        task = execute_task("test_search_result")
        entry = task.entries[0]
        print(entry["tvmaze_series_name"].lower())
        assert entry["tvmaze_series_name"].lower() == "Shameless".lower(), "lookup failed"
        with Session() as session:
            assert task.entries[1]["tvmaze_series_name"].lower() == "Shameless".lower(), "second lookup failed"

            assert len(session.query(TVMazeLookup).all()) == 1, "should have added 1 show to search result"

            assert len(session.query(TVMazeSeries).all()) == 1, "should only have added one show to show table"
            assert (
                session.query(TVMazeSeries).first().name == "Shameless"
            ), "should have added Shameless and not Shameless (2011)"
            # change the search query
            session.query(TVMazeLookup).update({"search_name": "shameless.s01e03.hdtv-flexget"})
            session.commit()

            lookupargs = {"title": "Shameless.S01E03.HDTV-FlexGet"}
            series = APITVMaze.series_lookup(**lookupargs)

            assert series.tvdb_id == entry["tvdb_id"], "tvdb id should be the same as the first entry"
            assert series.tvmaze_id == entry["tvmaze_series_id"], "tvmaze id should be the same as the first entry"
            assert series.name.lower() == entry["tvmaze_series_name"].lower(), "series name should match first entry"