def __init__( self, logger, notifier, settings, monitor = None ): self.logger = logger self.notifier = notifier self.settings = settings self.monitor = monitor self.db = None self.use_xz = mvutils.find_xz() is not None
def __init__(self): self.logger = appContext.MVLOGGER.get_new_logger('UpdateFileDownload') self.notifier = appContext.MVNOTIFIER self.settings = appContext.MVSETTINGS self.monitor = appContext.MVMONITOR self.database = None self.use_xz = mvutils.find_xz() is not None
def __init__(self, logger, notifier, settings, monitor=None): self.logger = logger self.notifier = notifier self.settings = settings self.monitor = monitor self.db = None self.cycle = 0 self.use_xz = mvutils.find_xz() is not None
def __init__(self, targetFilename, pDatabase): self.logger = appContext.MVLOGGER.get_new_logger('UpdateFileImport') self.notifier = appContext.MVNOTIFIER self.settings = appContext.MVSETTINGS self.monitor = appContext.MVMONITOR self.targetFilename = targetFilename self.database = pDatabase self.use_xz = mvutils.find_xz() is not None self.count = 0 self.insertCount = 0 self.updateCount = 0 self.film = {} self.errorCount = 0
def __init__(self, logger, notifier, settings, monitor=None): self.logger = logger self.notifier = notifier self.settings = settings self.monitor = monitor self.database = None self.use_xz = mvutils.find_xz() is not None self.cycle = 0 self.add_chn = 0 self.add_shw = 0 self.add_mov = 0 self.del_chn = 0 self.del_shw = 0 self.del_mov = 0 self.tot_chn = 0 self.tot_shw = 0 self.tot_mov = 0 self.index = 0 self.count = 0 self.film = {}
def _download(self, url, compressedFilename, targetFilename): # cleanup downloads start = time.time() self.logger.debug('Cleaning up old downloads...') mvutils.file_remove(compressedFilename) mvutils.file_remove(targetFilename) # # download filmliste self.notifier.show_download_progress() # pylint: disable=broad-except try: self.logger.debug('Trying to download {} from {}...', os.path.basename(compressedFilename), url) self.notifier.update_download_progress(0, url) mvutils.url_retrieve( url, filename=compressedFilename, reporthook=self.notifier.hook_download_progress, aborthook=self.monitor.abort_requested) self.logger.debug('downloaded {} in {} sec', compressedFilename, (time.time() - start)) except URLError as err: self.logger.error('Failure downloading {} - {}', url, err) self.notifier.close_download_progress() self.notifier.show_download_error(url, err) raise except ExitRequested as err: self.logger.error( 'Immediate exit requested. Aborting download of {}', url) self.notifier.close_download_progress() self.notifier.show_download_error(url, err) raise except Exception as err: self.logger.error('Failure writing {}', url) self.notifier.close_download_progress() self.notifier.show_download_error(url, err) raise # decompress filmliste start = time.time() try: if self.use_xz is True: self.logger.debug('Trying to decompress xz file...') retval = subprocess.call( [mvutils.find_xz(), '-d', compressedFilename]) self.logger.debug('decompress xz {} in {} sec', retval, (time.time() - start)) elif UPD_CAN_BZ2 is True: self.logger.debug('Trying to decompress bz2 file...') retval = self._decompress_bz2(compressedFilename, targetFilename) self.logger.debug('decompress bz2 {} in {} sec', retval, (time.time() - start)) elif UPD_CAN_GZ is True: self.logger.debug('Trying to decompress gz file...') retval = self._decompress_gz(compressedFilename, targetFilename) self.logger.debug('decompress gz {} in {} sec', retval, (time.time() - start)) else: # should never reach pass except Exception as err: self.logger.error('Failure decompress {}', err) self.notifier.close_download_progress() self.notifier.show_download_error('decompress failed', err) raise self.notifier.close_download_progress() return retval == 0 and mvutils.file_exists(targetFilename)
def GetNewestList( self, full ): ( url, compfile, destfile, _ ) = self._get_update_info( full ) if url is None: self.logger.error( 'No suitable archive extractor available for this system' ) self.notifier.ShowMissingExtractorError() return False # get mirrorlist self.logger.info( 'Opening {}', url ) try: data = urllib2.urlopen( url ).read() except urllib2.URLError as err: self.logger.error( 'Failure opening {}', url ) self.notifier.ShowDownloadError( url, err ) return False root = etree.fromstring ( data ) urls = [] for server in root.findall( 'Server' ): try: URL = server.find( 'URL' ).text Prio = server.find( 'Prio' ).text urls.append( ( self._get_update_url( URL ), float( Prio ) + random.random() * 1.2 ) ) self.logger.info( 'Found mirror {} (Priority {})', URL, Prio ) except AttributeError: pass urls = sorted( urls, key = itemgetter( 1 ) ) urls = [ url[0] for url in urls ] # cleanup downloads self.logger.info( 'Cleaning up old downloads...' ) self._file_remove( compfile ) self._file_remove( destfile ) # download filmliste self.notifier.ShowDownloadProgress() lasturl = '' for url in urls: try: lasturl = url self.logger.info( 'Trying to download {} from {}...', os.path.basename( compfile ), url ) self.notifier.UpdateDownloadProgress( 0, url ) mvutils.url_retrieve( url, filename = compfile, reporthook = self.notifier.HookDownloadProgress, aborthook = self.monitor.abortRequested ) break except urllib2.URLError as err: self.logger.error( 'Failure downloading {}', url ) self.notifier.CloseDownloadProgress() self.notifier.ShowDownloadError( lasturl, err ) return False except ExitRequested as err: self.logger.error( 'Immediate exit requested. Aborting download of {}', url ) self.notifier.CloseDownloadProgress() self.notifier.ShowDownloadError( lasturl, err ) return False except Exception as err: self.logger.error( 'Failure writng {}', url ) self.notifier.CloseDownloadProgress() self.notifier.ShowDownloadError( lasturl, err ) return False # decompress filmliste if self.use_xz is True: self.logger.info( 'Trying to decompress xz file...' ) retval = subprocess.call( [ mvutils.find_xz(), '-d', compfile ] ) self.logger.info( 'Return {}', retval ) elif upd_can_bz2 is True: self.logger.info( 'Trying to decompress bz2 file...' ) retval = self._decompress_bz2( compfile, destfile ) self.logger.info( 'Return {}', retval ) elif upd_can_gz is True: self.logger.info( 'Trying to decompress gz file...' ) retval = self._decompress_gz( compfile, destfile ) self.logger.info( 'Return {}', retval ) else: # should nebver reach pass self.notifier.CloseDownloadProgress() return retval == 0 and mvutils.file_exists( destfile )
def get_newest_list(self, full): """ Downloads the database update file Args: full(bool): Downloads the full list if `True` """ (url, compfile, destfile, _) = self._get_update_info(full) if url is None: self.logger.error( 'No suitable archive extractor available for this system') self.notifier.show_missing_extractor_error() return False # cleanup downloads self.logger.info('Cleaning up old downloads...') mvutils.file_remove(compfile) mvutils.file_remove(destfile) # download filmliste self.notifier.show_download_progress() # pylint: disable=broad-except try: self.logger.info('Trying to download {} from {}...', os.path.basename(compfile), url) self.notifier.update_download_progress(0, url) mvutils.url_retrieve( url, filename=compfile, reporthook=self.notifier.hook_download_progress, aborthook=self.monitor.abort_requested ) except URLError as err: self.logger.error('Failure downloading {} - {}', url, err) self.notifier.close_download_progress() self.notifier.show_download_error(url, err) return False except ExitRequested as err: self.logger.error( 'Immediate exit requested. Aborting download of {}', url) self.notifier.close_download_progress() self.notifier.show_download_error(url, err) return False except Exception as err: self.logger.error('Failure writing {}', url) self.notifier.close_download_progress() self.notifier.show_download_error(url, err) return False # decompress filmliste if self.use_xz is True: self.logger.info('Trying to decompress xz file...') retval = subprocess.call([mvutils.find_xz(), '-d', compfile]) self.logger.info('Return {}', retval) elif UPD_CAN_BZ2 is True: self.logger.info('Trying to decompress bz2 file...') retval = self._decompress_bz2(compfile, destfile) self.logger.info('Return {}', retval) elif UPD_CAN_GZ is True: self.logger.info('Trying to decompress gz file...') retval = self._decompress_gz(compfile, destfile) self.logger.info('Return {}', retval) else: # should never reach pass self.notifier.close_download_progress() return retval == 0 and mvutils.file_exists(destfile)
def GetNewestList(self, full): (url, compfile, destfile, _) = self._get_update_info(full) if url is None: self.logger.error( 'No suitable archive extractor available for this system') self.notifier.ShowMissingExtractorError() return False # get mirrorlist self.logger.info('Opening {}', url) try: data = urllib2.urlopen(url).read() except urllib2.URLError as err: self.logger.error('Failure opening {}', url) self.notifier.ShowDownloadError(url, err) return False root = etree.fromstring(data) urls = [] for server in root.findall('Server'): try: URL = server.find('URL').text Prio = server.find('Prio').text urls.append((self._get_update_url(URL), float(Prio) + random.random() * 1.2)) self.logger.info('Found mirror {} (Priority {})', URL, Prio) except AttributeError: pass urls = sorted(urls, key=itemgetter(1)) urls = [url[0] for url in urls] # cleanup downloads self.logger.info('Cleaning up old downloads...') mvutils.file_remove(compfile) mvutils.file_remove(destfile) # download filmliste self.notifier.ShowDownloadProgress() lasturl = '' for url in urls: try: lasturl = url self.logger.info('Trying to download {} from {}...', os.path.basename(compfile), url) self.notifier.UpdateDownloadProgress(0, url) mvutils.url_retrieve( url, filename=compfile, reporthook=self.notifier.HookDownloadProgress, aborthook=self.monitor.abortRequested) break except urllib2.URLError as err: self.logger.error('Failure downloading {}', url) self.notifier.CloseDownloadProgress() self.notifier.ShowDownloadError(lasturl, err) return False except ExitRequested as err: self.logger.error( 'Immediate exit requested. Aborting download of {}', url) self.notifier.CloseDownloadProgress() self.notifier.ShowDownloadError(lasturl, err) return False except Exception as err: self.logger.error('Failure writng {}', url) self.notifier.CloseDownloadProgress() self.notifier.ShowDownloadError(lasturl, err) return False # decompress filmliste if self.use_xz is True: self.logger.info('Trying to decompress xz file...') retval = subprocess.call([mvutils.find_xz(), '-d', compfile]) self.logger.info('Return {}', retval) elif upd_can_bz2 is True: self.logger.info('Trying to decompress bz2 file...') retval = self._decompress_bz2(compfile, destfile) self.logger.info('Return {}', retval) elif upd_can_gz is True: self.logger.info('Trying to decompress gz file...') retval = self._decompress_gz(compfile, destfile) self.logger.info('Return {}', retval) else: # should nebver reach pass self.notifier.CloseDownloadProgress() return retval == 0 and mvutils.file_exists(destfile)