Last active
August 29, 2015 14:00
Revisions
-
oflow revised this gist
Feb 27, 2015 . 1 changed file with 16 additions and 16 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -3,13 +3,13 @@ // @name They are all 17 years old // @author HIRATA Yasuyuki <[email protected]> // @namespace http://yasu.asuka.net/ // @version 1.1.1 // @include http://www.google.tld/search?* // @include https://www.google.tld/search?* // @include https://www.google.tld/webhp?* // @include https://www.google.tld/#q=* // @released 2013-04-23 // @updated 2015-02-27 // ==/UserScript== /* @@ -18,7 +18,6 @@ * class名が変わるのでXPathで強引に取得してます。やっぱり重いです。 * 17歳でなく17才が正しいようです。 */ (function(){ @@ -59,7 +58,6 @@ function getElmXPath(elm, xpath) { var result = document.evaluate(xpath, elm, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null); return result.singleNodeValue; } function fixAge(elm, member, regexp, br) { if (!elm || !member) return; if (regexp) { @@ -82,28 +80,30 @@ function fix17sai() { var n = getElmXPath(mod[1], './div/*[contains(text(), "年齢")]'); if (a && n) { if (/(.+)、\s年齢/.test(n.textContent)) { var name = RegExp.$1.replace(/\s/g, ''); fixAge(a, members[name], /^([\d]+歳)\s/); } } /* おまけで3人ほど年齢表示されるので対応させる */ /* className.contains('ellip') */ var ellip = mod[2].getElementsByClassName('ellip'); for (var i = 0; i < ellip.length; i += 2) { fixAge(ellip[i + 1], members[ellip[i].textContent.replace(/\s/g, '')], /([\d]+歳)$/, true); } /* 右側のプロフィールも年齢間違えてる */ var knoecrpt = document.getElementsByClassName('kno-ecr-pt')[0]; if (knoecrpt) { fixAge( document.getElementsByClassName('kno-fv')[0], members[knoecrpt.textContent.replace(/\s/g, '')], /\(([\d]+歳)\)/ ); } /* 上のサムネみたいに表示される箇所 */ var kltat = document.getElementsByClassName('kltat'); for (var i = 0, elm; elm = kltat[i]; i++) { if (member = members[elm.textContent.replace(/\s/g, '')]) { fixAge( elm.parentNode.getElementsByClassName('klfact')[0], member @@ -132,22 +132,21 @@ function fix17sai() { } function get17days(member, br) { if (member['age'] == 19) { /* 今のところ榊原ゆいだけ */ return '永遠のナインティーン'; } else { var baseBirthday = new Date( member['age'] + member['y'], member['m'] - 1, member['d'] ); var sai = (member['age'] == 17 ? '才' : '歳'); var days = Math.floor((Date.now() - baseBirthday) / (60*60*24*1000)); return member['age'] + sai + 'と' + (br ? '<br>' : '') + days + '日'; } } fix17sai(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(mutation) { @@ -157,4 +156,5 @@ var observer = new MutationObserver(function(mutations) { }); }); observer.observe(document.body, {childList: true}); })(); -
oflow revised this gist
Jun 2, 2014 . 1 changed file with 3 additions and 2 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -9,7 +9,7 @@ // @include https://www.google.tld/webhp?* // @include https://www.google.tld/#q=* // @released 2013-04-23 // @updated 2014-06-02 // ==/UserScript== /* @@ -48,7 +48,6 @@ var members = { // '今井麻美': {age: 23, y: 1977, m: 5, d: 16}, 23歳教 元患部 '後藤邑子': {age: 29, y: 1975, m: 8, d: 28} }; /* 正規表現で調べるやつ */ var regExpStr = ''; for (name in members) { @@ -72,10 +71,12 @@ function fixAge(elm, member, regexp, br) { elm.textContent = get17days(member); } } function fix17sai() { var mod = document.querySelectorAll('li.mod'); /* ○○○ 年齢 と検索したとき上に出てくるやつ */ // ○歳 (YYYY年MM月DD日) となってないと失敗 if (!mod.length) return; var a = getElmXPath(mod[1], './div/*[contains(text(), "歳")]'); // 名前、年齢 var n = getElmXPath(mod[1], './div/*[contains(text(), "年齢")]'); -
oflow revised this gist
May 28, 2014 . 1 changed file with 67 additions and 72 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -9,7 +9,7 @@ // @include https://www.google.tld/webhp?* // @include https://www.google.tld/#q=* // @released 2013-04-23 // @updated 2014-05-28 // ==/UserScript== /* @@ -29,24 +29,24 @@ /* 「17歳教」ではなく「17才教」が正しい - 井上喜久子 オフィシャルサイト http://www.manbow.com/profile */ var members = { /* 名前: {age: 年齢, y: 年, m: 月, d: 日} */ '井上喜久子': {age: 17, y: 1964, m: 9, d: 25}, '田村ゆかり': {age: 17, y: 1976, m: 2, d: 27}, '野川さくら': {age: 17, y: 1978, m: 3, d: 1}, '佐藤利奈': {age: 17, y: 1981, m: 5, d: 2}, '堀江由衣': {age: 17, y: 1976, m: 9, d: 20}, '石田燿子': {age: 17, y: 1973, m: 10, d: 7}, '松澤由美': {age: 17, y: 1974, m: 3, d: 29}, 'こやまきみこ': {age: 17, y: 1979, m: 1, d: 27}, '池澤春菜': {age: 17, y: 1975, m: 12, d: 15}, '石黒千尋': {age: 17, y: 1983, m: 1, d: 24}, '田中敦子': {age: 17, y: 1962, m: 11, d: 14}, // '水落幸子': {age: 17, y: null, m: 12, d: 18}, わからんかった '寺田はるひ': {age: 17, y: 1973, m: 2, d: 11}, '榊原ゆい': {age: 19, y: 1980, m: 10, d: 13}, 'たかはし智秋': {age: 23, y: 1977, m: 5, d: 8}, // '今井麻美': {age: 23, y: 1977, m: 5, d: 16}, 23歳教 元患部 '後藤邑子': {age: 29, y: 1975, m: 8, d: 28} }; /* 正規表現で調べるやつ */ @@ -56,18 +56,22 @@ for (name in members) { } var regExpName = new RegExp('(' + regExpStr.substring(1) + ')'); function getElmXPath(elm, xpath) { var result = document.evaluate(xpath, elm, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null); return result.singleNodeValue; } function fixAge(elm, member, regexp, br) { if (!elm || !member) return; if (regexp) { if (regexp.test(elm.textContent)) { var age = RegExp.$1; elm.innerHTML = elm.innerHTML.replace(new RegExp(age, 'g'), get17days(member, br)); } } else { elm.textContent = get17days(member); } } function fix17sai() { var mod = document.querySelectorAll('li.mod'); /* ○○○ 年齢 と検索したとき上に出てくるやつ */ @@ -77,76 +81,68 @@ function fix17sai() { var n = getElmXPath(mod[1], './div/*[contains(text(), "年齢")]'); if (a && n) { if (/(.+)、\s年齢/.test(n.textContent)) { fixAge(a, members[RegExp.$1], /^([\d]+歳)\s/); } } /* おまけで3人ほど年齢表示されるので対応させる */ /* className.contains('ellip') */ var ellip = mod[2].getElementsByClassName('ellip'); for (var i = 0; i < ellip.length; i += 2) { fixAge(ellip[i + 1], members[ellip[i].textContent], /([\d]+歳)$/, true); } /* 右側のプロフィールも年齢間違えてる */ var knoecrpt = document.getElementsByClassName('kno-ecr-pt')[0]; if (knoecrpt) { fixAge( document.getElementsByClassName('kno-fv')[0], members[knoecrpt.textContent], /\(([\d]+歳)\)/ ); } /* 上のサムネみたいに表示される箇所 */ var kltat = document.getElementsByClassName('kltat'); for (var i = 0, elm; elm = kltat[i]; i++) { if (member = members[elm.textContent]) { fixAge( elm.parentNode.getElementsByClassName('klfact')[0], member ); } } /* 検索結果 わりと適当 */ var r = document.getElementsByClassName('r'); for (var i = 0, h3; h3 = r[i]; i++) { if (regExpName.test(h3.textContent) && h3.className.indexOf('17sai') == -1) { var member = members[RegExp.$1]; if (member) { /* 説明文に年齢 */ fixAge( h3.parentNode.getElementsByClassName('st')[0], member, /[\((]([\d]+歳)[\))]/ ); /* タイトルに年齢 */ fixAge(h3, member, /([\d]+歳)/); h3.className += ' 17sai'; } } } } function get17days(member, br) { if (member.age == 19) { /* 今のところ榊原ゆいだけ */ return '永遠のナインティーン'; } else { var baseBirthday = new Date( member.age + member.y, member.m - 1, member.d ); var sai = (member.age == 17 ? '才' : '歳'); var days = Math.floor((Date.now() - baseBirthday) / (60*60*24*1000)); return member.age + sai + 'と' + (br ? '<br>' : '') + days + '日'; } } @@ -160,5 +156,4 @@ var observer = new MutationObserver(function(mutations) { }); }); observer.observe(document.body, {childList: true}); })(); -
oflow revised this gist
May 26, 2014 . 1 changed file with 5 additions and 2 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -15,7 +15,8 @@ /* * 17sai.user.js は https://gist.github.com/hirataya/5442881 を元にあれこれ修正してます。 * なんかもう適当に追加していったらこうなったのでGoogleの仕様変わったら死にます。 * class名が変わるのでXPathで強引に取得してます。やっぱり重いです。 * 17歳でなく17才が正しいようです。 */ (function(){ @@ -25,6 +26,7 @@ /* 17歳教☆チームT - Togetter - http://togetter.com/li/360631 */ /* 23歳教 - ニコニコ大百科 - http://dic.nicovideo.jp/a/23%E6%AD%B3%E6%95%99 */ /* 田中敦子17歳 - Twitter - https://twitter.com/atuwosyousa/status/220026704066904064 */ /* 「17歳教」ではなく「17才教」が正しい - 井上喜久子 オフィシャルサイト http://www.manbow.com/profile */ var members = { /* 名前: [年齢, 年, 月, 日] */ @@ -137,13 +139,14 @@ function get17days(age, br) { Number(age[2]) - 1, Number(age[3]) ); var sai = (age[0] == 17 ? '才' : '歳'); var today = Date.now(); if (age[0] == 19) { /* 今のところ榊原ゆいだけ */ return '永遠のナインティーン'; } else { var days = Math.floor((today - baseBirthday)/(60*60*24*1000)); return age[0] + sai + 'と' + (br ? '<br>' : '') + days + '日'; } } -
oflow revised this gist
May 26, 2014 . 1 changed file with 32 additions and 16 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -9,12 +9,13 @@ // @include https://www.google.tld/webhp?* // @include https://www.google.tld/#q=* // @released 2013-04-23 // @updated 2014-05-26 // ==/UserScript== /* * 17sai.user.js は https://gist.github.com/hirataya/5442881 を元にあれこれ修正してます。 * なんかもう適当に追加していったらこうなったのでGoogleの仕様変わったら死にます。 * class名が変わるのでXPathで強引に取得するのでやっぱり重いです。 */ (function(){ @@ -53,25 +54,40 @@ for (name in members) { } var regExpName = new RegExp('(' + regExpStr.substring(1) + ')'); function getElmsXPath(elm, xpath) { var nodes = document.evaluate(xpath, elm, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null); for (var i = 0, elm = [], length = nodes.snapshotLength; i < length; i++) { elm.push(nodes.snapshotItem(i)); } return elm; } function getElmXPath(elm, xpath) { var result = document.evaluate(xpath, elm, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null); return result.singleNodeValue; } function fix17sai() { var mod = document.querySelectorAll('li.mod'); /* ○○○ 年齢 と検索したとき上に出てくるやつ */ // ○歳 (YYYY年MM月DD日) となってないと失敗 var a = getElmXPath(mod[1], './div/*[contains(text(), "歳")]'); // 名前、年齢 var n = getElmXPath(mod[1], './div/*[contains(text(), "年齢")]'); if (a && n) { if (/(.+)、\s年齢/.test(n.textContent)) { var age = members[RegExp.$1]; } if (age && /^([\d]+歳)\s/.test(a.textContent)) { a.textContent = a.textContent.replace(RegExp.$1, get17days(age, false)); } } /* おまけで3人ほど年齢表示されるので対応させる */ /* className.contains('ellip') */ var ellip = mod[2].getElementsByClassName('ellip'); for (var i = 0; i < ellip.length; i += 2) { var age = members[ellip[i].textContent]; if (age && /([\d]+歳)$/.test(ellip[i + 1].textContent)) { ellip[i + 1].innerHTML = get17days(age, true); } } /* 右側のプロフィールも年齢間違えてる */ @@ -142,4 +158,4 @@ var observer = new MutationObserver(function(mutations) { }); observer.observe(document.body, {childList: true}); })(); -
oflow revised this gist
May 21, 2014 . 1 changed file with 10 additions and 11 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -9,7 +9,7 @@ // @include https://www.google.tld/webhp?* // @include https://www.google.tld/#q=* // @released 2013-04-23 // @updated 2014-05-21 // ==/UserScript== /* @@ -55,8 +55,8 @@ var regExpName = new RegExp('(' + regExpStr.substring(1) + ')'); function fix17sai() { /* ○○○ 年齢 と検索したときに出てくるやつ */ var vk_ans = document.getElementsByClassName('_iq')[0]; var vk_gy = document.getElementsByClassName('_TK')[0]; if (vk_ans && vk_gy) { if (/(.+)、\s年齢/.test(vk_gy.textContent)) { var age = members[RegExp.$1]; @@ -66,13 +66,12 @@ function fix17sai() { } } /* おまけで3人ほど年齢表示されるので対応させる */ var knofbctx = document.getElementsByClassName('_Tg'); for (var i = 0; i < knofbctx.length; i++) { var ellip = knofbctx[i].getElementsByClassName('ellip'); var age = members[ellip[0].textContent]; if (age && /([\d]+歳)$/.test(ellip[1].textContent)) { ellip[1].innerHTML = get17days(age, true); } } /* 右側のプロフィールも年齢間違えてる */ @@ -143,4 +142,4 @@ var observer = new MutationObserver(function(mutations) { }); observer.observe(document.body, {childList: true}); })(); -
oflow revised this gist
Apr 28, 2014 . 1 changed file with 1 addition and 2 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -123,8 +123,7 @@ function get17days(age, br) { Number(age[3]) ); var today = Date.now(); if (age[0] == 19) { /* 今のところ榊原ゆいだけ */ return '永遠のナインティーン'; } else { -
oflow revised this gist
Apr 28, 2014 . 1 changed file with 3 additions and 0 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -6,12 +6,15 @@ // @version 1.1.0 // @include http://www.google.tld/search?* // @include https://www.google.tld/search?* // @include https://www.google.tld/webhp?* // @include https://www.google.tld/#q=* // @released 2013-04-23 // @updated 2014-04-28 // ==/UserScript== /* * 17sai.user.js は https://gist.github.com/hirataya/5442881 を元にあれこれ修正してます。 * なんかもう適当に追加していったらこうなったのでGoogleの仕様変わったら死にます */ (function(){ -
oflow created this gist
Apr 28, 2014 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,144 @@ // -*- coding: utf-8 -*- // ==UserScript== // @name They are all 17 years old // @author HIRATA Yasuyuki <[email protected]> // @namespace http://yasu.asuka.net/ // @version 1.1.0 // @include http://www.google.tld/search?* // @include https://www.google.tld/search?* // @released 2013-04-23 // @updated 2014-04-28 // ==/UserScript== /* * 17sai.user.js は https://gist.github.com/hirataya/5442881 を元にあれこれ修正してます。 */ (function(){ /* 17歳教 - ニコニコ大百科 - http://dic.nicovideo.jp/a/17%E6%AD%B3%E6%95%99 */ /* 17歳教☆チームT - Togetter - http://togetter.com/li/360631 */ /* 23歳教 - ニコニコ大百科 - http://dic.nicovideo.jp/a/23%E6%AD%B3%E6%95%99 */ /* 田中敦子17歳 - Twitter - https://twitter.com/atuwosyousa/status/220026704066904064 */ var members = { /* 名前: [年齢, 年, 月, 日] */ '井上喜久子': [17, 1964, 9, 25], '田村ゆかり': [17, 1976, 2, 27], '野川さくら': [17, 1978, 3, 1], '佐藤利奈': [17, 1981, 5, 2], '堀江由衣': [17, 1976, 9, 20], '石田燿子': [17, 1973, 10, 7], '松澤由美': [17, 1974, 3, 29], 'こやまきみこ': [17, 1979, 1, 27], '池澤春菜': [17, 1975, 12, 15], '石黒千尋': [17, 1983, 1, 24], '田中敦子': [17, 1962, 11, 14], // '水落幸子': [17, null, 12, 18], わからんかった '寺田はるひ': [17, 1973, 2, 11], '榊原ゆい': [19, 1980, 10, 13], 'たかはし智秋': [23, 1977, 5, 8], // '今井麻美': [23, 1977, 5, 16], '後藤邑子': [29, 1975, 8, 28] }; /* 正規表現で調べるやつ */ var regExpStr = ''; for (name in members) { regExpStr += '|' + name; } var regExpName = new RegExp('(' + regExpStr.substring(1) + ')'); function fix17sai() { /* ○○○ 年齢 と検索したときに出てくるやつ */ var vk_ans = document.getElementsByClassName('vk_ans')[0]; var vk_gy = document.getElementsByClassName('vk_gy')[0]; if (vk_ans && vk_gy) { if (/(.+)、\s年齢/.test(vk_gy.textContent)) { var age = members[RegExp.$1]; } if (age && /^([\d]+歳)\s/.test(vk_ans.textContent)) { vk_ans.textContent = vk_ans.textContent.replace(RegExp.$1, get17days(age, false)); } } /* おまけで3人ほど年齢表示されるので対応させる */ var kz = document.getElementsByClassName('_kz'); for (var i = 0; i < kz.length; i++) { var fl = kz[i].getElementsByClassName('fl')[0]; var ut = kz[i].getElementsByClassName('_Ut')[0]; var age = members[fl.textContent]; if (age && /([\d]+歳)$/.test(ut.textContent)) { ut.innerHTML = get17days(age, true); } } /* 右側のプロフィールも年齢間違えてる */ var knoecrpt = document.getElementsByClassName('kno-ecr-pt')[0]; if (knoecrpt) { var age = members[knoecrpt.textContent]; if (age) { var knofv = document.getElementsByClassName('kno-fv')[0]; if (/\(([\d]+歳)\)/.test(knofv.textContent)) { knofv.textContent = knofv.textContent.replace(RegExp.$1, get17days(age, false)); } } } /* サムネみたいに表示される箇所 */ var kltat = document.getElementsByClassName('kltat'); for (var i = 0; i < kltat.length; i++) { var age = members[kltat[i].textContent]; if (age) { var klfact = kltat[i].parentNode.getElementsByClassName('klfact')[0]; klfact.innerHTML = get17days(age, false); } } /* 検索結果 わりと適当 */ var h3 = document.getElementsByClassName('r'); for (var i = 0; i < h3.length; i++) { if (regExpName.test(h3[i].textContent) && h3[i].className.indexOf('17sai') == -1) { var age = members[RegExp.$1]; if (age) { /* 説明文に年齢 */ var st = h3[i].parentNode.getElementsByClassName('st')[0]; if (/[\((]([\d]+歳)[\))]/.test(st.textContent)) { st.innerHTML = st.innerHTML.replace(RegExp.$1, get17days(age, false)); } /* タイトルに年齢 */ if (/([\d]+歳)/.test(h3[i].textContent)) { h3[i].innerHTML = h3[i].innerHTML.replace(RegExp.$1, get17days(age, false)); } h3[i].className += ' 17sai'; } } } } function get17days(age, br) { var baseBirthday = new Date( Number(age[1]) + age[0], Number(age[2]) - 1, Number(age[3]) ); var today = Date.now(); var a = age[0]; if (a == 19) { /* 今のところ榊原ゆいだけ */ return '永遠のナインティーン'; } else { var days = Math.floor((today - baseBirthday)/(60*60*24*1000)); return age[0] + '歳と' + (br ? '<br>' : '') + days + '日'; } } fix17sai(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(mutation) { if (mutation.type == 'childList') { fix17sai(); } }); }); observer.observe(document.body, {childList: true}); })();