Open SethFalco opened 2 years ago
I love this idea. It's something I've been thinking about for a while. Do you think it would be better to have the redirects in this repo, or a separate repo (with a link in the README of this repo)? I'm leaning towards the latter, but am interested to read your feedback and ideas.
BTW, the only downside I can think of ATM of sharing redirects is that site owners/webmasters might start preventing redirects from working if the redirects become popular. For example, I've written many redirects to get around link trackers, but if thousands of people start using those redirects, webmasters may change their code to prevent the redirect rules from working. What do you think about this possible (likely?) issue?
redirects in this repo, or a separate repo
Hmm… I'm thinking whatever works, so long as they're accessible by default when the user first visits the extensions settings one way or another.
It'd make for a better user-experience if they were shipped by default from this repository, rather than fetched on first use or via a button, I think. Plus, separating it for a dataset of redirect URLs might be an overly specific use-case to have any reusability. 🤔
might start preventing redirects from working if the redirects become popular.
I appreciate your point, but I think the whole point for maintainers/contributors of this repo is that we want it to be more popular. ^-^'
In the same way, we don't worry about too many users using ad blocks, blocking third-party scripts, fonts, or cookies because platforms may circumvent it. We just accept that websites can try to circumvent it and at the very least, we can be happy that caused them some inconvenience even if they do prevent it. XD
webmasters may change their code to prevent the redirect rules from working. What do you think about this possible (likely?) issue?
We won't know until we see it in practice, but I don't actually think this will happen too often. Webmasters would be more interested in preserving the function of existing links than working around users bypassing the tracked redirect.
With Google for example, I suspect there are countless links shared, bookmarked, or sitting in email clients and Google Meets history where Google wouldn't want to break these for example since users are inadvertently letting Google know every time they want to visit the website. A negligible number of users using an extension like this isn't worth breaking everything else.
Hi Seth. I read your message, and you bring up some very interesting ideas. I have some initial thoughts, but I want to spend more time thinking about them before writing a reply. It may be a while (intentionally vague time reference!) until I reply, because we are discussing significant considerations that will require decisions before any changes are planned.
I'll quickly mention one thought off the cuff: content blockers have been able to contend with site changes by constantly adding advanced functionality. Because Redirector's functionality is (at least currently) limited to redirections, it probably won't be able to overcome most potential changes made by websites that are intended to render Redirector useless (for those specific sites).
There are a few ways around this concern, one being to create an intermediary site to handle complex situations (I already do this for some sites, but I've never published details). Another is to add significant complexity to Redirector to simulate loading multiple pages in a redirect chain. Neither of those solutions, of course, is trivial. Other solutions may be possible as well, and I invite all ideas and brainstorming.
I have been working on making configurations today, here is one you can include if you are to do this:
Redirector_WikipediaThemes_3pack_2023January19th.json
{
"createdBy": "Redirector v3.5.3",
"createdAt": "2023-01-20T00:35:25.872Z",
"redirects": [
{
"description": "Wikipedia timeless theme (articles only)",
"exampleUrl": "https://en.wikipedia.org/wiki/Test/",
"exampleResult": "https://en.wikipedia.org/wiki/Test/?useskin=timeless",
"error": null,
"includePattern": "http*://*.wikipedia.org/wiki/*",
"excludePattern": "http*://*.wikipedia.org/*?useskin=*",
"patternDesc": "Redirects to the timeless theme on Wikipedia. Doesn't work with editing pages, anchor links, and viewing page history.",
"redirectUrl": "http$1://$2.wikipedia.org/wiki/$3?useskin=timeless",
"patternType": "W",
"processMatches": "noProcessing",
"disabled": true,
"grouped": false,
"appliesTo": [
"main_frame"
]
},
{
"description": "Wikipedia vector classic theme (articles only)",
"exampleUrl": "https://en.wikipedia.org/wiki/Test/",
"exampleResult": "https://en.wikipedia.org/wiki/Test/?useskin=vector",
"error": null,
"includePattern": "http*://*.wikipedia.org/wiki/*",
"excludePattern": "http*://*.wikipedia.org/*?useskin=*",
"patternDesc": "Redirects to the pre-2023 vector theme on Wikipedia. Doesn't work with editing pages, anchor links, and viewing page history.",
"redirectUrl": "http$1://$2.wikipedia.org/wiki/$3?useskin=vector",
"patternType": "W",
"processMatches": "noProcessing",
"disabled": true,
"grouped": false,
"appliesTo": [
"main_frame"
]
},
{
"description": "Wikipedia monobook theme (articles only)",
"exampleUrl": "https://en.wikipedia.org/wiki/Test/",
"exampleResult": "https://en.wikipedia.org/wiki/Test/?useskin=monobook",
"error": null,
"includePattern": "http*://*.wikipedia.org/wiki/*",
"excludePattern": "Wikipedia Monobook theme",
"patternDesc": "Redirects to the monobook theme on Wikipedia. Doesn't work with editing pages, anchor links, and viewing page history.",
"redirectUrl": "http$1://$2.wikipedia.org/wiki/$3?useskin=monobook",
"patternType": "W",
"processMatches": "noProcessing",
"disabled": false,
"grouped": false,
"appliesTo": [
"main_frame"
]
}
]
}
I second the idea that some kind of community-maintained list of Redirector rules would be neat.
I came here because I just made myself a nice Redirector rule which I thought I'd share, but there's nowhere to do that. Even a simple pinned issue titled SHARE YOUR REDIRECTOR RULES HERE would be appreciated!
Gonna drop the rule here for now I guess. Since the death of gfycat.com (and its archival into the Internet Archive) I've made myself a Redirector rule to resurrect the clips:
{
"createdBy": "Redirector v3.5.3",
"createdAt": "2023-09-10T03:35:36.348Z",
"redirects": [
{
"description": "GFYCAT BACKUP",
"exampleUrl": "https://gfycat.com/giganticcarefulgaur.gif",
"exampleResult": "https://web.archive.org/web/0if_/https://thumbs.gfycat.com/giganticcarefulgaur-mobile.mp4",
"error": null,
"includePattern": "^https?://(?:[^/]*\\.)?gfycat.com\\/(?:ifr\\/)?([A-z]*)",
"excludePattern": "",
"patternDesc": "",
"redirectUrl": "https://web.archive.org/web/0if_/https://thumbs.gfycat.com/$1-mobile.mp4",
"patternType": "R",
"processMatches": "noProcessing",
"disabled": false,
"grouped": false,
"appliesTo": [
"main_frame"
]
}
]
}
Thoughts on keeping a community maintained list of redirects in the repository that can be disabled by default?
This way users have a much more pleasant initial experience with the extension, rather than having to either configure them from scratch or having to copy them from the README or online.
This would also mean there's no need to maintain some in the README anymore, they could be in a dedicated JSON file and linked to, and will get more attention when/if something might be broken.