Rob--W / dont-track-me-google

Firefox and Chrome extensions to prevent Google from making links ugly.
MIT License
459 stars 26 forks source link

[feature request] Ready User Script #44

Closed dnmTX closed 3 years ago

dnmTX commented 3 years ago

Hi Rob @Rob--W. Any chance to provide here ready user script with ability to be fetched and updated,something like: // @version ..... // @license ....... // @downloadURL ...... // @updateURL ..... I'm just trying to offset whatever is not necessary from my Chromium browser to my AdBlocker,which is perfectly capable to run it. I've been testing it for a while now and didn't see any reason to mess with it,so can be easily moved there. I'd very much appreciate considering it. Thank you and keep up the good work 👍

Rob--W commented 3 years ago

I suppose that I can do that and check it in the repository (e.g. with GitHub pages or on another branch) or publish it on Greasyfork.

dnmTX commented 3 years ago

@Rob--W hosting it here should be fine,i think,and thank you so much for doing it 👍

P.S. Just in case,let me ask the most relevant party 😃 @ameshkov fetching the user script from GitHub should be fine right? Also,if there is anything else that you can suggest to @Rob--W will be very much appreciated. Thank you 👍

ameshkov commented 3 years ago

Hey Rob, long time no see:) Cool userscript, a great candidate for the recommended userscripts article we're going to write soon.

dnmTX commented 3 years ago

@ameshkov the script is not actually up yet. I was hoping to get your input/suggestions first,but you didn't answer my questions from the previous post ☝️ 😄

ameshkov commented 3 years ago

Well, there're no special requirements, it just should be a valid userscript with @updateURL and @downloadURL

dnmTX commented 3 years ago

@Rob--W don't mean to rush or anything,just checking on the progress here 👍

Rob--W commented 3 years ago

I'll publish an update later this week.

Rob--W commented 3 years ago

Update: I am still evaluating whether to use Greasyfork or publish via Github, haven't made up my mind yet. Will make a decision within a few days.

dnmTX commented 3 years ago

@Rob--W thanks for the update 👍

dnmTX commented 3 years ago

@Rob--W just a small suggestion regarding the UserScript. Consider using regex for the @match header,instead of listing every single google country variation. I can confirm that it's working,using it on my other userscripts,for example i have https://forum.*/* and so far didn't miss any website that begins with forum. I do believe using https://www.google.*/* will be more then sufficient. Thank you 👍

P.S. Tested it with @include header and without @match present and:

https://www.google.*.*/*
https://www.google.*/*

covered the whole range

Rob--W commented 3 years ago

@Rob--W just a small suggestion regarding the UserScript. Consider using regex for the @match header,instead of listing every single google country variation. I can confirm that it's working,using it on my other userscripts,for example i have https://forum.*/* and so far didn't miss any website that begins with forum. I do believe using https://www.google.*/* will be more then sufficient.

I used @match because it's a bit more precise and widely supported (e.g. won't match https://www.google.not-google-example.com). Its behavior is also consistent with what I'm publishing as an extension.

Rob--W commented 3 years ago

Published as https://greasyfork.org/en/scripts/428243-don-t-track-me-google . Let me know if it resolves your issue!

dnmTX commented 3 years ago

Rob @Rob--W Thank You 👍 Just tested it and it's working just fine. Few questions though: Regarding any feature updates? You didn't include any download links. On the script,the last line,i'm not an expert here but just in case to ask.Doesn't need a semicolon or..? And regarding this:

The user script cannot be customized (unlike the extension),

What exactly am i missing by using the UserScript instead of the extension. I don't really see any important customisation in the extension besides disabling all those google variations.

Rob--W commented 3 years ago

Rob @Rob--W Thank You 👍 Just tested it and it's working just fine. Few questions though: Regarding any feature updates? You didn't include any download links.

It would be stripped anyway: https://greasyfork.org/en/help/rewriting

On the script,the last line,i'm not an expert here but just in case to ask.Doesn't need a semicolon or..?

Nope. Semicolons are optional in JS. I usually add them but if they're missing, then it's not going to affect functionality anyway.

And regarding this:

The user script cannot be customized (unlike the extension),

What exactly am i missing by using the UserScript instead of the extension. I don't really see any important customisation in the extension besides disabling all those google variations.

In case the functionality is too strict, the option can be toggled. I personally don't change the option, but for some it could be a nice alternative to disabling the script (while awaiting an update from me to resolve the broken functionality caused by the script).

dnmTX commented 3 years ago

Well....i got that option in AdGuard: Capture

I can toogle it whole day if i wan to..... 😄 Ok,then what will be the way to check for any new releases?

dnmTX commented 3 years ago

And i see there is no special permissions needed @grant ,that's kind of odd,but you know better of course 😄

Rob--W commented 3 years ago

Well....i got that option in AdGuard: Capture

I can toogle it whole day if i wan to..... 😄 Ok,then what will be the way to check for any new releases?

You can watch this repository.

A regular user script manager performs update checks by downloading the .meta.js file and if it doesn't exist the .user.js file.

And i see there is no special permissions needed @grant ,that's kind of odd,but you know better of course 😄

@grant is only needed for user script-specific APIs. I don't use any.

Rob--W commented 3 years ago

Well, there're no special requirements, it just should be a valid userscript with @updateURL and @downloadURL

@ameshkov Is your user script implementation compatible with scripts hosted on Greasyfork?

dnmTX commented 3 years ago

You can watch this repository.

I am,but without you to implement the Release Feature,there will be no notifications. Like this: categories

If you do it,it will notify everyone who's watching this repo and it's much preferred by me,this way i can just copy/paste the script part and customize the header as wish. Current header 😄 :

// ==UserScript==
// @name        Don't track me Google
// @version     4.26
// @description Removes the annoying redirects at Google
// @supportURL  https://github.com/Rob--W/dont-track-me-google/issues
// @match       *://*.google.com/*
// @run-at      document-start
// ==/UserScript==
Rob--W commented 3 years ago

What's the point of me publishing a script to Greasyfork if you're going to edit it anyway?

And why do you prefer to use an imprecise wildcard pattern instead of the tested set of Google URLs?

dnmTX commented 3 years ago

What's the point of me publishing a script to Greasyfork if you're going to edit it anyway?

Well let me quote you here 👇 ,and for the record,i never asked you to publush it there:

Update: I am still evaluating whether to use Greasyfork or publish via Github, haven't made up my mind yet.

And why do you prefer to use an imprecise wildcard pattern instead of the tested set of Google URLs?

*://*.google.com/* is one of yours,i didn't change it, i left just the one i need.

dnmTX commented 3 years ago

Why so mad Rob @Rob--W ? Isn't that the point with UserScripts,to be able to customize? 😞

Rob--W commented 3 years ago

What's the point of me publishing a script to Greasyfork if you're going to edit it anyway?

Well let me quote you here 👇 ,and for the record,i never asked you to publush it there:

I've published a script under the assumption that you'd like to have an up-to-date version of the script (due to your mention of @updateURL in your first post). Hence my surprise when you immediately detached the script from the source, since that requires you to manually update the script.

I had already published a tool to generate the user script from the source code (see the tools/ directory), and its simply a concatenation of the user script header derived from manifest.json plus the content of contentscript.js. If your only wish is to have a source for copy-pasting the script source (with your custom user script header), just look at contentscript.js here and you don't need to visit Greasyfork.

And why do you prefer to use an imprecise wildcard pattern instead of the tested set of Google URLs?

*://*.google.com/* is one of yours,i didn't change it, i left just the one i need.

I see. I mistakenly thought that it was *.google.* because that pattern was recently mentioned elsewhere. If there is an auto-update mechanism in your user script manager, then I suggest to use the script without modifications. Then you'll get the latest version without having to monitor anything.

Why so mad Rob @Rob--W ? (...) 😞

Not sure why you think that I am. Because I am not.

dnmTX commented 3 years ago

Thank you Rob @Rob--W i'll follow up on your recommendations. And just FYI,having it published at Greasyfork will benefit a lots of UserScript enthusiasts for sure,and for me personally i'll watch the contentscript.js for any changes from now on. I think the feature request is complete but i'm not sure do you want this still open,so i'll leave it to you. Cheers and stay safe out there 👍

dnmTX commented 3 years ago

Rob @Rob--W just to give you some feedback. Initially i had couple of times pages crashing on me when they were sitting idle in inactive tab with that Aw, Snap! error. And just before that happened i could hear my laptop's fan ramping up speed. Trying with @grant unsafeWindow and will keep you posted. If you interested,it might give you some insight,this is how AdGuard is running your script.Basically every UserScript for that matter:

(function anonymous(a
) {
with(a.sandbox){(function(userscript){'use strict';userscript.call(a.sandbox,a.GM,a.settings.scriptInfo,a.unsafeWindow,a.A,a.B,a.w,a.settings,a.settings,a.v,a.C,a.u,a.s,a.F,a.D);})(function(GM,GM_info,unsafeWindow,createObjectIn,exportFunction,cloneInto,adguardSettings,AdguardSettings,ADG_addRule,ADG_removeRule,ADG_isFiltered,ADG_changeFilteringState,ADG_temporaryDontBlock,ADG_sendAbuse,a){
Your script starts here.....