123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- <!DOCTYPE html>
- <html>
- <head>
- <meta name="apple-mobile-web-app-capable" content="yes" />
- <meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1, maximum-scale=1" />
- <meta charset="UTF-8">
- <meta name="theme-color" content="#4b75ff">
- <link rel="stylesheet" href="../script/semantic/semantic.min.css">
- <link rel="stylesheet" href="../script/ao.css">
- <script src="../script/jquery.min.js"></script>
- <script src="../script/ao_module.js"></script>
- <script src="../script/semantic/semantic.min.js"></script>
- <script src="qr/qrious.min.js"></script>
- <title>Web Downloader</title>
- <style>
- body {
- background-color: rgba(250, 250, 250, 0.8);
- }
-
- @supports (-webkit-backdrop-filter: none) or (backdrop-filter: none) {
- body {
- -webkit-backdrop-filter: blur(10px);
- backdrop-filter: blur(10px);
- background-color: rgba(250, 250, 250, 0.7);
- }
- }
-
- </style>
- </head>
- <body>
- <br>
- <div class="ui container">
- <h3 class="ui header">
- <i class="download icon"></i>
- <div class="content">
- Web Downloader
- <div class="sub header">Copy and Paste URL to download</div>
- </div>
- </h3>
- <form class="ui form">
- <div class="field">
- <label>URL</label>
- <input type="text" id="url" placeholder="http://example.com/myfile.txt">
- </div>
- <div class="field">
- <label>Save Location</label>
- <div class="ui icon input">
- <input type="text" id="filepath" placeholder="user:/Download/">
- <i class="circular open folder link icon" id="filepathbtn" onclick="selectSaveLocation()"></i>
- </div>
- </div>
- </form>
- <br>
- <button class="ui primary button" id="downloadbtn" onclick="initDownload()">Download</button>
- <!-- <button class="ui black button">Download on new tab</button>-->
- <br><br>
- <p id="status">Ready.</p>
- </div>
- <script>
- //Init windows events
- ao_module_setFixedWindowSize();
- function selectSaveLocation() {
- var filename = decodeURI($("#url").val().split("/").pop().split("?").shift());
- option = {
- defaultName: filename //Default filename used in new operation
- }
- ao_module_openFileSelector(fileSelected, "user:/Download", "new", false, option);
- }
- function fileSelected(filedata) {
- var filepath = filedata[0].filepath;
- $("#filepath").val(filepath);
- }
- function initDownload() {
- //check if path is empty before executing
- if ($("#filepath").val() == "") {
- var defaultFilename = decodeURI($("#url").val().split("/").pop().split("?").shift());
- $("#filepath").val("user:/Download/" + defaultFilename);
- }
- //declare variable
- var link = $("#url").val();
- var filepath = getfilepath($("#filepath").val());
- var filename = $("#filepath").val().split("/").pop();
- //error handler
- if (link == "") {
- $("#status").html("Error: Invalid URL.");
- return
- }
- if (filepath == "" || filename == "") {
- $("#status").html("Error: Invalid filepath.");
- return
- }
- //set the status
- fieldDisabled(true);
- $("#status").html('<i class="spinner loading icon "></i> Downloading...');
- //send the AJAX request to the serevr
- $.post("/system/ajgi/interface?script=Web Downloader/agi/download.agi", {
- link: link,
- filename: filename,
- filepath: filepath
- }, function(data) {
- //set the status
- fieldDisabled(false);
- $("#status").html('Downloaded in ' + filepath);
- });
- }
- function fieldDisabled(boolean) {
- $("#url").attr("disabled", boolean);
- $("#filepath").attr("disabled", boolean);
- $("#filepathbtn").attr("disabled", boolean);
- $("#downloadbtn").attr("disabled", boolean);
- }
- //handle the filepath
- function getfilepath(beforeProcessedPath) {
- var pathArray = beforeProcessedPath.split("/");
- var processedPath = "";
- for (var i = 0; i < pathArray.length - 1; i++) {
- processedPath += pathArray[i] + "/";
- }
- return processedPath;
- }
- </script>
- </body>
- </html>
|