weblioのマイ単語帳をTSVでエクスポートする

  • /*
     * @title weblioのマイ単語帳をTSVでエクスポートする
     * @description 例文と例文訳と出典を分けて出力します。Ankiへのインポート用に
     * @include http://uwl.weblio.jp/word-list*
     * @license MIT License
     */
    
    (function(){
     
        var id = [
            "TTG",  //単語
            "THT",  //発音記号
            "TIM",  //単語の意味
            "TSRH",    //例文
            "TSRFL",  //例文訳
            "TSRFR",  //出典
            "TLV",  //レベル
            "TDT"   //登録日
        ];
        var tsv = [];
    
        for(var i = 0; i < id.length; i++) {
            var td = $('.tngMain' + id[i]);
            var line = [];
            td.each(function(){
                var cn = $(this).text().replace(/[\n\r]/g,"");
                line.push(cn);
            });
            tsv.push(line);
        };
    
        if(tsv){
            $('#tsv').remove();
            tsv = transpose(tsv);
            downTsv(tsv);
        }
    
        function transpose(a) {
            return Object.keys(a[0]).map(function (c) {
                return a.map(function (r) {
                    return r[c];
                });
            });
        }
    
        function downTsv(tsv){
            var tsvbuf = tsv.map(function(e){
                return e.join('\t');
            }).join('\r\n');
            var bom = new Uint8Array([0xEF, 0xBB, 0xBF]);
            var blob = new Blob([bom, tsvbuf], { type: 'text/csv' });
            var url = (window.URL || window.webkitURL).createObjectURL(blob);
            var fileName = $('.headTbUlL').text() + '.tsv';
    
            $('<a>').attr('href', url).attr('download', fileName).text('エクスポート').attr('id', 'tsv').prependTo($('body'));
        }
    
    })();
  • Permalink
    このページへの個別リンクです。
    RAW
    書かれたコードへの直接のリンクです。
    Packed
    文字列が圧縮された書かれたコードへのリンクです。
    Userscript
    Greasemonkey 等で利用する場合の .user.js へのリンクです。
    Loader
    @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
    Metadata
    コード中にコメントで @xxx と書かれたメタデータの JSON です。

History

  1. 2015/07/16 22:37:19 - 2015-07-16
  2. 2015/07/16 22:35:54 - 2015-07-16
  3. 2015/07/16 22:31:52 - 2015-07-16
  4. 2015/07/16 22:23:10 - 2015-07-16