diff options
| author | mitsugu oyama | 2011-07-30 13:58:10 +0900 | 
|---|---|---|
| committer | mitsugu oyama | 2011-07-30 13:58:10 +0900 | 
| commit | 7b30e0eeb0a1b78cace0e3b5ce1a11858b841d75 (patch) | |
| tree | a0aed99dcf6f8334a205219be62cfb6dc2f8bf5c | |
| parent | be944522e55c21460fae614cc06c8bd874e9d603 (diff) | |
| download | vimperator-plugins-7b30e0eeb0a1b78cace0e3b5ce1a11858b841d75.tar.bz2 | |
migration web site
| -rw-r--r-- | tinami.js | 189 | 
1 files changed, 0 insertions, 189 deletions
diff --git a/tinami.js b/tinami.js deleted file mode 100644 index c96bb9a..0000000 --- a/tinami.js +++ /dev/null @@ -1,189 +0,0 @@ -// INFO // -var INFO =  -<plugin name="tinami.js" version="0.3" -        summary="Download image from tinami" -        href="http://github.com/vimpr/vimperator-plugins/blob/master/tinami.js" -        xmlns="http://vimperator.org/namespaces/liberator"> -  <author email="mitsugu.oyama@gmail.com">Mitsugu Oyama</author> -  <license href="http://opensource.org/licenses/mit-license.php">MIT</license> -  <project name="Vimperator" minVersion="2.3"/> -  <p> -    You can save image from TINAMI by this plugin. -  </p> -  <item> -    <tags>'TINAMI'</tags> -    <spec>:tinami</spec> -    <description> -      <p>You can save image from <link topic="http://www.tinami.com/">TINAMI</link> by this plugin.</p> -      <p>You must login tinami, and must display image page.(ex. http://www.tinami.com/view/??????)</p> -      <p>Not supported manga page and novel page.</p> -    </description> -  </item> -</plugin>; - -commands.addUserCommand( -  ['tinami'], -  'Save Image File from tinami', -  function(){ -    let Cc=Components.classes; -    let Ci=Components.interfaces; - -    let contents=gBrowser.selectedBrowser.contentDocument; -    if(contents.domain!="www.tinami.com"){ -      liberator.echoerr('This page is not tinami.'); -      return false; -    } -    if(contents.URL.search(/view/i)==-1){ -      liberator.echoerr("This page is not tinami's image page."); -      return false; -    } - -    let directoryPicker=function() { -      let path; -      let fp=Cc["@mozilla.org/filepicker;1"].createInstance(Ci.nsIFilePicker); -      fp.init(window,'Select Directory',Ci.nsIFilePicker.modeGetFolder); -      let result=fp.show(); -      switch(result){ -        case Ci.nsIFilePicker.returnOK: -          path=fp.file.path; -          break; -        default: -        case Ci.nsIFilePicker.returnCancel: -          return ''; -      } -      return path; -    }; - -    const baseInfo="http://www.tinami.com/view/original/"; -    let id=contents.URL.substr(contents.URL.lastIndexOf('/')+1); -    let cookie=contents.cookie; -    let xhrImgInfo; -    let xhrImg; -    let saveDirectory=directoryPicker(); -    if(saveDirectory.length<1) return; -    let imgUrl; -    let savePath; - -    let trueTinamiImg=function(){ -      let fileName=imgUrl.substr(imgUrl.lastIndexOf('/')); -      savePath=saveDirectory+fileName; -      let instream=xhrImg.responseText; -      let aFile=Cc["@mozilla.org/file/local;1"] -        .createInstance(Ci.nsILocalFile); -      aFile.initWithPath(savePath); -      if(true===aFile.exists()){ -        let value=window.prompt('すでに同じ名前のファイルがあります。\nデフォルトファイル名を変更してください。',fileName.substr(1)); -        if(null===value){ -          return false; -        } -        fileName='/'+value; -        savePath=saveDirectory+fileName; -        aFile.initWithPath(savePath); -      } -      let outstream=Cc["@mozilla.org/network/safe-file-output-stream;1"] -        .createInstance(Ci.nsIFileOutputStream); -      outstream.init(aFile,0x02|0x08|0x20,0664,0); -      outstream.write(instream,instream.length); -      if (outstream instanceof Ci.nsISafeOutputStream) { -        outstream.finish(); -      }else{ -        outstream.close(); -      } -    }; - -    let falseTinamiImg=function(){ -      liberator.echoerr("Image file accept error."); -      return false; -    }; - -    let saveImag=function(){ -      xhrImg=Cc["@mozilla.org/xmlextras/xmlhttprequest;1"] -        .createInstance(); -      xhrImg.QueryInterface(Ci.nsIDOMEventTarget); -      xhrImg.addEventListener("load",trueTinamiImg,false); -      xhrImg.addEventListener("error",falseTinamiImg,false); -      xhrImg.QueryInterface(Ci.nsIXMLHttpRequest); -      xhrImg.open("GET",imgUrl,true); -      xhrImg.overrideMimeType('text/plain;charset=x-user-defined'); -      xhrImg.setRequestHeader('Referer',contents.URL); -      xhrImg.setRequestHeader('Cookie',cookie); -      xhrImg.send(null); -    }; - -    let getDOMHtmlDocument=function(str){ -      let doc; -      let range; -      try{ -        if(document.implementation.createHTMLDocument){ -          doc=document.implementation.createHTMLDocument(''); -          range=doc.createRange(); -          range.selectNodeContents(doc.documentElement); -          range.deleteContents(); -          doc.documentElement.appendChild(range.createContextualFragment(str)); -        }else{ -          let doctype=document.implementation.createDocumentType( -                      'html', -                      '-//W3C//DTD HTML 4.01 Transitional//EN', -                      'http://www.w3.org/TR/html4/loose.dtd' -          ); -          doc=document.implementation.createDocument(null,'html',doctype); -          range=doc.createRange(); -          range.selectNodeContents(doc.documentElement); -          let content=doc.adoptNode(range.createContextualFragment(str)); -          doc.documentElement.appendChild(content); -        } -      }catch(e){ -        doc=null; -      } -      return doc; -    }; - -    let getImageUrl=function(pageContents){ -      let url; -      let htmldoc=getDOMHtmlDocument(pageContents); -      if(htmldoc){ -        if(0<htmldoc.getElementsByTagName('img').length) -          url=htmldoc.getElementsByTagName('img').item(0).getAttribute('src'); -        else -          url=''; -      }else{ -        let s=pageContents.indexOf('src="')+5; -        let e=pageContents.indexOf('"',s); -        url=pageContents.substr(s,e-s); -      } -      return url; -    }; - -    let trueImgInfo=function(){ -      imgUrl=getImageUrl(xhrImgInfo.responseText); -      if(-1!=imgUrl.search(/http:\/\/img.tinami.com\/illust\/img\//i)){ -        saveImag(); -      }else{ -        liberator.echoerr("You should login TINAMI :<"); -      } -    }; - -    let falseImgInfo=function(){ -      liberator.echo("Image Infomation page accept error."); -      return false; -    }; - -//    if(0<contents.getElementsByClassName('bigger').length){ -      xhrImgInfo=Cc["@mozilla.org/xmlextras/xmlhttprequest;1"].createInstance(); -      xhrImgInfo.QueryInterface(Ci.nsIDOMEventTarget); -      xhrImgInfo.addEventListener("load",trueImgInfo,false); -      xhrImgInfo.addEventListener("error",falseImgInfo,false); -      xhrImgInfo.QueryInterface(Ci.nsIXMLHttpRequest); -      xhrImgInfo.open("GET",baseInfo+id,true); -      xhrImgInfo.setRequestHeader('Referer',contents.URL); -      xhrImgInfo.setRequestHeader('Cookie',cookie); -      xhrImgInfo.send(null); -/* -    }else{ -      imgUrl=contents.getElementsByClassName('draggable_img').item(0) -              .firstChild.getAttribute('src'); -      saveImag(); -    } -*/ -  } -);  | 
