hearthpwn2ja

    @@ -1,33 +1,51 @@ /* - * @title ハースストーン翻訳 - * @description HearthPwn のデッキを日本語に翻訳します。 + * @title hearthpwn2ja + * @description translate deck info to japanese on hearthpwn.com * @include http://www.hearthpwn.com/decks/* - * @license MIT License - * @require jQuery + * @contributor fmimali http://let.hatelabo.jp/fmimali/let/hLHW-s2jm699 + * @license MIT License https://opensource.org/licenses/MIT + * @javascript_url */ -function hspwn2jp(deck_name, author, cards){ +// *STRONGLY* recommends Lint/beautify +// http://eslint.org/demo/ +// http://jsbeautifier.org/ +// and ES2015+ +// https://kangax.github.io/compat-table/es6/ +// https://caniuse.com/ +// https://babeljs.io/repl/ + +(function() { + 'use strict'; + + var deck_name = document.body.querySelector([ + '#content .deck-title.tip' + ]).textContent.trim(); + + var author = document.body.querySelector([ + '#content .user-details .user .name a.tip' + ]).textContent.trim(); + + // TBD location.serch, URL Object, URLSearchParams + var query = [ + 'deck_name=' + deck_name, + 'author=' + author, + 'url=' + location.href + ]; + + Array.prototype.map.call(document.body.querySelectorAll([ + '#content #cards .col-name a[data-count]' + ]), function(card) { + return { + name: card.textContent.trim(), + count: card.getAttribute('data-count') + }; + }).forEach(function(card, idx) { + query.push('n' + idx + '=' + card.name); + query.push('c' + idx + '=' + card.count); + }); + + var search = encodeURI(query.join('&')); + window.open('http://www.hearth.tokyo/translate?' + search); +})(); -var data = 'deck_name='+deck_name+'&'+'author=' + author + '&'+ 'url='+window.location.href + '&'; - for(i=0;i<cards.length;i++){ - var n_key = 'n' + i; - var c_key = 'c' + i; - var name = cards[i][0]; - var count = cards[i][1]; - data = data + n_key +'='+name + '&'; - data = data + c_key +'='+count + '&'; - } - params = encodeURI(data); - window.open('http://www.hearth.tokyo/translate?' + params); -} -var deck_name = $('h2.deck-title.tip:first').text(); -var author = $('#content section.user-details ul.user li.name a.tip').text().trim(); -var cards = $('table#cards tr td b a'); -var arr = []; -for(i=0;i<cards.length;i++){ -card = cards[i]; -var c = $(card).attr('data-count'); -var n = $(card).text().trim(); -arr.push([n,c]); -} -hspwn2jp(deck_name,author,arr);
  • /*
     * @title hearthpwn2ja
     * @description translate deck info to japanese on hearthpwn.com
     * @include http://www.hearthpwn.com/decks/*
     * @contributor fmimali http://let.hatelabo.jp/fmimali/let/hLHW-s2jm699
     * @license MIT License https://opensource.org/licenses/MIT
     * @javascript_url
     */
    
    // *STRONGLY* recommends Lint/beautify
    //  http://eslint.org/demo/
    //  http://jsbeautifier.org/
    // and ES2015+
    //  https://kangax.github.io/compat-table/es6/
    //  https://caniuse.com/
    //  https://babeljs.io/repl/
    
    (function() {
      'use strict';
    
      var deck_name = document.body.querySelector([
        '#content .deck-title.tip'
      ]).textContent.trim();
    
      var author = document.body.querySelector([
        '#content .user-details .user .name a.tip'
      ]).textContent.trim();
    
      // TBD location.serch, URL Object, URLSearchParams
      var query = [
        'deck_name=' + deck_name,
        'author=' + author,
        'url=' + location.href
      ];
    
      Array.prototype.map.call(document.body.querySelectorAll([
        '#content #cards .col-name a[data-count]'
      ]), function(card) {
        return {
          name: card.textContent.trim(),
          count: card.getAttribute('data-count')
        };
      }).forEach(function(card, idx) {
        query.push('n' + idx + '=' + card.name);
        query.push('c' + idx + '=' + card.count);
      });
    
      var search = encodeURI(query.join('&'));
      window.open('http://www.hearth.tokyo/translate?' + search);
    })();
    
    
  • Permalink
    このページへの個別リンクです。
    RAW
    書かれたコードへの直接のリンクです。
    Packed
    文字列が圧縮された書かれたコードへのリンクです。
    Userscript
    Greasemonkey 等で利用する場合の .user.js へのリンクです。
    Loader
    @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
    Metadata
    コード中にコメントで @xxx と書かれたメタデータの JSON です。

History

  1. 2017/05/06 17:42:14 - 2017-05-06
  2. 2017/05/06 08:43:03 - 2017-05-06
  3. 2017/05/06 08:42:58 - 2017-05-06