Always use lowercase identifiers

This commit is contained in:
shinigami-eyes 2019-01-14 23:11:06 +01:00
parent 2e76146ed8
commit b8711a3126
2 changed files with 113 additions and 72 deletions

View File

@ -1,13 +1,119 @@
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 accepted = false;
var installationId = null;
browser.storage.local.get(['overrides', 'accepted', 'installationId'], v => {
accepted = v.accepted
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) {
installationId = (Math.random() + '.' + Math.random() + '.' + Math.random()).replace(/\./g, '');
browser.storage.local.set({ installationId: installationId });
@ -121,8 +227,6 @@ function submitPendingRatings() {
}
var PENDING_SUBMISSIONS = ':PENDING_SUBMISSIONS'
function saveLabel(response) {
if (accepted) {
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) {

View File

@ -308,7 +308,7 @@ function getIdentifier(urlstr) {
try {
var k = getIdentifierInternal(urlstr);
if (k && k.indexOf('!') != -1) return null;
return k;
return k.toLowerCase();
} catch (e) {
console.warn("Unable to get identifier for " + urlstr);
return null;
@ -408,10 +408,10 @@ function getIdentifierInternal(urlstr) {
if (isHostedOn(host, 'reddit.com')) {
var pathname = url.pathname.replace('/u/', '/user/');
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')) {
return 'twitter.com' + takeFirstPathComponents(url.pathname, 1).toLowerCase();
return 'twitter.com' + takeFirstPathComponents(url.pathname, 1);
}
if (isHostedOn(host, 'youtube.com')) {
var pathname = url.pathname;
@ -422,7 +422,7 @@ function getIdentifierInternal(urlstr) {
return 'disqus.com' + takeFirstPathComponents(url.pathname, 2);
}
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 (url.pathname.startsWith('/register/follow/')) {
@ -430,7 +430,7 @@ function getIdentifierInternal(urlstr) {
return name ? name + '.tumblr.com' : null;
}
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;
}
@ -441,13 +441,13 @@ function getIdentifierInternal(urlstr) {
}
if (host.indexOf('.blogspot.') != -1) {
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;
if (id.startsWith('www.')) id = id.substr(4);
if (id.startsWith('m.')) id = id.substr(2);
return id.toLowerCase();
return id;
}