t.um block
by
noromanba
2016-02-12 [2016/02/12 05:20:12]
detox t.umblr.com link on tumblr.com
@@ -14,7 +14,7 @@
// https://stackoverflow.com/questions/35023389/tumblr-injecting-new-code-into-my-links
// e.g.
-// http://yahoo.tumblr.com/post/138290069904/yahoo-sports-launches-the-vertical
+// http://yahoo.tumblr.com
(() => {
'use strict';
@@ -22,14 +22,15 @@
if (!ctx.querySelectorAll) return;
Array.from(ctx.querySelectorAll([
- '[href^="http://t.umblr.com/redirect?z="]',
- '[src^="http://t.umblr.com/redirect?z="]'
+ 'a[href^="http://t.umblr.com/redirect?z="]',
+ 'area[href^="http://t.umblr.com/redirect?z="]'
+ //'[src^="http://t.umblr.com/redirect?z="]'
]), link => {
// redirector syntax;
- // http://t.umblr.com/redirect?z=<ENCODED_URL>&t=<72_DIGIT_HASH>
+ // http://t.umblr.com/redirect?z=<ENCODED_URL>&t=<66_DIGIT_HASH>%3D%3D
let url = decodeURIComponent(new URL(link.href).search.slice(3));
url = url.split('&');
- url.pop(); // delete "t=<72_DIGIT_HASH>"
+ url.pop(); // remove "t=<66_DIGIT_HASH>%3D%3D"
link.href = url.join('&');
});
/*
* @title t.um block
* @description detox t.umblr.com link on tumblr.com
* @include *://*.tumblr.com/*
* @license CC0 Univ PD https://creativecommons.org/publicdomain/zero/1.0/legalcode
* @javascript_url
*/
// UserScript
// https://gist.github.com/noromanba/76a3d7791cf6eaf1c94c
// c.f.
// http://ptech.g.hatena.ne.jp/noromanba/20160208/1454965267
// https://stackoverflow.com/questions/35023389/tumblr-injecting-new-code-into-my-links
// e.g.
// http://yahoo.tumblr.com
(() => {
'use strict';
const detox = (ctx) => {
if (!ctx.querySelectorAll) return;
Array.from(ctx.querySelectorAll([
'a[href^="http://t.umblr.com/redirect?z="]',
'area[href^="http://t.umblr.com/redirect?z="]'
//'[src^="http://t.umblr.com/redirect?z="]'
]), link => {
// redirector syntax;
// http://t.umblr.com/redirect?z=<ENCODED_URL>&t=<66_DIGIT_HASH>%3D%3D
let url = decodeURIComponent(new URL(link.href).search.slice(3));
url = url.split('&');
url.pop(); // remove "t=<66_DIGIT_HASH>%3D%3D"
link.href = url.join('&');
});
};
detox(document.body);
new MutationObserver(records => {
records.forEach(record => {
detox(record.target);
});
}).observe(document.body, { childList: true, subtree: true });
})();
- Permalink
- このページへの個別リンクです。
- RAW
- 書かれたコードへの直接のリンクです。
- Packed
- 文字列が圧縮された書かれたコードへのリンクです。
- Userscript
- Greasemonkey 等で利用する場合の .user.js へのリンクです。
- Loader
- @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
- Metadata
- コード中にコメントで @xxx と書かれたメタデータの JSON です。