[gnome-boxes] downloader, wizard: Support a custom filename for downloaded media
- From: Debarshi Ray <debarshir src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-boxes] downloader, wizard: Support a custom filename for downloaded media
- Date: Thu, 12 Oct 2017 15:26:32 +0000 (UTC)
commit 332b91ce136dbce3c2793bdd891eeda8076144de
Author: Debarshi Ray <debarshir gnome org>
Date: Thu Aug 31 20:24:35 2017 +0200
downloader, wizard: Support a custom filename for downloaded media
The URI for getting gratis RHEL ISOs from the Red Hat developer portal
at developers.redhat.com looks like this:
https://access.cdn.redhat.com/.../rhel...dvd.iso?_auth_=......
While it seems possible to get the basename of the downloaded file by
removing the URI's query string, there is no guarantee that the
structure of the URI won't change in future.
On the other hand, the basename of the downloaded ISO is encoded in the
authentication URI that's embedded in the initial JSON or XML response
from the server. It might be better to use that instead. Therefore,
there is a need to explicitly specify the filename.
https://bugzilla.gnome.org/show_bug.cgi?id=786679
src/downloader.vala | 10 +++++++++-
src/wizard.vala | 2 +-
2 files changed, 10 insertions(+), 2 deletions(-)
---
diff --git a/src/downloader.vala b/src/downloader.vala
index 86fac3b..6ca8251 100644
--- a/src/downloader.vala
+++ b/src/downloader.vala
@@ -205,10 +205,18 @@ private class Boxes.Downloader : GLib.Object {
}
public static async string fetch_media (string uri,
+ string? filename = null,
ActivityProgress progress = new ActivityProgress (),
Cancellable? cancellable = null) throws GLib.Error {
var file = File.new_for_uri (uri);
- var basename = file.get_basename ();
+ string? basename = null;
+
+ if (filename == null) {
+ basename = file.get_basename ();
+ } else {
+ basename = filename;
+ }
+
return_val_if_fail (basename != null && basename != "" && basename != "/", null);
var downloader = Downloader.get_instance ();
diff --git a/src/wizard.vala b/src/wizard.vala
index b13f7df..40ce8a9 100644
--- a/src/wizard.vala
+++ b/src/wizard.vala
@@ -606,7 +606,7 @@ private class Boxes.Wizard: Gtk.Stack, Boxes.UI {
prep_status_label.label = _("Downloading media…");
try {
- var cache_path = yield Downloader.fetch_media (uri, download_progress, prepare_cancellable);
+ var cache_path = yield Downloader.fetch_media (uri, null, download_progress,
prepare_cancellable);
prepare_downloaded_media (cache_path, progress);
} catch (GLib.IOError.CANCELLED e) {
debug ("Cancelled downloading media '%s'!", uri);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]