Skip to content

Commit da1852a

Browse files
committed
Merge branch 'hf-735'
* hf-735: Added logic to ensure the element exists before adding an event listener Added logic to do the badge stuff if they click the home button too to scroll to the top Added CryptoInfluencers image Added line break and cryptoinflu icon Added more logic to performance update the twitter badges Increased version number Added logic so the watcher on the dom doesn't run if they are tweeting Added logic for performance update on twitter badge logic
2 parents cf23ab8 + 8365b58 commit da1852a

File tree

4 files changed

+86
-42
lines changed

4 files changed

+86
-42
lines changed

images/cryptoinfluencers.png

1.87 KB
Loading

js/TwitterFakeAccount.js

Lines changed: 79 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ class TwitterFakeAccount
9898
var objNodes = document.getElementsByClassName("ext-etheraddresslookup-tweet-" + objData.tweet_id);
9999
for (var intCounter = 0; intCounter < objNodes.length; intCounter++) {
100100
var objNode = objNodes[intCounter];
101+
101102
if (objNode.getAttribute("ext-etheraddresslookup-twitterflagged")) {
102103
return;
103104
}
@@ -188,65 +189,100 @@ var observeDOM = (function(){
188189
// Observe a specific DOM element:
189190
var objTwitterFakeAccount = new TwitterFakeAccount();
190191
var objWorker = new Worker(chrome.runtime.getURL('/js/workers/TwitterFakeAccount.js'));
191-
var arrCheckedUsers = [];
192+
193+
let objCachedBadges = {
194+
"whitelist": [],
195+
"blacklist": [],
196+
"neutral": []
197+
};
198+
199+
let arrWhitelistedAccountIds = [];
200+
let arrBlacklistedAccountIds = [];
201+
let arrNeutralAccountIds = [];
192202
var intTweetCounter = 0;
193203

194204
chrome.runtime.sendMessage({func: "twitter_validation"}, function(objResponse) {
195205
if(objResponse.resp == 1) {
196-
observeDOM( document.getElementsByTagName('body')[0] ,function(){
197-
if (document.getElementsByClassName("tweet")) {
198-
var arrTweets = objTwitterFakeAccount.getTweets();
199206

200-
intTweetCounter = arrTweets.length;
207+
// If they click on the Home button which draws them to the top of the page
208+
if(document.getElementById("global-nav-home")) {
209+
document.getElementById("global-nav-home").addEventListener("click", doTwitterBadges.bind(objCachedBadges));
210+
}
211+
// If anything on the DOM changes
212+
observeDOM( document.getElementsByTagName('body')[0], doTwitterBadges.bind(objCachedBadges));
201213

202-
var arrTweetData = [];
203-
for(var intCounter=0; intCounter<arrTweets.length; intCounter++) {
214+
function doTwitterBadges(){
215+
if(document.activeElement.classList.contains("tweet-box") === false) {
216+
if (document.getElementsByClassName("tweet")) {
217+
var arrTweets = objTwitterFakeAccount.getTweets();
204218

205-
var arrTmpTweetData = {
206-
"userId": arrTweets[intCounter].getAttribute("data-user-id"),
207-
"name": arrTweets[intCounter].getAttribute("data-screen-name"),
208-
"tweet_id": arrTweets[intCounter].getAttribute("data-tweet-id"),
209-
"twitter_verified": objTwitterFakeAccount.isTwitterVerified(arrTweets[intCounter])
210-
};
219+
intTweetCounter = arrTweets.length;
220+
221+
var arrTweetData = [];
222+
for(var intCounter=0; intCounter<arrTweets.length; intCounter++) {
223+
224+
if(arrTweets[intCounter].classList.contains("ext-etheraddresslookup-tweet-"+arrTweets[intCounter].getAttribute("data-tweet-id")) === false) {
225+
226+
arrTweets[intCounter].classList.add("ext-etheraddresslookup-tweet-" + arrTweets[intCounter].getAttribute("data-tweet-id"));
227+
228+
let blContactBackground = true;
229+
230+
let arrTmpTweetData = {
231+
"userId": arrTweets[intCounter].getAttribute("data-user-id"),
232+
"name": arrTweets[intCounter].getAttribute("data-screen-name"),
233+
"tweet_id": arrTweets[intCounter].getAttribute("data-tweet-id"),
234+
"twitter_verified": objTwitterFakeAccount.isTwitterVerified(arrTweets[intCounter])
235+
};
236+
237+
//See if we've already checked the userid (whitelist)
238+
if(this.whitelist.indexOf(arrTmpTweetData.userId) > -1) {
239+
blContactBackground = false;
240+
objTwitterFakeAccount.doWhitelistAlert(arrTmpTweetData);
241+
}
211242

212-
//See if we've already checked the userid
213-
if(arrCheckedUsers.indexOf(arrTmpTweetData.userId) !== -1) {
214-
if(arrCheckedUsers[arrTmpTweetData.userId].is_imposter === false) {
215-
continue;
216-
} else {
217-
objTweetData.similar_to = arrCheckedUsers[arrTmpTweetData.userId].similar_to;
218-
objTwitterFakeAccount.doWarningAlert(objTweetData);
219-
continue;
243+
//See if we've already checked the userid (blacklist)
244+
if(this.blacklist.indexOf(arrTmpTweetData.userId) > -1) {
245+
blContactBackground = false;
246+
objTwitterFakeAccount.doBlacklistAlert(arrTmpTweetData);
247+
}
248+
249+
//See if we've already checked the userid (neutral)
250+
if(this.neutral.indexOf(arrTmpTweetData.userId) > -1) {
251+
blContactBackground = false;
252+
objTwitterFakeAccount.doNeutralAlert(arrTmpTweetData);
253+
}
254+
255+
if(blContactBackground) {
256+
arrTweetData.push(arrTmpTweetData);
257+
}
220258
}
221259
}
222260

223-
if("ext-etheraddresslookup-tweet-"+arrTweets[intCounter].getAttribute("data-tweet-id") in arrTweets[intCounter] === false) {
224-
arrTweets[intCounter].className += " ext-etheraddresslookup-tweet-" + arrTweets[intCounter].getAttribute("data-tweet-id");
225-
}
226-
arrTweetData.push(arrTmpTweetData);
227-
}
261+
var objDataToInspect = {
262+
"whitelist": {},
263+
"blacklist": {},
264+
"tweet_data": arrTweetData
265+
};
228266

229-
var objDataToInspect = {
230-
"whitelist": {},
231-
"blacklist": {},
232-
"tweet_data": arrTweetData
233-
};
234-
chrome.runtime.sendMessage({func: "twitter_lists"}, function(objResponse) {
267+
if(arrTweetData.length) {
268+
chrome.runtime.sendMessage({func: "twitter_lists"}, function(objResponse) {
235269

236-
let twitterlists = JSON.parse(objResponse.resp);
270+
let twitterlists = JSON.parse(objResponse.resp);
237271

238-
this.whitelist = twitterlists.whitelist;
239-
this.blacklist =twitterlists.blacklist;
272+
this.whitelist = twitterlists.whitelist;
273+
this.blacklist =twitterlists.blacklist;
240274

241-
objWorker.postMessage(JSON.stringify(this));
242-
}.bind(objDataToInspect));
275+
objWorker.postMessage(JSON.stringify(this));
276+
}.bind(objDataToInspect));
277+
}
278+
}
243279
}
244-
});
280+
};
245281
}
246282
});
247283

248-
objWorker.onmessage = function (event) {
249-
arrCheckedUsers[event.data.userId] = event.data;
284+
objWorker.onmessage = function (event)
285+
{
250286
var arrData = JSON.parse(event.data);
251287

252288
for(var intCounter=0; intCounter<arrData.length; intCounter++) {
@@ -258,15 +294,18 @@ objWorker.onmessage = function (event) {
258294
}
259295

260296
if(arrData[intCounter].is_whitelisted) {
297+
objCachedBadges["whitelist"].push(arrData[intCounter].userId);
261298
objTwitterFakeAccount.doWhitelistAlert(arrData[intCounter]);
262299
continue;
263300
}
264301

265302
if(arrData[intCounter].is_blacklisted) {
303+
objCachedBadges["blacklist"].push(arrData[intCounter].userId);
266304
objTwitterFakeAccount.doBlacklistAlert(arrData[intCounter]);
267305
continue;
268306
}
269307

308+
objCachedBadges["neutral"].push(arrData[intCounter].userId);
270309
objTwitterFakeAccount.doNeutralAlert(arrData[intCounter]);
271310
}
272311
};

manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"name": "EtherAddressLookup",
55
"short_name": "EtherAddressLookup",
66
"description": "Adds links to strings that look like Ethereum addresses to your favorite blockchain explorer.",
7-
"version": "1.18.1",
7+
"version": "1.18.2",
88

99
"browser_action": {
1010
"default_icon": "images/icon.png",

options.html

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,11 @@ <h4 class="text-center">EtherAddressLookup</h4>
5050
<label class="fancy-checkbox">
5151
<input type="checkbox" name="ext-etheraddresslookup-twitter_validation" id="ext-etheraddresslookup-twitter_validation">
5252
<span>Twitter Badges</span> <sup>[<a href="https://github.com/409H/EtherAddressLookup/wiki/Twitter-Badges" target="_blank">?</a>]</sup>
53+
54+
<a href="https://cryptoinfluencers.io/" target="_blank">
55+
<img title="CryptoInfluencers has provided a lot of the Twitter accounts that are 'verified'" src="/images/cryptoinfluencers.png" style="height:15px;width:110px;vertical-align:middle;"/>
56+
</a>
57+
5358
</label>
5459

5560
<label class="fancy-checkbox">
@@ -150,7 +155,7 @@ <h4 class="text-center">EtherAddressLookup</h4>
150155
<div class="ext-etheraddresslookup-center">
151156
<a href="/settings.html" target="_blank">More Settings</a> &mdash;
152157
<a href="http://eal-phishing-stats.herokuapp.com/" target="_blank">Scam domains</a> &mdash;
153-
<a href="https://github.com/409H/EtherAddressLookup" target="_blank">GitHub</a>
158+
<a href="https://github.com/409H/EtherAddressLookup" target="_blank">GitHub</a> <br />
154159
<a href="https://harrydenley.com/ethaddresslookup-chrome-extension-release/" target="_blank">Read Author Blog</a> &mdash;
155160
<a href="https://twitter.com/EthAddrLookup" target="_blank">@EthAddrLookup</a>
156161
</div>

0 commit comments

Comments
 (0)