def urlSelected(self, url, button, state, target, args): url = str(url) if url == 'download': self.handler.get_game_data(self.gameid) self.handler.get_dl_link() urlp = urlparse.urlparse(self.handler.real_download_link) fname = os.path.basename(urlp[2]) dlpath = '' if not self.handler.does_download_exist(fname): dlpath = self.handler.game_download_path(fname).dirname() dlpath = 'file://%s' % dlpath if dlpath: kl = KURL.List() kl.append(KURL(self.handler.real_download_link)) job = KIO.copy(kl, KURL(dlpath)) job.gameid = self.gameid job.setName('game-%d' % self.gameid) self.connect(job, SIGNAL('result(KIO::Job *)'), self._handle_job) elif url.startswith('extras/'): fname = url.split('/')[-1] if not self.handler.is_extra_downloaded(fname): url = url[7:] kl = KURL.List() kl.append(KURL(url)) dlpath = 'file://%s' % self.handler.extras_path(fname) job = KIO.copy(kl, KURL(dlpath)) job.setName('extras-%s' % dlpath)
def download(self, url, filename): print "downloading %s to %s" % (url, filename) print "type(url)", type(url) dpath = self.main_path / 'downloads' if not dpath.exists(): dpath.mkdir() url = Url(url) kl = KURL.List() kl.append(KURL(url)) localpath = KURL(self._local_url(dpath / filename)) job = KIO.copy(kl, localpath) job.jobtype = 'youtube-dl' job.connect(job, SIGNAL('result(KIO::Job *)'), self.job_done) job.filename = filename data = dict(url=url, jobtype='youtube-dl', filename=filename) job.mergeMetaData(data)