您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Old School RT Functionality for New Twitter, Allows retweeting with Comments
当前为
(function () { // ==UserScript== // @name Traditional Twitter RT (re-mixed) FF + Chrome // @namespace http://blog.thrsh.net // @author cecekpawon (THRSH) // @description Old School RT Functionality for New Twitter, Allows retweeting with Comments // @version 5.1 // @match http://twitter.com/* // @match https://twitter.com/* // @run-at document-start // ==/UserScript== const yodUpdate = { script_id : 89405, script_version : '5.1', script_pipeId : '7015d15962d94b26823e801048aae95d', } function usoUpdate() { TWRT.$('<script/>', {type: 'text/javascript', src: '//usoupdater.herokuapp.com/?id=' + yodUpdate.script_id + '&ver=' + yodUpdate.script_version}).appendTo('head'); } var TWRT = {}; TWRT.$ = null; TWRT.UW = null; TWRT.debug = 1; TWRT.GRID = false; // GLOBAL Variable TWRT.setting_def = { yodEmote: 0, yodOption: 0, yodRT: "RT", yodAdvTop: 1, yodSound: 1, yodSoundVol: 7, yodGeo: 1, yodAuto140: 0, yodExpand: 1, yodMute: 1, yodMuteLists: '', yodMuteListsString: '', yodLastMention: 1, yodMarkMention: 1, yodLastData: 1, yodScreenName: '', yodLastInDMsg: 0, yodGIFAva: 1, yodGeo: 1, yodRTReply: 1, yodActRT: 1, yodActFB: 1, yodActStalking: 1, yodPromoted: 1, yodKeepBR: 1, yodBodyBG: 1 }; TWRT.setting = {}; TWRT.symbols = { reg: ('\\m/ ||| d(^_^)b ||| (^_^) ||| \\(^_^)/ ||| v(^_^)v ||| (*-*) ||| (*_*) ||| (T_T) ||| (!__!) ||| m(_ _)m ||| (>_<) ||| (=_=) ||| (-.-)Zzz ||| (-_-*) ||| (^_~) ||| (._.) ||| (<.<) ||| (-__-) ||| (@_@) ||| (X_X) ||| ($_$) ||| ( .__.)/||').split('|||'), utf: ('\u2605 | \u00B1 | \u00bd | \u2122 | \u2260 | \u2190 | \u2191 | \u2192 | \u2193 | \u2194 | \u00ab | \u00bb | \u25ba | \u266b | <( \u203e\u25bf\u203e)-\u03c3 | \u2512(\u0283\u0283\u0283_-)\u250e').split('|') }; TWRT.css = '\ #global-actions {float:left!important;}\ .yodLegend legend{margin:auto!important;line-height:inherit!important;font-size:12px!important;font-weight:bold!important;text-align: center!important; padding: 0 5px!important; width: auto!important;border:none !important;}\ .yodLegend fieldset{border:none;}\ .yodLegend ul:not(:last-child) {margin-bottom:10px!important;}\ .yodLegend .tablex{font-size:11px!important;margin: 5px auto; width: 98%;}\ .yodLegend .tablex ul {text-align: center;}\ .yodLegend .tablex li {display: inline-block;cursor:pointer!important;min-width:15%;padding: 2px 0;}\ .yodLegend .tablex li:hover {font-size: 20px;font-weight: bold;}\ .yodLegend .tablex > div {display: inline-table; margin-right:5px}\ .yodShow {display: block !important;}\ .yodHide {display: none !important;position:absolute !important; left:-1000px !important; top:-1000px; !important}\ .fShow {border-top:solid 1px #CCC !important;}\ .fHide {}\ #yodSpace{padding: 10px 20px 20px;text-align: center}\ #yodSpace > div:not(:first-child) {margin-top:10px}\ #yodSpace .btn, #yodSpace checkbox, #yodSpace legend, #yodSpace label, #yodSpace li {cursor:pointer}\ #yodSpace .btn {padding:2px 5px!important}\ #yodRTCopyLeft{font-size:11px; text-align: center;border-top: 1px solid #CCC;}\ #yodRTOption > div {display: inline-table; margin-right:5px}\ #yodRT {margin-left: 5px;width:50px!important;padding:0 3px!important}\ span.geo-text{width:auto!important;}\ .yodSpace_ireply{padding: 5px 0 10px;}\ .yodSpace_ireply_wrapper{text-align: center;}\ .yodSpace_ireply_wrapper > a {display:inline-table;margin: 0 2px;}\ .forme {background-color: rgba(255,255,0,.3);}\ .debug {border:10px solid red!important;}\ div[id^=yod_tw_id] {color:red!important;font-size: 11px!important;background-color: black!important;display: inline!important;padding: 1px 3px!important;}\ #yodAdvTopEl {color:#66757F;width: 10px; margin: 10px; cursor: pointer; float:left!important;}\ #yodAdvTopEl > div {height: 13px;}\ .btn.yod-rt {float:left!important;}\ .tx_muted {margin-top: 10px;width: 100%;}\ .tx_muted textarea {width: 100%;resize:vertical;}\ .yodActions {}\ .yodActions_grid {float: left; margin-right: 31px;}\ .tweet-actions a, .tweet-actions button {margin-left: 5px!important}\ .tweet-inverted .yodActions .sm-more {background-position: -280px -250px!important;}\ #yodSoundVol{width: 50px; margin-left: 5px;}\ .yodmute_w {padding-left: 20px!important;}\ '; function createSound(play) { if (!(sound = elExists('#yodnotify'))) { var a_src = 'data:audio/ogg;base64,\ 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\ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAA\ ABDgAAAQYCEUGrIiAIgTAHBIEiQJkgTNA0iWBU2DpsE0AZJlQdOgaTBNAAAAAAAAAAAAACRN\ g6ZB0yCKAEnToGnQNIgiAAAAAAAAAAAAAJKmQdOgaRBFgKRp0DRoGkQRAAAAAAAAAAAAAM80\ IYoQRZgmwDNNiCJEEaYJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAABhwAAAIMKEMFBqyIgCI\ EwBwOIplAQCA4ziWBQAAjuNYFgAAWJYligAAYFmaKAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAGHAAAAgwoQwU\ GrISAIgCAHAoimUBx7Es4DiWBSTJsgCWBdA8gKYBRBEACAAAKHAAAAiwQVNicYBCQ1YCAFEA\ AAbFsSxNE0WSpGmaJ4okSdM8TxRpmud5nmnC8zzPNCGKomiaEEVRNE2YpmmqKjBNVRUAAFDg\ AAAQYIOmxOIAhYasBABCAgAcimJZmuZ5nieKpqmaJEnTPE8URdE0TVNVSZKmeZ4oiqJpmqaq\ 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\ uD2DR7PhfhGW2hASnixtSABgpwA=\ '; sound = TWRT.$('<audio/>', {type:'audio/ogg; codecs=vorbis', src: a_src, id: 'yodnotify', class: 'yodHide', controls: false, loop: false, autoplay: false}); TWRT.$('body').append(sound); setSoundVol(); } switch (play) { case 'play': play = doyodGetBoolOpt('yodSound'); break; case 'force': play = 1; break; default: play = 0; } if (sound && play) sound.get(0).play(); } function fixSoundVol(vol) { var volx; vol = parseInt(yodfixInt(vol)); if (vol > 9) { vol = 10; volx = 1; } else { //volx = vol.toString().trim().replace(/^(\d){0,1}/g, "0,$1"); volx = '0.' + vol; } var a = {v: vol, x: volx}; return a; } function setSoundVol(vol) { if (!vol) vol = TWRT.setting['yodSoundVol']; var a = fixSoundVol(vol); saveSetting('yodSoundVol', a.v); if (sound = elExists('#yodnotify')) sound.get(0).volume = a.x; } function getSoundVol() { var sound, volx; var a = fixSoundVol(TWRT.setting['yodSoundVol']); saveSetting('yodSoundVol', a.v); return a; } function getValue(key, TW) { var val = localStorage.getItem(key); if (TW) val = JSON.parse(val); return val; } function setValue(key, val, TW) { if (TW) val = JSON.stringify(val); localStorage.setItem(key, val); return false; } function readSetting(s) { var str = getValue('yod_' + TWRT.setting['yodScreenName'] + '_twitsett'); if (str = IsJsonString(str)) { TWRT.setting = str; if (!s) { for (var a in TWRT.setting_def) { if (!TWRT.setting.hasOwnProperty(a)) TWRT.setting[a] = TWRT.setting_def[a]; } } } else { TWRT.setting_def['yodScreenName'] = TWRT.setting['yodScreenName']; TWRT.setting = TWRT.setting_def; } if (!s) saveSetting(); else if (TWRT.setting.hasOwnProperty(s)) return TWRT.setting[s]; } function saveSetting(k, v) { if (k) TWRT.setting[k] = v; setValue('yod_' + TWRT.setting['yodScreenName'] + '_twitsett', JSON.stringify(TWRT.setting)); } function doyodGetBoolOpt(key, def) { readSetting(); var val = parseInt(yodfixInt(TWRT.setting[key])); if (def) { val = parseInt(yodfixInt(TWRT.setting_def[key])); saveSetting(key, val); } return val; } function doyodGetNumOpt(key, def) { readSetting(); var val = yodfixInt(TWRT.setting[key]); if (def) { val = yodfixInt(TWRT.setting_def[key]); saveSetting(key, val); } return val; } function o_debug(str) { if (TWRT.debug) console.log(str.toString() || ''); } function yodfixInt(str) { if (!str) return 0; if (typeof str !== 'string') str = str.toString(); str = str.replace(/[^0-9]/gmi, ''); return str ? str : 0; } function IsJsonString(str) { try { str = JSON.parse(str); if (typeof str === 'object') return str; } catch (e) {} return false; } function yodUnique(Array) { return (typeof Array !== 'object') ? [] : TWRT.$.unique(removeEmptyArrayElements(Array)); } function removeEmptyArrayElements(arr) { return arr.filter(function(elem){return elem !== null && elem !== ''}); } function yodInArray(id, strArray) { if (typeof strArray !== 'string') strArray = yodUnique(strArray).join(','); var pattcontent = new RegExp(',?\s?(.*' + id + '+)\s?,?'); return strArray.match(pattcontent); } function elExists(s, el) { var e = el ? el.find(s) : TWRT.$(s); return e.length ? e : 0; } function goParent(s, el) { var e = el.parents(s); if (e.length) return e; } function toClick(el) { var clickEvent = document.createEvent('MouseEvents'); clickEvent.initEvent('click', true, true); el.get(0).dispatchEvent(clickEvent); } function doKeyTouch(key) { var k, keys = key.toString().split(' '); for (var a in keys) { if (k = keys[a]) { var e = TWRT.$.Event('keydown', { keyCode: k }); TWRT.$('body').trigger(e); } } } function deEntity(str, raw) { var el; if (el = elExists('#yodEVALdump')) { el.html(str); str = raw ? el.html() : el.val(); el.empty(); } return str; } function br2nl(s) { return s.replace(/<br\s?\/?>/gi, "\r\n"); } function re_BR(s) { s = deEntity(ytrim(s), true); if (TWRT.setting['yodKeepBR']) s = s.replace(/(\r\n|\r|\n)/gmi, "<br />"); return s; } function ytrim(s, keepBR) { var str = ''; if (!(str = deEntity(s.toString(), true))) return str; str = str.replace(/( +)/gm, ' '); if (!keepBR) { str = str.replace(/[\r\n]/gm, ' ').trim() .split(/\s*\n\s*/) .join(' '); } return str.replace(/[ ]{2,}/gm, ' ').trim(); } function compareDate(e) { var data_item_id = 0, key = 'yodLastData'; try {data_item_id = yodfixInt(e.attr('data-item-id')) || 0;} catch (e) { return data_item_id; } var val = doyodGetNumOpt(key); if (data_item_id > val) { saveSetting(key, data_item_id); } return data_item_id; } function yodGetTweetBox() { return elExists('#tweet-box-global'); } function yod_isHome() { return elExists('div[class*=mini-profile]'); } function yod_isProfile(elx) { return elExists('div[class*=user-actions]', elx); } function yod_gallery() { TWRT.$(this).find('[class*=media-thumbnail]').not('.yodDone').each(function() { var el = TWRT.$(this); //el.show(); el.addClass('yodDone'); if (src = el.attr('data-url')) { if (yodInArray(encodeURIComponent(src), TWRT.yodImg_arr)) { el.hide(); //el.addClass('debug'); } else { TWRT.yodImg_arr.push(encodeURIComponent(src)); } } }); } function delContent(el, par) { if (par) { el.addClass('yodLinkParsed'); el = el.parent(); } el.slideUp('slow', function() { //TWRT.$(this).remove(); //TWRT.$(this).addclass('yodHide'); }); } function fixGeo() { if (doyodGetBoolOpt('yodGeo')) { TWRT.$('.yodGeo.parsed').removeClass('yodHide'); TWRT.$('.yodnoGeo').addClass('yodHide'); } else { TWRT.$('.yodnoGeo').removeClass('yodHide'); TWRT.$('.yodGeo.parsed').addClass('yodHide'); } } function getFB(el) { var str = 'javascript:void(0);'; if (str = el.find('a.js-permalink').attr('href')) { var fb_url = ytrim('http://twitter.com' + str || ''); var fb_desc = ytrim(el.find('.js-tweet-text').eq(0).text() || ''); var fb_ava = ytrim(el.find('.js-action-profile-avatar').eq(0).attr('src') || '').replace(/_normal/gmi, ''); str = 'http://m.facebook.com/dialog/feed?app_id=2231777543&redirect_uri=https%3A%2F%2Fwww.facebook.com&to&display=touch' + '&caption=' + encodeURIComponent(fb_url) + '&description=' + encodeURIComponent(fb_desc) + '&link=' + encodeURIComponent(fb_url) + '&picture=' + encodeURIComponent(fb_ava); } return str; } function getRTby(entry) { var a = {}; if (entry.attr('data-retweet-id')) { if (el = elExists('.js-retweet-text > a', entry)) { if (a.id = el.attr('data-user-id')) { if (str = el.attr('href')) { a.uname = str.replace(/\//g, ''); return a; } } } } } function yod_render(newtweet) { var is_Home, is_Profile, mutesx; if (newtweet) { is_Home = yod_isHome(); is_Profile = yod_isProfile(); mutesx = doyodGetBoolOpt('yodMute') ? readMuteLists('yodMuteLists') : ''; } TWRT.$('.js-stream-tweet, .permalink-tweet').not('.yodDone').each(function() { var data_item_id, parEntry, entry = TWRT.$(this); if (goParent('[class*=proxy]', entry)) return true; if (!(parEntry = entry.parent())) return true; // add parsed class entry.addClass('yodDone'); var owntweet = entry.hasClass('my-tweet'); var el, el2, str, str2, data_type = parEntry.attr('data-item-type') || ''; mutesy = doyodGetBoolOpt('yodMute2') ? TWRT.mutesString : ''; if (!owntweet && newtweet && mutesy/* && is_Home*/ && data_type.match(/tweet/i)) { txt = entry.find('.js-tweet-text').eq(0).text(); if (txt) { pattmutesy = new RegExp('\s?' + mutesy + '\s?', 'gmi'); if (txt.match(pattmutesy)) { delContent(entry, 1); } } } translate_link(entry); if (!entry.hasClass('yodLinkParsed')) { entry.addClass('yodLinkParsed'); if (data_item_id = yodfixInt(entry.attr('data-item-id'))) { //el = entry.find('.tweet-actions > li').first(); el = entry.find('.js-actions > li').first(); var yodActions_class = 'yodActions'; if (TWRT.GRID) { yodActions_class += ' yodActions_grid'; } TWRT.$('<li/>', {class: 'yodActFB' + yodActions_class}) .append( TWRT.$('<a/>', {id: 'FB_' + data_item_id, title: 'Share to facebook', role: 'button', class: 'with-icn', html: '<i class="sm-more"></i> <b>[FB]</b>', href: getFB(entry), target: '_blank'}) ).insertBefore(el); TWRT.$('<li/>', {class: 'yodActRT' + yodActions_class}) .append( TWRT.$('<a/>', {id: 'RT_' + data_item_id, title: 'Trad RT', role: 'button', class: 'with-icn', html: '<i class="sm-more"></i> <b>[RT]</b>', href: '#'}) ).insertBefore(el); TWRT.$('<li/>', {class: 'yodActStalking' + yodActions_class}) .append( TWRT.$('<a/>', {id: 'STALKING_' + data_item_id, title: 'Stalking', role: 'button', class: 'with-icn', html: '<i class="sm-more"></i> <b>[S]</b>', href: '#'}) ).insertBefore(el); TWRT.$(document).on('click', 'a#FB_' + data_item_id, function() { TWRT.UW.open(this.href); return false; }); TWRT.$(document).on('click', 'a#RT_' + data_item_id, function() { yod_toRT(TWRT.$(this)); return false; }); TWRT.$(document).on('click', 'a#STALKING_' + data_item_id, function() { yod_toStalk(TWRT.$(this)); return false; }); } if (el = entry.find('i.sm-geo').not('.parsed')) { if (el = goParent('.stream-item-footer', el)) { if (el = el.find('b > .expand-stream-item')) { el.addClass('yodGeo parsed'); el2 = TWRT.$('<span/>', {class: 'expand-action-wrapper yodnoGeo yodHide', html: 'Expand'}); el2.insertAfter(el); } } } if (newtweet) { if (!is_Profile && data_type) { var data_item_id, data_mentions = entry.attr('data-mentions') || ''; if (!(data_item_id = compareDate(entry))) return true; var pattcontent = new RegExp('\s?' + TWRT.setting['yodScreenName'] + '\s?', 'gmi'); if (data_mentions.match(pattcontent)) { var valLastMention = doyodGetNumOpt('yodLastMention'); if (valLastMention < data_item_id) { TWRT.$('.forme').removeClass('forme'); saveSetting('yodLastMention', data_item_id); if (!owntweet) { createSound('play'); if (!data_type.match(/activity/i)) { if (doyodGetBoolOpt('yodMarkMention')) entry.addClass('forme'); } } } } } } } }); fixGeo(); } function translate_link(e) { if (!(e = TWRT.$(e.currentTarget || e))) return; if (!(e = elExists('[class*=js-tweet-text]', e))) return; e = e.eq(0); var el; if (el = elExists('#yodRTdump')) { el.html(e.html()); var mod = 0; el.contents().filter(function() { return this.nodeType === 3; }).each(function() { var de = deEntity(this.textContent); if (de !== this.textContent) { this.textContent = deEntity(this.textContent); mod++; } }); var decoded = deEntity(unescape(e.text().trim())); // collect links el.find('a[data-expanded-url]').each(function() { var link = TWRT.$(this); var a1 = link.attr('data-ultimate-url') || ''; var a2 = link.attr('data-expanded-url') || ''; if (longURL = a1 || a2) { link.html(longURL).attr({href: longURL}); mod++; } if (!doyodGetBoolOpt('yodGeo')) { if (link.attr('href').match(/myloc/i)) { link.remove(); mod++; } } }); //var decoded2 = deEntity(unescape(el.text().trim())); var decoded2 = unescape(el.text().trim()); // is_entity / expanded links if (mod || (decoded !== decoded2)) { //e.html(deEntity(el.html())); e.html(el.html()); } } el.empty(); } function yodShowTweetBox(s, c, RT) { doKeyTouch('27'); var nt, txa, content = TWRT.setting['yodRT'] + ' @' + s + ': ' + c; if (RT) content = TWRT.setting['yodRT'] + ' @' + RT + ': ' + content; if (nt = elExists('#global-new-tweet-button')) { if (doyodGetBoolOpt("yodAuto140")) content = toyodRTFit140(content);/* setValue('__draft_tweets__:global', content, 1);*/ toClick(nt); if (txa = elExists('#global-tweet-dialog .tweet-box:visible, #tweet_dialog .twitter-anywhere-tweet-box-editor:visible')) txa.html(content).focus().change(); } } function yod_toRT(e) { var entry, screen_name, RT, parent; if (parent = elExists(TWRT.$(e).parents('.yodDone'))) { e = parent.parent(); } if (!(entry = elExists('div.js-stream-tweet', e) || elExists('div.twttr-dialog-content', e) )) return; if (!(screen_name = entry.attr('data-screen-name'))) return; if (RT = getRTby(entry)) RT = RT.uname; if (!(entry = elExists('[class*=js-tweet-text]', entry))) return; entry = entry.eq(0).text(); entry = stripUser(entry, false, TWRT.setting['yodKeepBR']); yodShowTweetBox(screen_name, re_BR(entry), RT); } function yod_toStalk(e) { var entry, screen_name, RT; e = TWRT.$(e).parents('.yodDone').parent(); if (!(entry = elExists('div.js-stream-tweet', e) || elExists('div.twttr-dialog-content', e) )) return; if (!(screen_name = entry.attr('data-screen-name'))) return; document.location.href = "https://twitter.com/search?q=\"" + screen_name + "\"%20%40" + screen_name + "&f=realtime"; } function yod_rtDiag(e/*, e2*/) { var txt, target, elx = TWRT.$(/*e2 || */e.currentTarget); if (elExists('.yod-rt', elx)) return false; if (target = elExists('button.cancel-action, div.js-prompt-cancel', elx)) { return target.clone() .html('RT') .attr('class', 'btn yod-rt') .click(function(){ yod_toRT(elx); }) .appendTo(target.parent()); } else { yod_goDiag(e); } } function cleanMuteLists(str) { return ytrim(ytrim(str).replace(/(\s,|,\s)/gm, ',').replace(/[,]{2,}/gm, ',')).replace(/^,/gm, '').replace(/,$/gm, '').trim(); } function readMuteLists(target_str, a, save) { var str = cleanMuteLists(readSetting(target_str).toString()) || ''; var arr = yodUnique(str.split(',')); if (save) saveSetting(target_str, arr.join(',')); return a ? arr : str; } function prettyMuteLists(target_str, str, el) { if (!(str = cleanMuteLists(str))) str = ''; str = str.replace(/,/gm, ', '); if (!el) if (el = elExists('#' + target_str)) el.val(str); return str; } function checkMute(id, u, e, check) { target_str = 'yodMuteLists'; var mutesx = readMuteLists(target_str, 1); var el, x, b = mutesx; for (var i in mutesx) { var s = mutesx[i]; if (!s.match(/[0-9]{8,}/)) b.splice(mutesx.indexOf(s.trim()), 1); } var s1 = 'M'; var s2 = 'Mute this user'; if (x = yodInArray(id, b.join(','))) { if (check) { s1 = 'U' + s1; s2 = 'UN-' + s2; } else { b.splice(b.indexOf(x[0]), 1); } } else { if (!check) { s1 = 'U' + s1; s2 = 'UN-' + s2; b.push(u); } } var str = doyodGetBoolOpt('yodMute') ? '' : '(disabled)'; //TWRT.$(e).html(str + '<strong>' + s1 + '</strong>').attr('title', s2 + str); if (table = elExists(TWRT.$(e).parents('table'))) { e = table; s1 = '<strong>' + s1 + '</strong>'; } TWRT.$(e).find('.yodmutelabel').html(str); TWRT.$(e).find('.yodmutevalue').html(s1); TWRT.$(e).attr('title', s2 + str); if (!check) { b = yodUnique(b); mutesx = b.join(','); saveSetting(target_str, mutesx); prettyMuteLists(target_str, mutesx); doCSS_dyn(); } } function yod_BodyBG() { TWRT.$('body[class*=user-style-]').addClass('yodBodyBG'); } function embedMute(elx) { var el, s, tw_id, u, popup = elx, id = 'yodMuteButtPop'; if (!elx) { elx = TWRT.$('body'); id = 'yodMuteButt'; } /* ____ _ _ / __ \| | | | | | | | |__| | | | | | __ | | |__| | | | | \____/|_| |_| ______ _______ _______ _______ _______ ______ ( ___ \ ( ___ )( ___ )( ___ )( ___ )( __ \ | ( ) )| ( ) || ( ) || ( ) || ( ) || ( \ ) | (__/ / | (___) || (___) || (___) || (___) || | ) | | __ ( | ___ || ___ || ___ || ___ || | | | | ( \ \ | ( ) || ( ) || ( ) || ( ) || | ) | | )___) )| ) ( || ) ( || ) ( || ) ( || (__/ ) |/ \___/ |/ \||/ \||/ \||/ \|(______/ _______ _______ ______ _________ _ _______ ( ____ \( ___ )( __ \ \__ __/( ( /|( ____ \ | ( \/| ( ) || ( \ ) ) ( | \ ( || ( \/ | | | | | || | ) | | | | \ | || | | | | | | || | | | | | | (\ \) || | ____ | | | | | || | ) | | | | | \ || | \_ ) | (____/\| (___) || (__/ )___) (___| ) \ || (___) | (_______/(_______)(______/ \_______/|/ )_)(_______) */ TWRT.GRID = elExists('.GridTimeline') ? true : false; if (s = yod_isProfile(elx)) { //if (el = elExists('[class*=js-mini-profile-stats]', elx)) { var profile_grid_el = elExists('[class*=ProfileNav]', el), profile_grid = !popup && profile_grid_el; //if (el = elExists((!popup && TWRT.GRID) ? '[class*=ProfileNav-list]' : '[class*=js-mini-profile-stats]', elx)) { if (el = elExists('[class*=js-mini-profile-stats]', elx) || profile_grid_el) { //if (elExists('[id=' + id + ']', el)) return; if (elExists('[class*=yodmute]', el)) return; if (tw_id = s.attr('data-user-id')) { u = tw_id + ' (' + s.attr('data-screen-name') + ')'; var e_mute_w, e_mute; if (profile_grid) { e_mute_w = TWRT.$('<li/>', {'class': 'ProfileNav-item', id: id}); e_mute = TWRT.$('<a/>', { 'class': 'yodmute ProfileNav-stat u-textCenter js-tooltip', href: 'javascript:void(0);', html: '<span class="ProfileNav-label yodmutelabel"></span><span class="ProfileNav-value yodmutevalue"></span>' }).appendTo(e_mute_w); e_mute_w.insertAfter(el.find('.ProfileNav-item--favorites')); } else { e_mute = TWRT.$('<a/>', { 'class': 'yodmute js-nav yodmutevalue', id: id, href: 'javascript:void(0);' }); el.find('th').parent().append(TWRT.$('<th/>', {'class': 'yodmutelabel yodmute_w'})); e_mute_w = TWRT.$('<td/>', {'class': 'yodmute_w'}); e_mute_w.append(e_mute); el.find('td').parent().append(e_mute_w); } checkMute(tw_id, u, e_mute, 1); e_mute.click(function(){ checkMute(tw_id, u, this); return false; }); if (TWRT.debug && (!elExists('#yod_tw_id' + tw_id))) { TWRT.$('<div/>', {id: 'yod_tw_id' + tw_id,html: tw_id}).insertBefore(s.find('.fullname')); } } } } } function yod_profile_popupDiag(e) { if (e = e.currentTarget) { embedMute(TWRT.$(e)); } } function toCB(id, t, l) { var cb = TWRT.$('<input/>', {id: id, name: id, type: 'checkbox'}) .click(function() { saveSetting(TWRT.$(this).attr('id'), this.checked ? 1 : 0); switch(id) { case 'yodMute': var el; if (el = elExists('#yodMuteLists')) { if (TWRT.$(this).is(':checked')) el.removeAttr('disabled'); else el.attr('disabled', 'disabled'); } case 'yodMute2': var el; if (el = elExists('#yodMuteListsString')) { if (TWRT.$(this).is(':checked')) el.removeAttr('disabled'); else el.attr('disabled', 'disabled'); } case 'yodGeo': fixGeo(); case 'yodGIFAva': case 'yodActRT': case 'yodActFB': case 'yodActStalking': case 'yodPromoted': case 'yodBodyBG': doCSS_dyn(); break; } }); if (doyodGetBoolOpt(id)) cb.attr('checked', 'checked'); return TWRT.$('<div/>') .append( TWRT.$('<label/>', {title: t, for: id, html: l, class: 'checkbox'}) .append(cb) ); } function buildEmoTable() { var em, el = TWRT.$('<ul/>'); for (var a in TWRT.symbols) { var arr = TWRT.symbols[a]; for (var i in arr) { if (em = arr[i].trim()) { TWRT.$('<li/>', {text: em}) .click(function() { yodInsSmiley(TWRT.$(this).text()); return false; }).appendTo(el); } } } return el; } function yodInsSmiley(text) { var target; if (text) { if (!(target = yodGetTweetBox())) return; text = ' ' + deEntity(unescape(text)) + ' '; target.focus(); document.execCommand('insertText', false, text); target.focus().change(); } } function yodSoundVol(e) { var v_vol; if (e) { setSoundVol(TWRT.$(e.target).val()); createSound('force'); } else { v_vol = getSoundVol(); var el, i, v_opt, str, id = 'yodSoundVol'; for (i = 0; i <= 10; i++) { str = ''; if (i === v_vol.v) str = 'selected=selected'; v_opt += '<option ' + str + '>' + i + '</option>'; } return TWRT.$('<div/>') .append(TWRT.$('<label/>', {title: 'Set Notif Sound Volume', for: id, html: 'Vol'}) .append(TWRT.$('<select/>', {id: id, html: v_opt}).change(yodSoundVol)) ); } } function yod_goDiag(e, re) { var el, e2, elx, target, txa, rep, placed/*, isreply*/; elx = TWRT.$(re || e.currentTarget); if (elx[0].tagName) { if (!(txa = elExists('textarea[class*=tweet-box-shadow]', elx))) return false; if (!(target = elExists('div[class*=tweet-content]', elx))) return false; if (placed = elExists('#yodRTOption')) { rep = elExists('div[class*=simple-tweet]', elx); if (el = elExists('#yodRTCopyReply')) el.addClass('yodHide'); if (TWRT.$(rep).html()) { if (!el) { // Inject Copy Reply button var div2 = TWRT.$('<div/>', {id: 'yodRTCopyReply'}); var a = TWRT.$('<a/>', {class: 'btn', html: 'Copy Reply', href: 'javascript:void(0);', title: 'Copy current text reply'}) .click(function() { if (!(source = elExists('[data-tweet-id]', elx))) return; toReply('global', source); return false; }).appendTo(div2); placed.append(div2); } else el.removeClass('yodHide'); } return false; } // Inject Our Space to Target var div = TWRT.$('<div/>', {id: 'yodSpace'}); var div2 = TWRT.$('<div/>', {id: 'yodRTOption'}); // Fit 140 - Cut Text to 140 char length var div3 = TWRT.$('<div/>'); var a = TWRT.$('<a/>', {id: 'yodRTFit140', class: 'btn', html: 'Fit 140', href: 'javascript:void(0);', title: 'Fit 140 chars'}) .click(function() { doyodRTFit140('global'); return false; }).appendTo(div3); div2.append(div3); // Clear TweetBox div3 = TWRT.$('<div/>'); a = TWRT.$('<a/>', {id: 'yodRTClear', class: 'btn', html: 'x', href: 'javascript:void(0);', title: 'Clear TweetBox'}) .click(function() { doyodRTClean('global', true); return false; }).appendTo(div3); div2.append(div3); // Clean - freeup space div3 = TWRT.$('<div/>'); a = TWRT.$('<a/>', {id: 'yodRTClean', class: 'btn', html: 'Clean', href: 'javascript:void(0);', title: 'Free Up Space'}) .click(function() { doyodRTClean('global'); return false; }).appendTo(div3); div2.append(div3); // Clean - my username div3 = TWRT.$('<div/>'); a = TWRT.$('<a/>', {id: 'yodCleanMine', class: 'btn', html: 'Clean @', href: 'javascript:void(0);', title: 'Clean my username'}) .click(function() { doyodMineClean('global'); return false; }).appendTo(div3); div2.append(div3); // Clean - Hashtags div3 = TWRT.$('<div/>'); a = TWRT.$('<a/>', {id: 'yodHashtagsClean', class: 'btn', html: 'Clean #', href: 'javascript:void(0);', title: 'Clean Hashtags'}) .click(function() { doyodHashtagsClean('global'); return false; }).appendTo(div3); div2.append(div3); div.append(div2); // Emoticons Table var state = doyodGetBoolOpt('yodEmote'); var v_valEmote = state ? 'Show' : 'Hide'; div.append( TWRT.$('<div/>', {id: 'yodEmote', class: 'yodLegend'}) .append( TWRT.$('<fieldset/>', {class: 'f' + v_valEmote}) .append(TWRT.$('<legend/>', {class: 'f' + v_valEmote, align: 'center', title: 'Toggle Show-Hide', html: '[ Emoticons ]'})) .append( TWRT.$('<div/>', {id: 'yodEmoteTableWrapper', class: 'tablex yod' + v_valEmote}) .append(buildEmoTable()) ) ) ); // OPTION Table state = doyodGetBoolOpt('yodOption'); var v_valOption = state ? 'Show' : 'Hide'; var v_valRT = readSetting('yodRT'); mute_target = 'yodMuteLists'; var v_valMuted = prettyMuteLists(mute_target, readMuteLists(mute_target)); mute_target2 = 'yodMuteListsString'; var v_valMuted2 = prettyMuteLists(mute_target2, readMuteLists(mute_target2)); div.append( TWRT.$('<div/>', {id: 'yodOption', class: 'yodLegend'}) .append( TWRT.$('<fieldset/>', {class: 'f' + v_valOption}) .append(TWRT.$('<legend/>', {class: 'f' + v_valEmote, align: 'center', title: 'Toggle Show-Hide', html: '[ OPTIONS ]'})) .append( TWRT.$('<div/>', {class: 'tablex yod' + v_valOption}) .append( TWRT.$('<div/>', {id: 'yodRTTxt'}) .append( TWRT.$('<label/>', {title: 'Opt RT Text', html: 'RT', for: 'yodRT'}) .append(TWRT.$('<input/>', {id: 'yodRT', name: 'yodRT', type: 'text'}).val(v_valRT)) ) ) .append(yodSoundVol()) .append(toCB('yodAuto140', 'Auto cut 140 char', '140')) .append(toCB('yodAdvTop', 'Top Nav Scroller', 'TopNav')) .append(toCB('yodSound', 'Play Sound on new mention', 'Sound')) .append(toCB('yodMarkMention', 'Colorize on new mention', 'Mark @')) .append(toCB('yodMute', 'Mute user noise', 'Mute User')) .append(toCB('yodMute2', 'Mute String noise', 'Mute String')) .append(toCB('yodExpand', 'Auto expand new tweets', 'Expand')) .append(toCB('yodGIFAva', 'GIF Anim Ava', 'GIF-A')) .append(toCB('yodGeo', 'Geo loc', 'Geo')) .append(toCB('yodRTReply', 'Copy Reply with RT prefix', 'Copy RT')) .append(toCB('yodActRT', 'Inline RT Button', 'Act RT')) .append(toCB('yodActFB', 'Inline FB Button', 'Act FB')) .append(toCB('yodActStalking', 'Inline Stalking Button', 'Act Stalking')) .append(toCB('yodPromoted', 'Twitter Promoted', 'Promoted')) .append(toCB('yodKeepBR', 'Keep extra linebreak (new empty line space)', 'Keep Linebreak')) .append(toCB('yodBodyBG', 'Keep User custom Background Profile', 'BG Profile')) .append( TWRT.$('<div/>', {class: 'tx_muted'}) .append(TWRT.$('<textarea/>', {id: 'yodMuteLists', rows: 4, title: 'Muted lists (ID comma-separated, goto target [popup] profile)'}).val(v_valMuted)) ) .append( TWRT.$('<div/>', {class: 'tx_muted'}) .append(TWRT.$('<textarea/>', {id: 'yodMuteListsString', rows: 4, title: 'Muted String lists (comma-separated)'}).val(v_valMuted2)) ) ) ) ); // Copyleft var str = '\ Done by <a href="http://blog.thrsh.net" target="_blank" title="Dev Blog">Cecek Pawon 2010</a> \ (<a href="http://twitter.com/cecekpawon" title="Dev Twitter">@cecekpawon</a>) \ w/ <a href="http://userscripts.org/' + yodUpdate['script_id'] + '" target="_blank" title="Script Page">\ Traditional ReTweet (v' + yodUpdate['script_version'] + ')</a>'; div.append( TWRT.$('<div/>', {id: 'yodRTCopyLeft'}) .append(TWRT.$('<span/>', {class: 'copyleft', html: str})) ); div.insertAfter(target); var tx, Opts = ['MuteLists','MuteListsString','RT']; for (var a in Opts) { if (tx = elExists('#yod' + Opts[a])) { var evts = ['change','paste']; tx.on(evts.join (' '), function(e) { saveSetting(TWRT.$(this).attr('id'), TWRT.$(this).val()); if (Opts[a].match(/MuteListsString/i)) TWRT.mutesString = readMuteLists('yodMuteListsString', 1, 1).join('|'); doCSS_dyn(); }); } } // yodAdvTop Events if (yodAdvTop = elExists('#yodAdvTop')) { yodAdvTop.click(function() { if (elyodAdvTop = elExists('#yodAdvTopEl')) { saveSetting('yodAdvTop', this.checked ? 1 : 0); updateScroll(); } }); } if (el = elExists('#yodMuteLists')) { if (doyodGetBoolOpt('yodMute')) el.removeAttr('disabled'); else el.attr('disabled', 'disabled'); } if (el = elExists('#yodMuteListsString')) { if (doyodGetBoolOpt('yodMute2')) el.removeAttr('disabled'); else el.attr('disabled', 'disabled'); } var Opts = ['Emote','Option']; for (var a in Opts) { if (lgnd = elExists('#yod' + Opts[a])) { var elgnd = elExists('legend', lgnd); elgnd.click(function() { var lgnd = TWRT.$(this); var el = lgnd.next(); var state = el.is(':visible') ? 0 : 1; var sClass = state ? 'Show' : 'Hide'; el.removeClass('yodShow yodHide').addClass('yod' + sClass); el.parent().removeClass().addClass('f' + sClass); saveSetting(lgnd.parents('.yodLegend').attr('id'), state); }); } } } } function toyodRTFit140(txt) { txt = ytrim(txt, TWRT.setting['yodKeepBR']); if (txt.length > 140) { txt = txt.substr(0, 138) + '..'; } return txt; } function fixDiv(el) { s = ""; el.find("div").each(function(){ s += "<br>" + TWRT.$(this).text(); }); return br2nl(s || el.text()); } function doyodRTFit140(target, txt) { if (!(target = findReply(target))) return; txt = toyodRTFit140(txt || fixDiv(target)); if (txt) { target.focus().html(re_BR(txt)).change(); } } function doyodRTClean(target, wipe) { if (!(target = findReply(target))) return; var txt = wipe ? '' : ytrim(fixDiv(target), TWRT.setting['yodKeepBR']); target.focus().html(re_BR(txt)).change(); } function doyodMineClean(target) { if (!(target = findReply(target))) return; var txt = ytrim(fixDiv(target), TWRT.setting['yodKeepBR']); target.focus().html(re_BR(stripUser(txt, true, TWRT.setting['yodKeepBR']))).change(); } function doyodHashtagsClean(target) { if (!(target = findReply(target))) return; var txt = ytrim(fixDiv(target), TWRT.setting['yodKeepBR']); txt = txt.replace(/(#[a-z]{1,}[a-z0-9_]+)/ig, ""); target.html(re_BR(txt)); target.focus().html(re_BR(txt)).change(); } function stripUser(str, wipe, keepBR) { var pattcontent = new RegExp('@?' + TWRT.setting['yodScreenName'], 'gmi'); var s = wipe ? '' : TWRT.setting['yodScreenName']; return ytrim(str.replace(pattcontent, s), keepBR); } function expMentions(str) { var x, y = '', a = stripUser(str, true).split(' '); for (var i in a) { if (x = a[i]) y += ' @' + x.trim(); } return y.trim(); } function findReply(target) { if ((TWRT.$.type(target) === 'string') && target.match(/global/i)) return yodGetTweetBox(); if (target = goParent('.yodSpace_ireply', TWRT.$(target))) return elExists('[data-target]', target.parent()); } function toReply(el, permaSource) { var actor, source, target, RT, txt = ''; if (!(target = findReply(el))) return; if (permaSource) { source = permaSource; } else { var id = target.attr('data-target') || ''; if (!(id = id.replace(/[^0-9]/g, ''))) return; if (!(source = elExists('[data-tweet-id=' + id + ']'))) return; } if (RT = getRTby(source) || '') RT = (doyodGetBoolOpt('yodRTReply') ? ' ' + TWRT.setting['yodRT'] : '') + ' @' + RT.uname + ': '; if (!(actor = source.attr('data-screen-name'))) return; if (!(source = elExists('[class*=js-tweet-text]', source))) return; source = source.eq(0); txt = RT + (doyodGetBoolOpt('yodRTReply') ? ' ' + TWRT.setting['yodRT'] : '') + ' @' + actor; txt += stripUser(': ' + source.text(), false, TWRT.setting['yodKeepBR']); if (doyodGetBoolOpt('yodAuto140')) txt = toyodRTFit140(txt); else { txt = re_BR(txt); } target.focus().html(txt).change(); } function watchReply(e) { var el, txa, target, target_box; if (!(el = TWRT.$(e.currentTarget || e))) return; el = el.parent(); if (elExists('div.yodSpace_ireply_wrapper', el)) return; if (!(txa = elExists('[id^=tweet-box-reply]', el))) return; if (!(target = goParent('[class^=inline-reply]', txa))) return; if (!(target_box = elExists('.tweet-box', target))) return; var y, permalink = false; if (y = goParent('[class^=permalink]', target)) permalink = true; else if (!(y = goParent('[class^=expan]', target))) return; var p = y.clone(); if (!elExists('[class*=js-tweet-text]', p)) return; var d_id = txa.attr('id'); target_box.attr('data-target', d_id); var div = TWRT.$('<div/>', {class: 'yodSpace_ireply'}); var div2 = TWRT.$('<div/>', {class: 'yodSpace_ireply_wrapper'}); var b_attr = {class: 'btn', href: 'javascript:void(0);'}; // Fit 140 - Cut Text to 140 char length var a = TWRT.$('<a/>', b_attr) .attr('title', 'Fit 140 chars') .html('Fit 140') .on('mousedown', function(e) { if (!e.button) doyodRTFit140(this); return false; }).appendTo(div2); // Clean - freeup space a = TWRT.$('<a/>', b_attr) .attr('title', 'Free Up Space') .html('Clean') .on('mousedown', function(e) { if (!e.button) doyodRTClean(this); return false; }).appendTo(div2); // Clean my username a = TWRT.$('<a/>', b_attr) .attr('title', 'Clean my username') .html('Clean @') .on('mousedown', function(e) { if (!e.button) doyodMineClean(this); return false; }).appendTo(div2); // Clean Hashtags a = TWRT.$('<a/>', b_attr) .attr('title', 'Clean Hashtags') .html('Clean #') .on('mousedown', function(e) { if (!e.button) doyodHashtagsClean(this); return false; }).appendTo(div2); // Copy Reply a = TWRT.$('<a/>', b_attr) .attr('title', 'Copy current text reply') .html('Copy Reply') .on('mousedown', function(e) { if (!e.button) toReply(this); return false; }).appendTo(div2); target.append(div.append(div2)); } function yodInlineReply(e) { if (e.className.match(/permalink/i)) { if (e = goParent('.permalink-tweet-container', TWRT.$(e))) { watchReply(e); } } else e.addEventListener('DOMNodeInserted', function(e){watchReply(e);} , true); } function expandNewTweet() { if (!doyodGetBoolOpt('yodExpand')) return; var el; if (el = elExists('div.new-tweets-bar')) toClick(el); } function checkDM(dm) { if (count = yodfixInt(dm.html())) { var m_last = yodfixInt(readSetting('yodLastInDMsg')) || 0; saveSetting('yodLastInDMsg', count); if (count > m_last) { createSound('play'); } } } function initDM() { if (dm = elExists('.dm-new')) { dm.bind('DOMSubtreeModified', function(){checkDM(dm)}); } } function initDump() { TWRT.$('#yoddump').remove(); TWRT.$('<div/>', {id: 'yoddump', class: 'yodHide'}) .append(TWRT.$('<div/>', {id: 'yodRTdump'})) .append(TWRT.$('<textarea/>', {id: 'yodEVALdump'})) .appendTo('body'); } function updateScroll() { TWRT.$('#yodAdvTopEl > div').removeClass().addClass(doyodGetBoolOpt('yodAdvTop') ? 'yodShow' : 'yodHide'); } function attachScroll(div, title, xchar, xtop) { TWRT.$('<div/>', {text: xchar, title: 'Scroll page to ' + title}) .click(function(){ TWRT.$('html, body').animate({scrollTop: xtop ? 0 : TWRT.$('body')[0].scrollHeight}); return false; }).appendTo(div); } function doAdvTop() { var logo; if (logo = elExists('#global-actions')) { var el = TWRT.$('<div/>', {id: 'yodAdvTopEl'}); attachScroll(el, 'Top', '\u25B2', true); attachScroll(el, 'Bottom', '\u25BC'); el.insertAfter(logo); updateScroll(); return el; } } function doCSS() { if (elExists('#yod_RT_CSS')) return; TWRT.$('<style/>', {id: 'yod_RT_CSS', text: TWRT.css}).appendTo('head'); TWRT.$('<style/>', {id: 'yod_RT_CSS_dyn'}).appendTo('head'); } function doCSS_dyn() { TWRT.$('#yod_RT_CSS_dyn').empty(); var str = '', s_css = []; var mutesx = readMuteLists('yodMuteLists', 1, 1); TWRT.mutesString = readMuteLists('yodMuteListsString', 1, 1).join('|'); if (doyodGetBoolOpt('yodMute')) { for (var i in mutesx) { if (!(s = mutesx[i])) continue; if (s = s.toString().match(/[0-9]{8,}/)) var streamblocks = ['home'/*, 'connect'*/, 'discover', 'search']; for (var i in streamblocks) s_css.push ('.' + streamblocks[i] + '-stream li div.tweet[data-user-id="' + s[0] + '"]'); } if (s_css.length) str += '\r\n' + s_css.join(',') + '{display:none!important;}\r\n' } if (!doyodGetBoolOpt('yodGIFAva')) { str += '.avatar[src*=".gif"]{display:none!important}'; } if (!doyodGetBoolOpt('yodGeo')) { str += '.tweet-geo-text,i.sm-geo{display:none!important}'; } if (!doyodGetBoolOpt('yodActRT')) { str += '.yodActRT{display:none!important}'; } if (!doyodGetBoolOpt('yodActFB')) { str += '.yodActFB{display:none!important}'; } if (!doyodGetBoolOpt('yodActStalking')) { str += '.yodActStalking{display:none!important}'; } if (!doyodGetBoolOpt('yodPromoted')) { str += '.promoted-tweet, .promoted-trend, .promoted-account{display:none!important}'; } if (!doyodGetBoolOpt('yodBodyBG')) { str += '.yodBodyBG{background-image:none!important}'; } TWRT.$('#yod_RT_CSS_dyn').html(str); yod_BodyBG(); } function restart() { TWRT.yodImg_arr = []; doCSS_dyn(); readSetting(); initDump(); initDM(); embedMute(); yod_render(1); } function starter() { doCSS(); doAdvTop(); restart(); } function doStuff() { usoUpdate(); var el; // Go if User Logged if (elExists('[class*=global-new-tweet]')) { if (!(el = elExists('div > div.js-mini-current-user'))) return; if (!(TWRT.setting['yodScreenName'] = el.attr('data-screen-name'))) return; starter(); TWRT.$('div[id*=tweet-dialog]').bind('DOMNodeInserted', yod_rtDiag); TWRT.$('div[id*=profile_popup]').bind('DOMNodeInserted', yod_profile_popupDiag); //TWRT.$('div[class*=gallery-container]').bind('DOMNodeInserted', yod_render); TWRT.$('div[class*=media-grid]').bind('DOMNodeInserted', yod_gallery); document.addEventListener('DOMNodeInserted', function (event) { try { var cname, elmt = event.target; if (!(/(DIV|LI)/.test(elmt.tagName))) return; if (cname = elmt.className) { if ( (/dashboard/.test(cname)) ) { restart(); } else if ( (/(stream-item|content|Grid)/.test(cname)) ) { expandNewTweet(); yod_render(1); } else if ( (/(original|permalink|stream-container)/.test(cname)) ) { doCSS_dyn(); yodInlineReply(elmt); yod_render(); } else if ( (/go-to-profile/.test(cname)) ) { yod_render(); } else { } } else { if (/LI/.test(elmt.tagName) && elExists('.simple-tweet', TWRT.$(elmt))) { yod_render(); } } } catch (e) {} }, false); } } function doExec() { try { if (window.chrome && (unsafeWindow == window)) { TWRT.UW = (function() { var el = document.createElement('a'); el.setAttribute('onclick', 'return window;'); return el.onclick(); }()); } else if (typeof unsafeWindow !== 'undefined') { TWRT.UW = unsafeWindow; } if (typeof TWRT.UW.jQuery === 'undefined') { setTimeout(doExec, 200); } else { TWRT.$ = TWRT.UW.jQuery; doStuff(); } } catch (e) {} } document.addEventListener("DOMContentLoaded", doExec, true); })();