aboutsummaryrefslogtreecommitdiffhomepage
path: root/examples/data/scripts/download.sh
diff options
context:
space:
mode:
Diffstat (limited to 'examples/data/scripts/download.sh')
-rwxr-xr-xexamples/data/scripts/download.sh36
1 files changed, 20 insertions, 16 deletions
diff --git a/examples/data/scripts/download.sh b/examples/data/scripts/download.sh
index f6d34e9..df7a571 100755
--- a/examples/data/scripts/download.sh
+++ b/examples/data/scripts/download.sh
@@ -1,22 +1,26 @@
#!/bin/sh
-# just an example of how you could handle your downloads
-# try some pattern matching on the uri to determine what we should do
+#
+# uzbl's example configuration sets this script up as its download_handler.
+# when uzbl starts a download it runs this script.
+# if the script prints a file path to stdout, uzbl will save the download to
+# that path.
+# if nothing is printed to stdout, the download will be cancelled.
-# Some sites block the default wget --user-agent..
-GET="wget --user-agent=Firefox --content-disposition --load-cookies=$XDG_DATA_HOME/uzbl/cookies.txt"
+shift 7
+. $UZBL_UTIL_DIR/uzbl-dir.sh
-dest="$HOME"
-url="$8"
+# the URL that is being downloaded
+uri=$1
-http_proxy="$9"
-export http_proxy
+# a filename suggested by the server or based on the URL
+suggested_filename=${2:-$(echo "$uri" | sed 's/\W/-/g')}
-test "x$url" = "x" && { echo "you must supply a url! ($url)"; exit 1; }
+# the mimetype of the file being downloaded
+content_type=$3
-# only changes the dir for the $get sub process
-if echo "$url" | grep -E '.*\.torrent' >/dev/null;
-then
- ( cd "$dest"; $GET "$url")
-else
- ( cd "$dest"; $GET "$url")
-fi
+# the size of the downloaded file in bytes. this is not always accurate, since
+# the server might not have sent a size with its response headers.
+total_size=$4
+
+# just save the file to the default directory with the suggested name
+echo $UZBL_DOWNLOAD_DIR/$suggested_filename