Changeset 24155

Show
Ignore:
Timestamp:
11/18/08 21:24:16 (6 years ago)
Author:
anekos
Message:

保存先を指定できるようにした。

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • lang/javascript/vimperator-plugins/trunk/fetchyoutube.js

    r24132 r24155  
    1919(function () { 
    2020 
    21     function fetch () { 
    22       function fixFilename (filename) { 
    23         const badChars = /[\\\/:;\*\?\"\<\>\|]/g; 
    24         return filename.replace(badChars, '_'); 
    25       } 
     21    function fixFilename (filename) { 
     22      const badChars = /[\\\/:;\*\?\"\<\>\|]/g; 
     23      return filename.replace(badChars, '_'); 
     24    } 
    2625 
    27       function makeFile (s) { 
    28         var file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile); 
    29         file.initWithPath(s); 
    30         return file; 
    31       } 
     26    function makeFile (s) { 
     27      var file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile); 
     28      file.initWithPath(s); 
     29      return file; 
     30    } 
    3231 
    33       function makeURL (s) { 
    34         var url = Cc["@mozilla.org/network/standard-url;1"].createInstance(Ci.nsIURL); 
    35         url.spec = s; 
    36         return url; 
    37       } 
     32    function makeURL (s) { 
     33      var url = Cc["@mozilla.org/network/standard-url;1"].createInstance(Ci.nsIURL); 
     34      url.spec = s; 
     35      return url; 
     36    } 
    3837 
     38    function fetch (arg) { 
     39      let filepath = arg.string; 
    3940      let dir = options.getPref('browser.download.dir'); 
    4041      let as = content.document.defaultView.wrappedJSObject.swfArgs; 
     
    4849      let wbp = Cc["@mozilla.org/embedding/browser/nsWebBrowserPersist;1"].createInstance(Ci.nsIWebBrowserPersist); 
    4950 
    50       let file = dm.userDownloadsDirectory; 
    51       file.appendRelativePath(title + '.mp4'); 
     51      let file; 
     52      if (filepath) { 
     53        filepath = io.expandPath(filepath); 
     54        file = io.getFile(filepath); 
     55        if (file.isDirectory()) 
     56          file.appendRelativePath(title + '.mp4'); 
     57      } else { 
     58        file = dm.userDownloadsDirectory; 
     59        file.appendRelativePath(title + '.mp4'); 
     60      } 
     61      if (file.exists()) 
     62        return liberator.echoerr('The file already exists! -> ' + file.path); 
    5263      file = makeFileURI(file); 
     64 
    5365 
    5466      let dl = dm.addDownload(0, makeURL(url, null, null), file, title, null, null, null, null, wbp); 
     
    6072    //fetch(); 
    6173 
    62     commands.addUserCommand(['fetchyoutube', 'fetchyt'], 'fecth youtube HD video', fetch, {}, true); 
     74    commands.addUserCommand( 
     75      ['fetchyoutube', 'fetchyt'], 
     76      'fecth youtube HD video', 
     77      fetch, 
     78      {argCount: '*', completer: completion.file}, 
     79      true 
     80    ); 
    6381 
    6482})();