aboutsummaryrefslogtreecommitdiffstats
path: root/goo.gl.js
blob: df6feeb83e2ea23bfb904ea8a510f1473fd7c590 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
// INFO //
var INFO =
<plugin name="goo.gl.js" version="0.1"
        href="http://github.com/vimpr/vimperator-plugins/blob/master/goo.gl.js"
        summary="Get shorten URL by goo.gl"
        xmlns="http://vimperator.org/namespaces/liberator">
  <author email="mitsugu.oyama@gmail.com">Mitsugu Oyama</author>
  <author email="anekos@snca.net">anekos</author>
  <license href="http://opensource.org/licenses/mit-license.php">MIT</license>
  <project name="Vimperator" minVersion="2.3"/>
  <p>
    You can get short URL by goo.gl by this plugin.
  </p>
  <item>
    <tags>'goo.gl'</tags>
    <spec>:googl <oa>Long URL</oa></spec>
    <description>
      <p>You can get short URL by <link topic="http://goo.gl/">goo.gl</link> by this plugin.</p>
    </description>
  </item>
</plugin>;

(function(){
  let short_url=function(long_url){
    let req=new XMLHttpRequest();
    req.addEventListener("load",function(){
      let response=JSON.parse(req.responseText);
      liberator.echo(response.short_url);
      util.copyToClipboard(response.short_url,true);
    },false);
    req.addEventListener("error",function(){
      liberator.echo("Responce errror status from goo.gl. Status Code:" + req.status);
    },false);
    req.open("POST", "http://goo.gl/api/shorten?url="+encodeURIComponent(long_url));
    req.setRequestHeader("X-Auth-Google-Url-Shortener","true");
    req.send();
  };
  commands.addUserCommand(
    ["googl"],
    "Get short URL from Google",
    function(args){
      let long_url;
      if(args.length==0){
        long_url=buffer.URL;
      }else if(args.length==1){
        long_url=args.literalArg;
      }else{
        liberator.echoerr('argument error');
        return;
      }
      short_url(long_url);
    }, {
      literal: 0
    }, true);
})();