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)