I mean it’s on you to manage boxing and unboxing in your projects
- 0 Posts
- 7 Comments
Joined 2 years ago
Cake day: July 2nd, 2023
You are not logged in. If you use a Fediverse account that is able to follow users, you can follow this user.
techt@lemmy.worldto Technology@lemmy.world•AdNauseam is a uBlock fork that goes further: it actively attacks marketers by auto-clicking every ad before blockingEnglish5·6 days agoHere you go, from the repo:
const visitAd = function (ad) { function timeoutError(xhr) { return onVisitError.call(xhr, { type: 'timeout' }); } const url = ad && ad.targetUrl, now = markActivity(); // tell menu/vault we have a new attempt broadcast({ what: 'adAttempt', ad: ad }); if (xhr) { if (xhr.delegate.attemptedTs) { const elapsed = (now - xhr.delegate.attemptedTs); // TODO: why does this happen... a redirect? warn('[TRYING] Attempt to reuse xhr from ' + elapsed + " ms ago"); if (elapsed > visitTimeout) timeoutError(); } else { warn('[TRYING] Attempt to reuse xhr with no attemptedTs!!', xhr); } } ad.attempts++; ad.attemptedTs = now; if (!validateTarget(ad)) return deleteAd(ad); return sendXhr(ad); // return openAdInNewTab(ad); // return popUnderAd(ad) }; const sendXhr = function (ad) { // if we've parsed an obfuscated target, use it const target = ad.parsedTargetUrl || ad.targetUrl; log('[TRYING] ' + adinfo(ad), ad.targetUrl); xhr = new XMLHttpRequest(); try { xhr.open('get', target, true); xhr.withCredentials = true; xhr.delegate = ad; xhr.timeout = visitTimeout; xhr.onload = onVisitResponse; xhr.onerror = onVisitError; xhr.ontimeout = onVisitError; xhr.responseType = ''; // 'document'?; xhr.send(); } catch (e) { onVisitError.call(xhr, e); } } const onVisitResponse = function () { this.onload = this.onerror = this.ontimeout = null; markActivity(); const ad = this.delegate; if (!ad) { return err('Request received without Ad: ' + this.responseURL); } if (!ad.id) { return warn("Visit response from deleted ad! ", ad); } ad.attemptedTs = 0; // reset as visit no longer in progress const status = this.status || 200, html = this.responseText; if (failAllVisits || status < 200 || status >= 300) { return onVisitError.call(this, { status: status, responseText: html }); } try { if (!isFacebookExternal(this, ad)) { updateAdOnSuccess(this, ad, parseTitle(this)); } } catch (e) { warn(e.message); } xhr = null; // end the visit };
That’s pretty much it! Let me know if it doesn’t make sense, I can annotate it
techt@lemmy.worldto Gardening@lemmy.world•Making a seedling rack with grow lights was a good ideaEnglish4·22 days agoThis is beautiful, well done! When do they move outside? And when did you start the ones on each shelf?
techt@lemmy.worldto Technology@lemmy.world•When You Block the Internet on Your Phone, Something Astonishing Happens MentallyEnglish1·1 month agoVery resourceful, I love it. If you remember, I’d be interested in seeing the finished product, but either way I hope it turns out great! Nice job making the time for something like this!
techt@lemmy.worldto Technology@lemmy.world•When You Block the Internet on Your Phone, Something Astonishing Happens MentallyEnglish2·1 month agoThat’s so cool! Is it plaster? I really like the stone lines
My friend who has never been in a long-term relationship wants to know what this means – how would you explain this agreement?
Republican tariff market collapse.