YSSS↺
by
noromanba
2016-03-03 [2016/03/03 05:57:14]
auto-reload Yahoo social stream search
@@ -1,6 +1,6 @@
/*
* @title YSSS↺
- * @description auto-refresh Yahoo social stream search
+ * @description auto-reload Yahoo social stream search
* @include http://realtime.search.yahoo.co.jp/search?*
* @license MIT License http://opensource.org/licenses/MIT
* @javascript_url
@@ -9,19 +9,52 @@
// Yahoo realtime search
// http://let.hatelabo.jp/noromanba/let/gYC-yoDbprDzbQ
+// e.g.
+// http://realtime.search.yahoo.co.jp/search?p=%23bot
+
+// toggleScroll() manually-on/off only, can not auto-refresh when auto-stop
+// window.YAHOO.JP.srch.rt.toggleScroll()
(() => {
- const button = document.body.querySelector('#srt_TSk_1 a[href][class]');
- if (!button) return;
+ const state = document.body.querySelector('#msg_TSk_1[style]');
+ if (!state) return;
- const refresh = () => {
- if (button.classList.contains('off')) {
- window.YAHOO.JP.srch.rt.toggleScroll();
+ const reload = () => {
+ if (state.style.display !== 'none') {
+ // ~= location.reload();
+ location.assign(state.querySelector('a[href*="//"]').href);
}
};
- refresh();
+ reload();
new MutationObserver(() => {
- refresh();
- }).observe(button, { attributes: true, attributeFilter: ['class'] });
+ reload();
+ }).observe(state, { attributes: true, attributeFilter: ['style'] });
})();
+
+// # DBG
+//
+// ## scroll on (default)
+// <p id="srt_TSk_1" class="cf rapidnofollow" style="" data-nzk="rpd" data-ylk="sec:ascr;slk:sc;">
+// <a href="javascript:YAHOO.JP.srch.rt.toggleScroll();" title="停止" class="on rapidnofollow" data-ylk="sec:ascr;slk:sc;pos:0;" data-rapid_p="1"><span>停止</span></a><span class="t">自動更新:5秒</span></p>
+//
+// <p id="msg_TSk_1" class="cf" style="display:none;">
+// <a href="http://ord.yahoo.co.jp/o/realtime/_ylt=************************;_ylu=********************************/SIG=*********/EXP=1457031575/**http%3a//realtime.search.yahoo.co.jp/search%3fp=%2523bot%26rkf=1%26ei=UTF-8"><span>再読み込み</span></a>自動更新を停止しました。
+// </p>
+//
+// ## manually-stop
+// <p id="srt_TSk_1" class="cf rapidnofollow" style="" data-nzk="rpd" data-ylk="sec:ascr;slk:sc;">
+// <a href="javascript:YAHOO.JP.srch.rt.toggleScroll();" title="再生" class="rapidnofollow off" data-ylk="sec:ascr;slk:sc;pos:0;" data-rapid_p="1"><span>再生</span></a><span class="t">自動更新:停止中</span></p>
+//
+// <p id="msg_TSk_1" class="cf" style="display:none;">
+// <a href="http://ord.yahoo.co.jp/o/realtime/_ylt=************************;_ylu=********************************/SIG=*********/EXP=1457031575/**http%3a//realtime.search.yahoo.co.jp/search%3fp=%2523bot%26rkf=1%26ei=UTF-8"><span>再読み込み</span></a>自動更新を停止しました。
+// </p>
+//
+// ## auto-stop
+// <p id="srt_TSk_1" class="cf rapidnofollow" style="display: none;" data-nzk="rpd" data-ylk="sec:ascr;slk:sc;">
+// <a href="javascript:YAHOO.JP.srch.rt.toggleScroll();" title="停止" class="rapidnofollow on" data-ylk="sec:ascr;slk:sc;pos:0;" data-rapid_p="1"><span>停止</span></a><span class="t">自動更新:5秒</span></p>
+//
+// <p id="msg_TSk_1" class="cf" style="display: inline;">
+// <a href="http://ord.yahoo.co.jp/o/realtime/_ylt=************************;_ylu=********************************/SIG=*********/EXP=1457031575/**http%3a//realtime.search.yahoo.co.jp/search%3fp=%2523bot%26rkf=1%26ei=UTF-8"><span>再読み込み</span></a>自動更新を停止しました。
+// </p>
+
/*
* @title YSSS↺
* @description auto-reload Yahoo social stream search
* @include http://realtime.search.yahoo.co.jp/search?*
* @license MIT License http://opensource.org/licenses/MIT
* @javascript_url
*/
// Yahoo realtime search
// http://let.hatelabo.jp/noromanba/let/gYC-yoDbprDzbQ
// e.g.
// http://realtime.search.yahoo.co.jp/search?p=%23bot
// toggleScroll() manually-on/off only, can not auto-refresh when auto-stop
// window.YAHOO.JP.srch.rt.toggleScroll()
(() => {
const state = document.body.querySelector('#msg_TSk_1[style]');
if (!state) return;
const reload = () => {
if (state.style.display !== 'none') {
// ~= location.reload();
location.assign(state.querySelector('a[href*="//"]').href);
}
};
reload();
new MutationObserver(() => {
reload();
}).observe(state, { attributes: true, attributeFilter: ['style'] });
})();
// # DBG
//
// ## scroll on (default)
// <p id="srt_TSk_1" class="cf rapidnofollow" style="" data-nzk="rpd" data-ylk="sec:ascr;slk:sc;">
// <a href="javascript:YAHOO.JP.srch.rt.toggleScroll();" title="停止" class="on rapidnofollow" data-ylk="sec:ascr;slk:sc;pos:0;" data-rapid_p="1"><span>停止</span></a><span class="t">自動更新:5秒</span></p>
//
// <p id="msg_TSk_1" class="cf" style="display:none;">
// <a href="http://ord.yahoo.co.jp/o/realtime/_ylt=************************;_ylu=********************************/SIG=*********/EXP=1457031575/**http%3a//realtime.search.yahoo.co.jp/search%3fp=%2523bot%26rkf=1%26ei=UTF-8"><span>再読み込み</span></a>自動更新を停止しました。
// </p>
//
// ## manually-stop
// <p id="srt_TSk_1" class="cf rapidnofollow" style="" data-nzk="rpd" data-ylk="sec:ascr;slk:sc;">
// <a href="javascript:YAHOO.JP.srch.rt.toggleScroll();" title="再生" class="rapidnofollow off" data-ylk="sec:ascr;slk:sc;pos:0;" data-rapid_p="1"><span>再生</span></a><span class="t">自動更新:停止中</span></p>
//
// <p id="msg_TSk_1" class="cf" style="display:none;">
// <a href="http://ord.yahoo.co.jp/o/realtime/_ylt=************************;_ylu=********************************/SIG=*********/EXP=1457031575/**http%3a//realtime.search.yahoo.co.jp/search%3fp=%2523bot%26rkf=1%26ei=UTF-8"><span>再読み込み</span></a>自動更新を停止しました。
// </p>
//
// ## auto-stop
// <p id="srt_TSk_1" class="cf rapidnofollow" style="display: none;" data-nzk="rpd" data-ylk="sec:ascr;slk:sc;">
// <a href="javascript:YAHOO.JP.srch.rt.toggleScroll();" title="停止" class="rapidnofollow on" data-ylk="sec:ascr;slk:sc;pos:0;" data-rapid_p="1"><span>停止</span></a><span class="t">自動更新:5秒</span></p>
//
// <p id="msg_TSk_1" class="cf" style="display: inline;">
// <a href="http://ord.yahoo.co.jp/o/realtime/_ylt=************************;_ylu=********************************/SIG=*********/EXP=1457031575/**http%3a//realtime.search.yahoo.co.jp/search%3fp=%2523bot%26rkf=1%26ei=UTF-8"><span>再読み込み</span></a>自動更新を停止しました。
// </p>
- Permalink
- このページへの個別リンクです。
- RAW
- 書かれたコードへの直接のリンクです。
- Packed
- 文字列が圧縮された書かれたコードへのリンクです。
- Userscript
- Greasemonkey 等で利用する場合の .user.js へのリンクです。
- Loader
- @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
- Metadata
- コード中にコメントで @xxx と書かれたメタデータの JSON です。