예제 #1
0
 def get_poster(self, only_cached=False):
     """Downloads this poster to a local cache and returns the path"""
     from flexget.manager import manager
     base_dir = os.path.join(manager.config_base, 'userstatic')
     if os.path.isfile(os.path.join(base_dir, self.poster_file or '')):
         return self.poster_file
     elif only_cached:
         return
     # If we don't already have a local copy, download one.
     url = get_mirror('banner') + self.poster
     log.debug('Downloading poster %s' % url)
     dirname = os.path.join('tvdb', 'posters')
     # Create folders if the don't exist
     fullpath = os.path.join(base_dir, dirname)
     if not os.path.isdir(fullpath):
         os.makedirs(fullpath)
     filename = os.path.join(dirname, posixpath.basename(self.poster))
     thefile = file(os.path.join(base_dir, filename), 'wb')
     thefile.write(requests.get(url).content)
     self.poster_file = filename
     # If we are detached from a session, update the db
     if not Session.object_session(self):
         session = Session()
         session.query(TVDBSeries).filter(TVDBSeries.id == self.id).update(
             values={'poster_file': filename})
         session.close()
     return filename
예제 #2
0
 def get_poster(self, only_cached=False):
     """Downloads this poster to a local cache and returns the path"""
     from flexget.manager import manager
     base_dir = os.path.join(manager.config_base, 'userstatic')
     if os.path.isfile(os.path.join(base_dir, self.poster_file or '')):
         return self.poster_file
     elif only_cached:
         return
     # If we don't already have a local copy, download one.
     url = get_mirror('banner') + self.poster
     log.debug('Downloading poster %s', url)
     dirname = os.path.join('tvdb', 'posters')
     # Create folders if the don't exist
     fullpath = os.path.join(base_dir, dirname)
     if not os.path.isdir(fullpath):
         os.makedirs(fullpath)
     filename = os.path.join(dirname, posixpath.basename(self.poster))
     thefile = file(os.path.join(base_dir, filename), 'wb')
     thefile.write(requests.get(url).content)
     self.poster_file = filename
     # If we are detached from a session, update the db
     if not Session.object_session(self):
         with Session() as session:
             session.query(TVDBSeries).filter(TVDBSeries.id == self.id).update(values={'poster_file': filename})
     return filename
예제 #3
0
 def get_file(self, only_cached=False):
     """Makes sure the poster is downloaded to the local cache (in userstatic folder) and
     returns the path split into a list of directory and file components"""
     from flexget.manager import manager
     base_dir = os.path.join(manager.config_base, 'userstatic')
     if self.file and os.path.isfile(os.path.join(base_dir, self.file)):
         return self.file.split(os.sep)
     elif only_cached:
         return
     # If we don't already have a local copy, download one.
     log.debug('Downloading poster %s' % self.url)
     dirname = os.path.join('tmdb', 'posters', str(self.movie_id))
     # Create folders if they don't exist
     fullpath = os.path.join(base_dir, dirname)
     if not os.path.isdir(fullpath):
         os.makedirs(fullpath)
     filename = os.path.join(dirname, posixpath.basename(self.url))
     thefile = file(os.path.join(base_dir, filename), 'wb')
     thefile.write(urlopener(self.url, log).read())
     self.file = filename
     # If we are detached from a session, update the db
     if not Session.object_session(self):
         session = Session()
         poster = session.query(TMDBPoster).filter(
             TMDBPoster.db_id == self.db_id).first()
         if poster:
             poster.file = filename
             session.commit()
         session.close()
     return filename.split(os.sep)
예제 #4
0
 def get_file(self, only_cached=False):
     """Makes sure the poster is downloaded to the local cache (in userstatic folder) and
     returns the path split into a list of directory and file components"""
     from flexget.manager import manager
     base_dir = os.path.join(manager.config_base, 'userstatic')
     if self.file and os.path.isfile(os.path.join(base_dir, self.file)):
         return self.file.split(os.sep)
     elif only_cached:
         return
     # If we don't already have a local copy, download one.
     log.debug('Downloading poster %s' % self.url)
     dirname = os.path.join('tmdb', 'posters', str(self.movie_id))
     # Create folders if they don't exist
     fullpath = os.path.join(base_dir, dirname)
     if not os.path.isdir(fullpath):
         os.makedirs(fullpath)
     filename = os.path.join(dirname, posixpath.basename(self.url))
     thefile = file(os.path.join(base_dir, filename), 'wb')
     thefile.write(requests.get(self.url).content)
     self.file = filename
     # If we are detached from a session, update the db
     if not Session.object_session(self):
         session = Session()
         poster = session.query(TMDBPoster).filter(TMDBPoster.db_id == self.db_id).first()
         if poster:
             poster.file = filename
             session.commit()
         session.close()
     return filename.split(os.sep)
예제 #5
0
    def get_poster(self, only_cached=False):
        """Downloads this poster to a local cache and returns the path"""
        from flexget.manager import manager

        base_dir = os.path.join(manager.config_base, "userstatic")
        if os.path.isfile(os.path.join(base_dir, self.poster_file or "")):
            return self.poster_file
        elif only_cached:
            return
        # If we don't already have a local copy, download one.
        url = get_mirror("banner") + self.poster
        log.debug("Downloading poster %s" % url)
        dirname = os.path.join("tvdb", "posters")
        # Create folders if the don't exist
        fullpath = os.path.join(base_dir, dirname)
        if not os.path.isdir(fullpath):
            os.makedirs(fullpath)
        filename = os.path.join(dirname, posixpath.basename(self.poster))
        thefile = file(os.path.join(base_dir, filename), "wb")
        thefile.write(requests.get(url).content)
        self.poster_file = filename
        # If we are detached from a session, update the db
        if not Session.object_session(self):
            session = Session()
            try:
                session.query(TVDBSeries).filter(TVDBSeries.id == self.id).update(values={"poster_file": filename})
            finally:
                session.close()
        return filename