Always use lowercase identifiers
This commit is contained in:
parent
2e76146ed8
commit
b8711a3126
@ -1,13 +1,119 @@
|
|||||||
var browser = browser || chrome;
|
var browser = browser || chrome;
|
||||||
|
|
||||||
|
var PENDING_SUBMISSIONS = ':PENDING_SUBMISSIONS'
|
||||||
|
var MIGRATION = ':MIGRATION'
|
||||||
|
|
||||||
|
var badIdentifiersArray = [
|
||||||
|
'archive.is',
|
||||||
|
'archive.org',
|
||||||
|
'assets.tumblr.com',
|
||||||
|
'bit.ly',
|
||||||
|
'blogspot.com',
|
||||||
|
'facebook.com/a',
|
||||||
|
'facebook.com/ad_campaign',
|
||||||
|
'facebook.com/ads',
|
||||||
|
'facebook.com/ajax',
|
||||||
|
'facebook.com/bookmarks',
|
||||||
|
'facebook.com/buddylist.php',
|
||||||
|
'facebook.com/bugnub',
|
||||||
|
'facebook.com/comment',
|
||||||
|
'facebook.com/composer',
|
||||||
|
'facebook.com/events',
|
||||||
|
'facebook.com/findfriends',
|
||||||
|
'facebook.com/friends',
|
||||||
|
'facebook.com/fundraisers',
|
||||||
|
'facebook.com/games',
|
||||||
|
'facebook.com/groups',
|
||||||
|
'facebook.com/help',
|
||||||
|
'facebook.com/home.php',
|
||||||
|
'facebook.com/intl',
|
||||||
|
'facebook.com/jobs',
|
||||||
|
'facebook.com/l.php',
|
||||||
|
'facebook.com/language.php',
|
||||||
|
'facebook.com/legal',
|
||||||
|
'facebook.com/like.php',
|
||||||
|
'facebook.com/local_surface',
|
||||||
|
'facebook.com/logout.php',
|
||||||
|
'facebook.com/mbasic',
|
||||||
|
'facebook.com/menu',
|
||||||
|
'facebook.com/messages',
|
||||||
|
'facebook.com/nfx',
|
||||||
|
'facebook.com/notes',
|
||||||
|
'facebook.com/notifications.php',
|
||||||
|
'facebook.com/notifications',
|
||||||
|
'facebook.com/nt',
|
||||||
|
'facebook.com/page',
|
||||||
|
'facebook.com/pages',
|
||||||
|
'facebook.com/people',
|
||||||
|
'facebook.com/permalink.php',
|
||||||
|
'facebook.com/pg',
|
||||||
|
'facebook.com/photo.php',
|
||||||
|
'facebook.com/policies',
|
||||||
|
'facebook.com/privacy',
|
||||||
|
'facebook.com/profile.php',
|
||||||
|
'facebook.com/rapid_report',
|
||||||
|
'facebook.com/reactions',
|
||||||
|
'facebook.com/salegroups',
|
||||||
|
'facebook.com/search',
|
||||||
|
'facebook.com/settings',
|
||||||
|
'facebook.com/shares',
|
||||||
|
'facebook.com/story.php',
|
||||||
|
'facebook.com/ufi',
|
||||||
|
'media.tumblr.com',
|
||||||
|
'medium.com',
|
||||||
|
'reddit.com',
|
||||||
|
'reddit.com/r/all',
|
||||||
|
'reddit.com/r/popular',
|
||||||
|
'removeddit.com',
|
||||||
|
't.co',
|
||||||
|
't.umblr.com',
|
||||||
|
'tumblr.com',
|
||||||
|
'twitter.com',
|
||||||
|
'twitter.com/hashtag',
|
||||||
|
'twitter.com/i',
|
||||||
|
'twitter.com/search',
|
||||||
|
'twitter.com/settings',
|
||||||
|
'twitter.com/threadreaderapp',
|
||||||
|
'twitter.com/who_to_follow',
|
||||||
|
'wordpress.com',
|
||||||
|
'www.tumblr.com',
|
||||||
|
'youtu.be',
|
||||||
|
'youtube.com',
|
||||||
|
'youtube.com/redirect',
|
||||||
|
'youtube.com/watch',
|
||||||
|
];
|
||||||
|
var badIdentifiers = {};
|
||||||
|
badIdentifiersArray.forEach(x => badIdentifiers[x] = true);
|
||||||
|
|
||||||
|
|
||||||
var overrides = null;
|
var overrides = null;
|
||||||
|
|
||||||
var accepted = false;
|
var accepted = false;
|
||||||
var installationId = null;
|
var installationId = null;
|
||||||
|
|
||||||
browser.storage.local.get(['overrides', 'accepted', 'installationId'], v => {
|
browser.storage.local.get(['overrides', 'accepted', 'installationId'], v => {
|
||||||
accepted = v.accepted
|
accepted = v.accepted
|
||||||
overrides = v.overrides || {}
|
overrides = v.overrides || {}
|
||||||
|
|
||||||
|
var migration = overrides[MIGRATION] || 0;
|
||||||
|
var CURRENT_VERSION = 2;
|
||||||
|
if(migration < CURRENT_VERSION){
|
||||||
|
|
||||||
|
for(var key of Object.getOwnPropertyNames(overrides)){
|
||||||
|
if(key.startsWith(':')) continue;
|
||||||
|
if(key != key.toLowerCase()){
|
||||||
|
var v = overrides[key];
|
||||||
|
delete overrides[key];
|
||||||
|
overrides[key.toLowerCase()] = v;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
badIdentifiersArray.forEach(x => delete overrides[x]);
|
||||||
|
|
||||||
|
overrides[MIGRATION] = CURRENT_VERSION;
|
||||||
|
browser.storage.local.set({ overrides: overrides });
|
||||||
|
}
|
||||||
|
|
||||||
if (!v.installationId) {
|
if (!v.installationId) {
|
||||||
installationId = (Math.random() + '.' + Math.random() + '.' + Math.random()).replace(/\./g, '');
|
installationId = (Math.random() + '.' + Math.random() + '.' + Math.random()).replace(/\./g, '');
|
||||||
browser.storage.local.set({ installationId: installationId });
|
browser.storage.local.set({ installationId: installationId });
|
||||||
@ -121,8 +227,6 @@ function submitPendingRatings() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
var PENDING_SUBMISSIONS = ':PENDING_SUBMISSIONS'
|
|
||||||
|
|
||||||
function saveLabel(response) {
|
function saveLabel(response) {
|
||||||
if (accepted) {
|
if (accepted) {
|
||||||
if (!overrides[PENDING_SUBMISSIONS]) {
|
if (!overrides[PENDING_SUBMISSIONS]) {
|
||||||
@ -148,69 +252,6 @@ function openHelp() {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
var badIdentifiers = {};
|
|
||||||
[
|
|
||||||
'facebook.com/a',
|
|
||||||
'facebook.com/ad_campaign',
|
|
||||||
'facebook.com/ads',
|
|
||||||
'facebook.com/ajax',
|
|
||||||
'facebook.com/bookmarks',
|
|
||||||
'facebook.com/buddylist.php',
|
|
||||||
'facebook.com/bugnub',
|
|
||||||
'facebook.com/comment',
|
|
||||||
'facebook.com/composer',
|
|
||||||
'facebook.com/events',
|
|
||||||
'facebook.com/findfriends',
|
|
||||||
'facebook.com/friends',
|
|
||||||
'facebook.com/fundraisers',
|
|
||||||
'facebook.com/games',
|
|
||||||
'facebook.com/groups',
|
|
||||||
'facebook.com/help',
|
|
||||||
'facebook.com/home.php',
|
|
||||||
'facebook.com/intl',
|
|
||||||
'facebook.com/jobs',
|
|
||||||
'facebook.com/l.php',
|
|
||||||
'facebook.com/language.php',
|
|
||||||
'facebook.com/legal',
|
|
||||||
'facebook.com/like.php',
|
|
||||||
'facebook.com/local_surface',
|
|
||||||
'facebook.com/logout.php',
|
|
||||||
'facebook.com/mbasic',
|
|
||||||
'facebook.com/menu',
|
|
||||||
'facebook.com/messages',
|
|
||||||
'facebook.com/nfx',
|
|
||||||
'facebook.com/notes',
|
|
||||||
'facebook.com/notifications.php',
|
|
||||||
'facebook.com/notifications',
|
|
||||||
'facebook.com/nt',
|
|
||||||
'facebook.com/page',
|
|
||||||
'facebook.com/pages',
|
|
||||||
'facebook.com/people',
|
|
||||||
'facebook.com/permalink.php',
|
|
||||||
'facebook.com/pg',
|
|
||||||
'facebook.com/photo.php',
|
|
||||||
'facebook.com/policies',
|
|
||||||
'facebook.com/privacy',
|
|
||||||
'facebook.com/profile.php',
|
|
||||||
'facebook.com/rapid_report',
|
|
||||||
'facebook.com/reactions',
|
|
||||||
'facebook.com/salegroups',
|
|
||||||
'facebook.com/search',
|
|
||||||
'facebook.com/settings',
|
|
||||||
'facebook.com/shares',
|
|
||||||
'facebook.com/story.php',
|
|
||||||
'facebook.com/ufi',
|
|
||||||
'reddit.com/r/all',
|
|
||||||
'reddit.com/r/popular',
|
|
||||||
'twitter.com/hashtag',
|
|
||||||
'twitter.com/i',
|
|
||||||
'twitter.com/search',
|
|
||||||
'twitter.com/settings',
|
|
||||||
'twitter.com/threadreaderapp',
|
|
||||||
'twitter.com/who_to_follow',
|
|
||||||
'youtube.com/watch',
|
|
||||||
].forEach(x => badIdentifiers[x] = true);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
browser.contextMenus.onClicked.addListener(function (info, tab) {
|
browser.contextMenus.onClicked.addListener(function (info, tab) {
|
||||||
|
@ -308,7 +308,7 @@ function getIdentifier(urlstr) {
|
|||||||
try {
|
try {
|
||||||
var k = getIdentifierInternal(urlstr);
|
var k = getIdentifierInternal(urlstr);
|
||||||
if (k && k.indexOf('!') != -1) return null;
|
if (k && k.indexOf('!') != -1) return null;
|
||||||
return k;
|
return k.toLowerCase();
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.warn("Unable to get identifier for " + urlstr);
|
console.warn("Unable to get identifier for " + urlstr);
|
||||||
return null;
|
return null;
|
||||||
@ -408,10 +408,10 @@ function getIdentifierInternal(urlstr) {
|
|||||||
if (isHostedOn(host, 'reddit.com')) {
|
if (isHostedOn(host, 'reddit.com')) {
|
||||||
var pathname = url.pathname.replace('/u/', '/user/');
|
var pathname = url.pathname.replace('/u/', '/user/');
|
||||||
if (!pathname.startsWith('/user/') && !pathname.startsWith('/r/')) return null;
|
if (!pathname.startsWith('/user/') && !pathname.startsWith('/r/')) return null;
|
||||||
return 'reddit.com' + takeFirstPathComponents(pathname, 2).toLowerCase();
|
return 'reddit.com' + takeFirstPathComponents(pathname, 2);
|
||||||
}
|
}
|
||||||
if (isHostedOn(host, 'twitter.com')) {
|
if (isHostedOn(host, 'twitter.com')) {
|
||||||
return 'twitter.com' + takeFirstPathComponents(url.pathname, 1).toLowerCase();
|
return 'twitter.com' + takeFirstPathComponents(url.pathname, 1);
|
||||||
}
|
}
|
||||||
if (isHostedOn(host, 'youtube.com')) {
|
if (isHostedOn(host, 'youtube.com')) {
|
||||||
var pathname = url.pathname;
|
var pathname = url.pathname;
|
||||||
@ -422,7 +422,7 @@ function getIdentifierInternal(urlstr) {
|
|||||||
return 'disqus.com' + takeFirstPathComponents(url.pathname, 2);
|
return 'disqus.com' + takeFirstPathComponents(url.pathname, 2);
|
||||||
}
|
}
|
||||||
if (isHostedOn(host, 'medium.com')) {
|
if (isHostedOn(host, 'medium.com')) {
|
||||||
return 'medium.com' + takeFirstPathComponents(url.pathname, 1).toLowerCase();
|
return 'medium.com' + takeFirstPathComponents(url.pathname, 1);
|
||||||
}
|
}
|
||||||
if (isHostedOn(host, 'tumblr.com')) {
|
if (isHostedOn(host, 'tumblr.com')) {
|
||||||
if (url.pathname.startsWith('/register/follow/')) {
|
if (url.pathname.startsWith('/register/follow/')) {
|
||||||
@ -430,7 +430,7 @@ function getIdentifierInternal(urlstr) {
|
|||||||
return name ? name + '.tumblr.com' : null;
|
return name ? name + '.tumblr.com' : null;
|
||||||
}
|
}
|
||||||
if (host != 'www.tumblr.com' && host != 'assets.tumblr.com' && host.indexOf('.media.') == -1) {
|
if (host != 'www.tumblr.com' && host != 'assets.tumblr.com' && host.indexOf('.media.') == -1) {
|
||||||
if (!url.pathname.startsWith('/tagged/')) return url.host.toLowerCase();
|
if (!url.pathname.startsWith('/tagged/')) return url.host;
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@ -441,13 +441,13 @@ function getIdentifierInternal(urlstr) {
|
|||||||
}
|
}
|
||||||
if (host.indexOf('.blogspot.') != -1) {
|
if (host.indexOf('.blogspot.') != -1) {
|
||||||
var m = captureRegex(host, /([a-zA-Z0-9\-]*)\.blogspot/);
|
var m = captureRegex(host, /([a-zA-Z0-9\-]*)\.blogspot/);
|
||||||
if (m) return m.toLowerCase() + '.blogspot.com';
|
if (m) return m + '.blogspot.com';
|
||||||
}
|
}
|
||||||
|
|
||||||
var id = host;
|
var id = host;
|
||||||
if (id.startsWith('www.')) id = id.substr(4);
|
if (id.startsWith('www.')) id = id.substr(4);
|
||||||
if (id.startsWith('m.')) id = id.substr(2);
|
if (id.startsWith('m.')) id = id.substr(2);
|
||||||
return id.toLowerCase();
|
return id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user