Ejemplo n.º 1
0
    def download(self):
        """Download DXVK to the local cache"""
        dxvk_url = self.base_url.format(self.version, self.version)
        if self.is_available():
            logger.warning("%s already available at %s",
                           self.base_name.upper(), self.dxvk_path)

        dxvk_archive_path = os.path.join(self.base_dir,
                                         os.path.basename(dxvk_url))

        downloader = Downloader(dxvk_url, dxvk_archive_path)
        downloader.start()
        while downloader.check_progress(
        ) < 1 and downloader.state != downloader.ERROR:
            time.sleep(0.3)
        if not system.path_exists(dxvk_archive_path):
            raise UnavailableDXVKVersion(
                "Failed to download %s %s" %
                (self.base_name.upper(), self.version))
        if os.stat(dxvk_archive_path).st_size:
            extract_archive(dxvk_archive_path,
                            self.dxvk_path,
                            merge_single=True)
            os.remove(dxvk_archive_path)
        else:
            os.remove(dxvk_archive_path)
            raise UnavailableDXVKVersion(
                "Failed to download %s %s" %
                (self.base_name.upper(), self.version))
Ejemplo n.º 2
0
def loadHeaderImage():
    global destfile
    global downloader
    url = "https://lutris.net/media/cache/52/dd/52ddbf4b6a59ab9af346ff50f7576ec6.jpg"
    destfile = "/tmp/dune-2000.jpg"
    downloader = Downloader(url, destfile, True, None, loadHeaderImageCallBack)
    downloader.start()
Ejemplo n.º 3
0
 def install_runner(self, row):
     url = row[2]
     logger.debug("Downloading %s", url)
     dest_path = self.get_dest_path(row)
     downloader = Downloader(url, dest_path, overwrite=True)
     GLib.timeout_add(100, self.get_progress, downloader, row)
     self.installing[row[self.COL_VER]] = downloader
     downloader.start()
Ejemplo n.º 4
0
 def install_runner(self, row):
     """Download and install a runner version"""
     dest_path = self.get_dest_path(row)
     url = row[self.COL_URL]
     if not url:
         ErrorDialog("Version %s is not longer available" %
                     row[self.COL_VER])
         return
     downloader = Downloader(row[self.COL_URL], dest_path, overwrite=True)
     GLib.timeout_add(100, self.get_progress, downloader, row)
     self.installing[row[self.COL_VER]] = downloader
     downloader.start()
Ejemplo n.º 5
0
    def download(self, remote_runtime_info):
        """Downloads a runtime locally"""
        remote_updated_at = remote_runtime_info["created_at"]
        remote_updated_at = time.strptime(remote_updated_at[:remote_updated_at.find(".")], "%Y-%m-%dT%H:%M:%S")
        if not self.should_update(remote_updated_at):
            return None

        url = remote_runtime_info["url"]
        archive_path = os.path.join(RUNTIME_DIR, os.path.basename(url))
        downloader = Downloader(url, archive_path, overwrite=True)
        downloader.start()
        GLib.timeout_add(100, self.check_download_progress, downloader)
        return downloader
Ejemplo n.º 6
0
 def install_runner(self, row):
     """Download and install a runner version"""
     runner = row.runner
     row.install_progress.set_fraction(0.0)
     dest_path = self.get_dest_path(runner)
     url = runner[self.COL_URL]
     if not url:
         ErrorDialog(_("Version %s is not longer available") % runner[self.COL_VER])
         return
     downloader = Downloader(runner[self.COL_URL], dest_path, overwrite=True)
     GLib.timeout_add(100, self.get_progress, downloader, row)
     self.installing[runner[self.COL_VER]] = downloader
     downloader.start()
     self.update_listboxrow(row)
Ejemplo n.º 7
0
    def start(self):
        """Start downloading a file."""
        if not self.downloader:
            try:
                self.downloader = Downloader(self.url, self.dest, referer=self.referer, overwrite=True)
            except RuntimeError as ex:
                from lutris.gui.dialogs import ErrorDialog

                ErrorDialog(ex.args[0])
                self.emit("cancel", {})
                return None

        timer_id = GLib.timeout_add(500, self._progress)
        self.cancel_button.set_sensitive(True)
        if not self.downloader.state == self.downloader.DOWNLOADING:
            self.downloader.start()
        return timer_id
Ejemplo n.º 8
0
 def download_runtime(self, runtime):
     name = runtime['name']
     created_at = runtime['created_at']
     created_at = time.strptime(created_at[:created_at.find('.')],
                                "%Y-%m-%dT%H:%M:%S")
     if self.get_created_at(name) >= created_at:
         return
     if self.status_updater:
         self.status_updater("Updating Runtime")
     logger.debug('Updating runtime %s', name)
     url = runtime['url']
     archive_path = os.path.join(RUNTIME_DIR, os.path.basename(url))
     self.current_updates += 1
     downloader = Downloader(url, archive_path, overwrite=True)
     self.cancellables.append(downloader.cancel)
     downloader.start()
     GLib.timeout_add(100, self.check_download_progress, downloader)
Ejemplo n.º 9
0
    def download(self):
        """Download DXVK to the local cache"""
        dxvk_url = self.base_url.format(self.version, self.version)
        if self.is_available():
            logger.warning("DXVK already available at %s", self.dxvk_path)

        dxvk_archive_path = os.path.join(self.base_dir, os.path.basename(dxvk_url))
        downloader = Downloader(dxvk_url, dxvk_archive_path)
        downloader.start()
        while downloader.check_progress() < 1:
            time.sleep(0.3)
        if not os.path.exists(dxvk_archive_path):
            logger.error("DXVK %s not downloaded")
            return
        if os.stat(dxvk_archive_path).st_size:
            extract_archive(dxvk_archive_path, self.dxvk_path, merge_single=True)
            os.remove(dxvk_archive_path)
        else:
            os.remove(dxvk_archive_path)
            raise UnavailableDXVKVersion("Failed to download DXVK %s" % self.version)
Ejemplo n.º 10
0
    def download(self):
        """Download DXVK to the local cache"""
        # There's a glitch in one of the archive's names
        fixed_version = 'v0.40' if self.version == '0.40' else self.version
        dxvk_url = self.base_url.format(self.version, fixed_version)
        if self.is_available():
            logger.warning("DXVK already available at %s", self.dxvk_path)

        dxvk_archive_path = os.path.join(self.base_dir, os.path.basename(dxvk_url))
        downloader = Downloader(dxvk_url, dxvk_archive_path)
        downloader.start()
        while downloader.check_progress() < 1:
            time.sleep(1)
        if not os.path.exists(dxvk_archive_path):
            logger.error("DXVK %s not downloaded")
            return
        if os.stat(dxvk_archive_path).st_size:
            extract_archive(dxvk_archive_path, self.dxvk_path, merge_single=True)
        else:
            logger.error("%s is an empty file", self.dxvk_path)
        os.remove(dxvk_archive_path)