|
| 1 | +var app = {}; |
| 2 | + |
| 3 | +// Generate referer uri |
| 4 | +app.generateReferer = function () { |
| 5 | + var linkId = (1 + Math.random()).toString(36).substring(2, 12); |
| 6 | + return `https://t.co/${linkId}`; |
| 7 | +} |
| 8 | + |
| 9 | +// Modify the referer to twitter |
| 10 | +app.modifyHeaders = function (details) { |
| 11 | + var newRef = app.generateReferer(); |
| 12 | + var refExists = false; |
| 13 | + for (var n in details.requestHeaders) { |
| 14 | + refExists = details.requestHeaders[n].name.toLowerCase() == "referer"; |
| 15 | + if (refExists) { |
| 16 | + details.requestHeaders[n].value = newRef; |
| 17 | + break; |
| 18 | + } |
| 19 | + } |
| 20 | + if (!refExists) { |
| 21 | + details.requestHeaders.push({ name: "Referer", value: newRef }); |
| 22 | + } |
| 23 | + return { requestHeaders: details.requestHeaders }; |
| 24 | +} |
| 25 | + |
| 26 | +// Modify network requests |
| 27 | +browser.webRequest.onBeforeSendHeaders.addListener( |
| 28 | + app.modifyHeaders, |
| 29 | + { |
| 30 | + urls: [ |
| 31 | + '*://*.medium.com/*', |
| 32 | + '*://writingcooperative.com/*', |
| 33 | + '*://psiloveyou.xyz/*', |
| 34 | + '*://uxplanet.org/*', |
| 35 | + '*://towardsdatascience.com/*', |
| 36 | + '*://codeburst.io/*', |
| 37 | + '*://*.gitconnected.com/*', |
| 38 | + '*://itnext.io/*', |
| 39 | + '*://entrepreneurshandbook.co/*', |
| 40 | + '*://arcdigital.media/*', |
| 41 | + '*://femsplain.com/*', |
| 42 | + '*://fityourself.club/*', |
| 43 | + '*://byrslf.co/*', |
| 44 | + '*://blog.qz.com/*', |
| 45 | + '*://bullshit.ist/*', |
| 46 | + '*://*.pramp.com/*', |
| 47 | + '*://uxdesign.cc/*', |
| 48 | + '*://medium.muz.li/*', |
| 49 | + '*://*.usejournal.com/*', |
| 50 | + '*://timeline.com/*', |
| 51 | + '*://substance.media/*', |
| 52 | + '*://thebolditalic.com/*', |
| 53 | + '*://thecreative.cafe/*', |
| 54 | + '*://theascent.pub/*', |
| 55 | + '*://ceoplaybook.io/*', |
| 56 | + '*://dayoneperspective.com/*', |
| 57 | + '*://eand.co/*', |
| 58 | + '*://extranewsfeed.com/*', |
| 59 | + '*://democracyguardian.com/*', |
| 60 | + '*://*.issuevoter.org/*', |
| 61 | + ] |
| 62 | + }, |
| 63 | + [ |
| 64 | + 'blocking', |
| 65 | + 'requestHeaders' |
| 66 | + ] |
| 67 | +); |
0 commit comments