class DownloadJob(Job): signals = Target def __init__(self, page, observer = None): self.signals = Target() self.page = page # print 'DownloadJob: %r' % page['title'] super(DownloadJob, self).__init__(download_file , page['download']['url'] , page['download']['base_path'] , localFileName = page['download']['localFileName'] , cookie = page['download']['cookie'] , referer = page['download']['url'] , download_logs = page['download']['download_logs'] , observer = self ) page['statusText'] = 'IN_DOWNLOAD_QUEUE' if observer: self.signals.observe(observer) # print 'observes: %r' % self.signals.observes self.signals.emit('page:change', object = page) def notify(self, topic, value): # print 'DownloadJob.notify: %r = %r' % (topic, value) if topic == 'progress:change': self.page['download']['progress'] = value if 0 < value < 100: self.page['download']['statusText'] = 'RUNNING' elif value == 100: self.page['download']['statusText'] = 'FINISHED' self.page['finishedOn'] = datetime.utcnow().isoformat() self.signals.emit('page:change', object = self.page)
def __init__(self, page, observer = None): self.signals = Target() self.page = page # print 'DownloadJob: %r' % page['title'] super(DownloadJob, self).__init__(download_file , page['download']['url'] , page['download']['base_path'] , localFileName = page['download']['localFileName'] , cookie = page['download']['cookie'] , referer = page['download']['url'] , download_logs = page['download']['download_logs'] , observer = self ) page['statusText'] = 'IN_DOWNLOAD_QUEUE' if observer: self.signals.observe(observer) # print 'observes: %r' % self.signals.observes self.signals.emit('page:change', object = page)