Last active
August 6, 2017 05:54
-
-
Save Nielk1/12f3f6478d799e856684695d6a91bb56 to your computer and use it in GitHub Desktop.
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 characters
// ==UserScript== | |
// @name Twitter Verified Detector | |
// @namespace http://nielk1.com/ | |
// @version 0.1 | |
// @description Find twitter verified accounts and log them to the console as errors (as twitter kills console.log()) | |
// @author Nielk1 | |
// @match https://twitter.com/* | |
// @exclude https://twitter.com/i/* | |
// @grant unsafeWindow | |
// @grant GM_setValue | |
// @grant GM_getValue | |
// @grant GM_deleteValue | |
// ==/UserScript== | |
(function() { | |
'use strict'; | |
// wipe memory | |
//GM_deleteValue('__twitter_verified_scraper.user.js__TwitterVerifiedSent'); return; | |
function startup() { | |
jQuery(document).ready(function() { | |
function ProcVerifiedOnPage() { | |
var wasVerified = GM_getValue('__twitter_verified_scraper.user.js__TwitterVerifiedSent'); | |
if(typeof wasVerified === 'string') { | |
wasVerified = wasVerified.split(','); | |
}else{ | |
wasVerified = []; | |
} | |
var VerifiedCandidates = jQuery.unique(jQuery.merge(jQuery.map(jQuery('span.FullNameGroup').filter(':has(span.UserBadges > span.Icon.Icon--verified)').parents('.tweet'), function (attr) {return jQuery(attr).data('user-id').toString();}) || [], | |
jQuery.merge(jQuery.map(jQuery('div.ProfileNameTruncated').filter(':has(span.UserBadges > span.Icon.Icon--verified)').parents('.ProfileCard'),function(attr){return jQuery(attr).data('user-id').toString();}) || [], | |
jQuery.merge(jQuery.map(jQuery('a.account-group').filter(':has(span.UserBadges > span.Icon.Icon--verified)').parents('.account'), function (attr) {return jQuery(attr).data('user-id').toString();}) || [], | |
jQuery.map(jQuery('span.account-group-inner').filter(':has(span.UserBadges > span.Icon.Icon--verified)').parents('.UserSmallListItem'), function (attr) {return jQuery(attr).data('user-id').toString();}) || [])))); | |
VerifiedCandidates = VerifiedCandidates.filter(function( el ) { | |
return !wasVerified.includes( el ); | |
}); | |
if (VerifiedCandidates.length > 0) { | |
//console.log('new verified candidates: ' + VerifiedCandidates.join(',')); | |
//var ajaxSubmitWorked = true; // dummied | |
//if(ajaxSubmitWorked) { | |
wasVerified = wasVerified.concat(VerifiedCandidates); | |
GM_setValue('__twitter_verified_scraper.user.js__TwitterVerifiedSent', wasVerified.join(',')); | |
//} | |
} | |
setTimeout(function(){ProcVerifiedOnPage();}, 1000); | |
} | |
jQuery( | |
'<div id="PossibleVerifiedAccountModal-dialog" class="modal-container" style="z-index: 8002; display: hidden;">'+ | |
' <div class="modal draggable" id="PossibleVerifiedAccountModal-dialog-dialog" role="alertdialog" aria-labelledby="PossibleVerifiedAccountModal-dialog-header" aria-describedby="PossibleVerifiedAccountModal-dialog-body" style="top: 20%; left: 254px;"><div class="js-first-tabstop" tabindex="0"></div>'+ | |
' <div class="modal-content" role="document">'+ | |
' <div class="modal-header">'+ | |
' <h3 class="modal-title" id="PossibleVerifiedAccountModal-dialog-header">Possible Verified Accounts</h3>'+ | |
' <button type="button" class="modal-btn modal-close" aria-controls="PossibleVerifiedAccountModal-dialog-dialog" aria-describedby="PossibleVerifiedAccountModal-dialog-body">'+ | |
' <span class="Icon Icon--close Icon--medium">'+ | |
' <span class="visuallyhidden">Close</span>'+ | |
' </span>'+ | |
' </button>'+ | |
' </div>'+ | |
' <div id="PossibleVerifiedAccountModal-dialog-body" class="modal-body" id="keyboard-shortcut-dialog-body" style="word-wrap:break-word;"></div>'+ | |
' </div>'+ | |
' </div>'+ | |
' <div class="js-last-tabstop" tabindex="0"></div>'+ | |
'</div>').appendTo(document.body); | |
jQuery('#PossibleVerifiedAccountModal-dialog').find('.modal-close').on('click', function() { jQuery('#PossibleVerifiedAccountModal-dialog').hide(); }); | |
jQuery(document).on('click', '#CustomVerifiedAccountList', function() { | |
var elem = jQuery('#PossibleVerifiedAccountModal-dialog-body'); | |
elem.empty().append(GM_getValue('__twitter_verified_scraper.user.js__TwitterVerifiedSent')); | |
jQuery('#PossibleVerifiedAccountModal-dialog').show(); | |
}); | |
jQuery('<li class="dropdown-divider" role="presentation"></li>'+ | |
'<li role="presentation">'+ | |
' <button type="button" id="CustomVerifiedAccountList" class="dropdown-link" role="menuitem">Possible Verified</button>'+ | |
'</li>').insertAfter('li.DashUserDropdown-userInfo'); | |
ProcVerifiedOnPage(); | |
}); | |
} | |
var check = function() { | |
console.log("waiting for dependancies to load: jQuery"); | |
if(typeof jQuery == 'undefined') { | |
//console.log("missed jQuery"); | |
setTimeout(check, 500); | |
} else { | |
//console.log("found jQuery"); | |
jQuery = unsafeWindow.jQuery; | |
startup(); | |
} | |
}; | |
check(); | |
})(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment