(function () { // ==UserScript== // @name Traditional Twitter RT + Instagram Card // @namespace http://blog.thrsh.net // @author cecekpawon (THRSH) // @description Old School RT Functionality for New Twitter, Allows retweeting with Comments // @version 5.4.5 // @require http://code.jquery.com/jquery-latest.js // @grant none // @match https://twitter.com/* // @run-at document-start // @downloadURL none // ==/UserScript== var TWRT = {}; TWRT.$ = null; TWRT.debug = 0; // GLOBAL Variable TWRT.setting_def = { yodOption: 0, yodRT: "RT", yodAdvTop: 1, yodGeo: 1, yodAuto140: 0, yodExpand: 0, yodMute: 1, yodMuteLists: '', yodMuteListsString: '', yodScreenName: '', yodGIFAva: 1, yodGeo: 1, yodRTReply: 1, yodActRT: 1, yodActFB: 1, yodActStalking: 1, yodPromoted: 1, yodKeepBR: 1, yodBodyBG: 1, yodPhotoHeight: 0, yodInstagram: 0 }; TWRT.setting = {}; 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 .checkbox {padding: 5px;}\ #yodSpace .radio input[type=radio], #yodSpace .checkbox input[type=checkbox] {margin-left: 0;}\ #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;width:100%!important;}\ .tweet-inverted .yodActions .sm-more {background-position: -280px -250px!important;}\ .yodmute_w {padding-left: 20px!important;}\ .more-tweet-actions .yodInlineButton a {text-align: left!important;margin-left:0!important;}\ .tweet-actions .yodInlineButton:first-child a {margin-left:0!important}\ .tweet-actions .yodInlineButton.yodInlineButton_last a {margin-right:10px!important}\ .yodInsta img {margin: 10px 0 0!important; border-radius:5px!important;width:100%!important;height:auto!important;}\ #yodRTCopyReply a:not(:first-child) {margin-left:5px;}\ '; 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 || ''); } 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 = el.length ? el.get(0) : el; el.dispatchEvent(clickEvent); return false; } 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(//gi, "\r\n"); } function re_BR(s) { s = deEntity(ytrim(s, TWRT.setting['yodKeepBR']), true); if (TWRT.setting['yodKeepBR']) { s = s.replace(/(\r\n|\r|\n)/gmi, "
"); } 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 || ''), fb_desc = ytrim(el.find('.js-tweet-text').eq(0).text() || ''), 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') && (el = elExists('.js-retweet-text > a', entry)) && (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) || (!(parEntry = entry.parent())) ) return true; // add parsed class entry.addClass('yodDone'); var el, el2, str, str2, owntweet = entry.hasClass('my-tweet'), 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('.js-actions .dropdown li').first(); var yodActions_class = 'yodActions'; TWRT.$('
  • ', {class: 'yodInlineButton yodActFB' + yodActions_class}) .append( TWRT.$('', {id: 'FB_' + data_item_id, title: 'Share to facebook', role: 'button', html: 'FB Share', href: getFB(entry), target: '_blank'}) ).insertBefore(el); TWRT.$('
  • ', {class: 'yodInlineButton yodActRT' + yodActions_class}) .append( TWRT.$('', {id: 'RT_' + data_item_id, title: 'Trad RT', role: 'button', html: 'Trad RT', href: '#'}) ).insertBefore(el); TWRT.$('
  • ', {class: 'yodInlineButton yodActRT' + yodActions_class}) .append( TWRT.$('', {id: 'RT_URL_' + data_item_id, title: 'RT with URL', role: 'button', html: 'RT URL', href: '#'}) ).insertBefore(el); TWRT.$('
  • ', {class: 'yodInlineButton yodInlineButton_last yodActStalking' + yodActions_class}) .append( TWRT.$('', {id: 'STALKING_' + data_item_id, title: 'Stalking', role: 'button', html: 'Stalking', href: '#'}) ).insertBefore(el); TWRT.$(document).on('click', 'a#FB_' + data_item_id, function() { window.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#RT_URL_' + data_item_id, function() { yod_toRT(TWRT.$(this), true); 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'); TWRT.$('', {class: 'expand-action-wrapper yodnoGeo yodHide', html: 'Expand'}).insertAfter(el); } } } if (newtweet) { // todo } } }); fixGeo(); } function translate_emoji(e) { e.find("img.twitter-emoji").each(function(){ TWRT.$(this).replaceWith(" " + TWRT.$(this).attr("alt") + " "); }); } 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, e2; 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), a1 = link.attr('data-ultimate-url') || '', 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()); // ISTANA-GERAAMMM if (doyodGetBoolOpt('yodInstagram')) { parse_instagram(e); } // is_entity / expanded links if (mod || (decoded !== decoded2)) { //e.html(deEntity(el.html())); e.html(el.html()); } } el.empty(); } function parse_instagram(e) { var insta_a = e.text().trim().match(/https?:\/\/(instagr\.am|instagram\.com)\/p\/([^\/\s]+)/ig); for (var insta_i in insta_a) { var insta_u = insta_a[insta_i]; o_debug(insta_u); insta_u = "https://api.instagram.com/oembed?url=" + insta_u; TWRT.$.ajax({ url: insta_u, dataType: "jsonp", success: function (data) { o_debug(data); var insta_t, insta_tmp; if (insta_t = data.thumbnail_url) { insta_t = insta_t.replace(/https?/i, 'https'); insta_tmp = new RegExp(/(photos\-.*instagram\.com\/+)/i); if (insta_t.match(insta_tmp)) { insta_t = insta_t .replace(insta_tmp, 'scontent-b.cdninstagram.com') .replace(/\-ak\-/i, '-'); } e.append( TWRT.$('
    ', {class: 'yodInsta parsed'}) .append(TWRT.$('', {src: insta_t})) ); } }, error: function () { o_debug("Eekk.. Error retrieving instagram url :((("); } }); } } 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); 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, cpURL) { var entry, screen_name, RT, parent; entry = TWRT.$(e).find('.yodDone'); if (!entry.length) { entry = TWRT.$(e).parents('.yodDone'); } if (!entry.length) return; if (!(screen_name = entry.attr('data-screen-name'))) return; if (RT = getRTby(entry)) RT = RT.uname; var mentions = entry.attr('data-mentions'), permalink = 'https://twitter.com' + entry.attr('data-permalink-path'); if (!(entry = elExists('[class*=js-tweet-text]', entry))) return; if (cpURL) { entry = ''; if (mentions) { mentions = mentions.split(/\s/); for (var i in mentions) { entry += ' @' + mentions[i]; } } entry = permalink + entry; } else { entry2 = entry.clone(); translate_emoji(entry2); entry = entry2.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; entry = TWRT.$(e).parents('.yodDone'); if (!(screen_name = entry.attr('data-screen-name'))) return; document.location.href = "https://twitter.com/search?q=\"" + screen_name + "\"%20%40" + screen_name + "&vertical=default&f=tweets"; } function yod_rtDiag(e) { var txt, target, elx = TWRT.$(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(){ if (elx.length) { yod_toRT(elx.addClass('yodDone').parent()); } }) .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()) || '', 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) { var target_str = 'yodMuteLists', mutesx = readMuteLists(target_str, 1), 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)'; if (table = elExists(TWRT.$(e).parents('table'))) { e = table; s1 = '' + s1 + ''; } 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'; } if (s = yod_isProfile(elx)) { var profile_grid_el = elExists('[class*=ProfileNav]', el), profile_grid = !popup && profile_grid_el; if (el = elExists('[class*=js-mini-profile-stats]', elx) || profile_grid_el) { 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.$('
  • ', {'class': 'ProfileNav-item', id: id}); e_mute = TWRT.$('', { 'class': 'yodmute ProfileNav-stat u-textCenter js-tooltip', href: 'javascript:void(0);', html: '' }).appendTo(e_mute_w); e_mute_w.insertAfter(el.find('.ProfileNav-item--favorites')); } else { e_mute = TWRT.$('', { 'class': 'yodmute js-nav yodmutevalue', id: id, href: 'javascript:void(0);' }); el.find('th').parent().append(TWRT.$('', {'class': 'yodmutelabel yodmute_w'})); e_mute_w = TWRT.$('', {'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.$('
    ', {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 yod_reload() { window.location.reload(true); } function toCB(id, t, l) { var cb = TWRT.$('', {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': case 'yodPhotoHeight': doCSS_dyn(); break; } }); if (doyodGetBoolOpt(id)) cb.attr('checked', 'checked'); return TWRT.$('
    ') .append( TWRT.$('
    ', {id: 'yodRTCopyReply'}); // Copy reply var a = TWRT.$('', {class: 'btn', html: '[c] 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); // Copy reply URL a = TWRT.$('', {class: 'btn', html: '[c] URL', href: 'javascript:void(0);', title: 'Copy current URL'}) .click(function() { if (!(source = elExists('[data-tweet-id]', elx))) return; toReply('global', source, true); return false; }).appendTo(div2); placed.append(div2); } else el.removeClass('yodHide'); } return false; } // Inject Our Space to Target var div = TWRT.$('
    ', {id: 'yodSpace'}), div2 = TWRT.$('
    ', {id: 'yodRTOption'}); // Fit 140 - Cut Text to 140 char length var div3 = TWRT.$('
    '), a = TWRT.$('', {id: 'yodRTFit140', class: 'btn', html: '140', href: 'javascript:void(0);', title: 'Fit 140 chars'}) .click(function() { doyodRTFit140('global'); return false; }).appendTo(div3); div2.append(div3); // Clean - Freeup space div3 = TWRT.$('
    '); a = TWRT.$('', {id: 'yodRTClean', class: 'btn', html: '[x]', href: 'javascript:void(0);', title: 'Free Up Space'}) .click(function() { doyodRTClean('global'); return false; }).appendTo(div3); div2.append(div3); // Clean - Our username div3 = TWRT.$('
    '); a = TWRT.$('', {id: 'yodCleanMine', class: 'btn', html: '[x] @', href: 'javascript:void(0);', title: 'Clean my username'}) .click(function() { doyodMineClean('global'); return false; }).appendTo(div3); div2.append(div3); // Clean - Hashtags div3 = TWRT.$('
    '); a = TWRT.$('', {id: 'yodHashtagsClean', class: 'btn', html: '[x] #', href: 'javascript:void(0);', title: 'Clean Hashtags'}) .click(function() { doyodHashtagsClean('global'); return false; }).appendTo(div3); div2.append(div3); div.append(div2); // OPTION Table var state = doyodGetBoolOpt('yodOption'), v_valOption = state ? 'Show' : 'Hide', v_valRT = readSetting('yodRT'), mute_target = 'yodMuteLists', v_valMuted = prettyMuteLists(mute_target, readMuteLists(mute_target)), mute_target2 = 'yodMuteListsString', v_valMuted2 = prettyMuteLists(mute_target2, readMuteLists(mute_target2)); div.append( TWRT.$('
    ', {id: 'yodOption', class: 'yodLegend'}) .append( TWRT.$('
    ', {class: 'f' + v_valOption}) .append(TWRT.$('', {class: 'f' + v_valOption, align: 'center', title: 'Toggle Show-Hide', html: '[ OPTIONS ]'})) .append( TWRT.$('
    ', {class: 'tablex yod' + v_valOption}) .append( TWRT.$('
    ', {id: 'yodRTTxt'}) .append( TWRT.$('