hearthpwn2ja
by
noromanba
2017-05-06 [2017/05/06 17:42:14]
(Forked from
ハース翻訳 by
fmimali)
translate deck info to japanese on hearthpwn.com
@@ -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 です。