2020-03-29 01:34:46 +01:00
|
|
|
'use strict';
|
|
|
|
|
|
|
|
const nitterDefault = 'https://nitter.net';
|
|
|
|
|
|
|
|
let disableNitter;
|
|
|
|
let nitterInstance;
|
|
|
|
|
|
|
|
window.browser = window.browser || window.chrome;
|
|
|
|
|
|
|
|
function redirectTwitter(url) {
|
|
|
|
if (url.host.split('.')[0] === 'pbs') {
|
|
|
|
return `${nitterInstance}/pic/${encodeURIComponent(url.href)}`;
|
|
|
|
} else if (url.host.split('.')[0] === 'video') {
|
|
|
|
return `${nitterInstance}/gif/${encodeURIComponent(url.href)}`;
|
|
|
|
} else {
|
|
|
|
return `${nitterInstance}${url.pathname}${url.search}`;
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
|
|
|
browser.storage.sync.get(
|
2020-06-03 14:01:27 +02:00
|
|
|
['nitterInstance', 'disableNitter', 'removeTwitterSW', 'redirectBypassFlag'],
|
2020-03-29 01:34:46 +01:00
|
|
|
(result) => {
|
2020-06-07 14:08:15 +02:00
|
|
|
const redirectBypassFlag = result.redirectBypassFlag;
|
|
|
|
browser.storage.sync.set({
|
|
|
|
redirectBypassFlag: false
|
|
|
|
});
|
2020-03-29 01:34:46 +01:00
|
|
|
if (!result.removeTwitterSW) {
|
|
|
|
disableNitter = result.disableNitter;
|
|
|
|
nitterInstance = result.nitterInstance || nitterDefault;
|
|
|
|
navigator.serviceWorker.getRegistrations().then(registrations => {
|
|
|
|
for (let registration of registrations) {
|
|
|
|
if (registration.scope === 'https://twitter.com/') {
|
|
|
|
registration.unregister();
|
|
|
|
console.log('Unregistered Twitter SW', registration);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
const url = new URL(window.location);
|
2020-06-07 14:08:15 +02:00
|
|
|
if (!redirectBypassFlag && !disableNitter && url.host !== nitterInstance && !url.pathname.includes('/home')) {
|
2020-03-29 01:34:46 +01:00
|
|
|
const redirect = redirectTwitter(url);
|
|
|
|
console.info(
|
|
|
|
'Redirecting', `"${url.href}"`, '=>', `"${redirect}"`
|
|
|
|
);
|
|
|
|
window.location = redirect;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
);
|