Commit Graph

63 Commits (7960f8ae25332b42013908443a65e4afdbedb539)

Author SHA1 Message Date
SnorlaxMonster 6cb81fd193
Display all wikifarm hosts in the redirect banner (#737)
Instead of storing the destination wiki's host as a tag, move it to a dedicated "destination_host" property.
2024-07-18 04:32:58 -05:00
SnorlaxMonster 2b14da434b
Remove reliance on platform to construct URLs (#738)
Refactor code that depends on the destination wiki's platform in order
to support generic wiki platforms (e.g. Wikidot).

Redirection to the Main Page now uses the destination_content_path to
send users directly to the destination wiki's main page, rather than
using a different URL depending on the destination wiki's software.

The only remaining code that depends on the destination wiki's software
is the construction of the search path. This code now has a default case
that doesn't add any software-specific path to a constructed search URL.
This allows any wiki, regardless of the software it runs on, to be
added by putting its full search path in the "destination_search_path"
property of the redirect definition.

As a result of these changes, it is now possible to add redirects to
Wikidot wikis, by just defining the full search path in their redirect
entry's "destination_search_path".

Co-authored-by: SnorlaxMonster <snorlaxmonster@users.noreply.github.com>
2024-07-18 04:00:34 -05:00
Dianliang233 4d9243aab7
Allow i18n for the extension (#716) 2024-06-29 05:20:53 -05:00
Kevin Payravi 36b34ec55a Wrap article encoding in try-catch
We wrap in a try-catch as decoding can sometimes fail if destination article does have special characters (e.g. %) in the title.
2024-06-11 07:12:42 -04:00
SnorlaxMonster 029dd60a0d
Put search engine CSS in stylesheet
Instead of injecting CSS rules into the original page's stylesheet,
store the IWB styles in a CSS file and add that file to the manifest
scripts.
2024-06-11 00:27:56 -05:00
SnorlaxMonster 4f6d09d832
Share filtering code between search engines
Ensure all search engines use the same code to filter which search results are results for supported non-indie wikifarms. This also fixes an apparent oversight where Qwant was not redirecting Neoseeker search results.
2024-06-08 13:52:50 -05:00
Kevin Payravi b681c9b523 Decoding when checking for main page match 2024-06-07 00:43:54 -04:00
Kevin Payravi dee2c5d1a8 Update Qwant CSS selector
Previous selector no longer works
2024-06-05 22:38:23 -05:00
Kevin Payravi 5995b28efa Improvements to search engine link handling
* Handling when Google results use Google's middleman (google.com/url?q=)
* When handling middleman links, instead of replacing search result hrefs with updated links, we now add the updated link in a custom data-iwb-href attribute
* Better handling of special characters in page titles
2024-06-04 00:03:07 -04:00
Kevin Payravi 67b77a234c Improvements to Google search results re-ordering
* Instead of moving indie results to the top of Google search results, we now move indie results above the first non-indie (Fandom / Fextra / Neoseeker) result. If no non-indie result appears, re-ordering doesn't occur. This is to avoid moving less relevant results to the top, particularly for searches for generic terms.
* Improved Google filtering to account for when Google uses their own middleman link
2024-05-29 22:24:58 +02:00
Kevin Payravi 713278d791 Updating reorder hiding regex
Adding "end of line" to regex, to prevent matching partial results and hiding results we don't want to hide
2024-05-19 02:15:37 +02:00
Kevin Payravi 096a870719 Additional selectors for reorder-ignore
"div[data-docid], div[data-lpage]" captures image results
2024-05-03 16:20:52 +03:00
Kevin Payravi 623eb2d149 Adjust query for non-standard search results / Fix
For identifying non-standard search results, "div[jsname]" is unreliable as Google does seem to add it to some standard search results. Replacing with checks for attributes that are more specific to Q&A dropdowns + cards.
2024-05-03 02:38:39 +03:00
Jayden 05f36d495d
re-ordering: unconditionally check for first result = indie wiki
This check should be moved outside of the searchEngineSettings if statement, because the result of it should be applied regardless of the searchEngineSettings.
2024-05-02 16:56:12 -05:00
Kevin Payravi cf838788b2 Splitting reordering into separate loop
We now have on loop that checks which results we want to re-order, and then a second loop that actually does the re-ordering.
2024-05-01 18:59:28 -05:00
Kevin Payravi a8c740480c Removing reverse for now, needs a closer look 2024-05-01 14:55:41 -05:00
Kevin Payravi 1f5f969750 For search re-ordering, avoid capturing Q&A
Check for JS-powered sections via div[jsname]

Co-Authored-By: Jayden <7265189+jayktaylor@users.noreply.github.com>
2024-05-01 14:50:52 -05:00
Kevin Payravi f55cd3b795 For search re-ordering, reverse at end
This avoids conflicting with the check for the first result being an indie wiki
2024-05-01 14:49:05 -05:00
Kevin Payravi 69fe308664 Fix for storage access from background 2024-04-27 23:43:14 -04:00
Kevin Payravi 84892bf478 Reverse search results when re-ordering
Ensuring higher results are re-ordered to the top last
2024-04-27 20:22:28 -04:00
Kevin Payravi d7fcc1d172 Only run re-ordering when wiki not disabled 2024-04-27 20:07:30 -04:00
Kevin Payravi 535c6d28b7 Expand selector for re-ordering
Needed for Google when viewing on iPhone
2024-04-25 00:34:45 -05:00
Kevin Payravi 3a75724520
Add search engine toggling / Search engine filtering fixes / Disabling SearNGX+Whoogle
More details at https://github.com/KevinPayravi/indie-wiki-buddy/pull/648
2024-04-23 00:18:42 -05:00
Jayden 520130e3c8
re-ordering: skip non-standard search results 2024-04-14 03:45:13 -05:00
Kevin Payravi 1c4ae5ff8f
More reliable element detection for search result re-ordering 2024-03-22 03:23:50 -05:00
Jayden 39e44da293
Re-order indie wiki results in Google 2024-03-21 00:09:18 -05:00
James McKee 052bb27887
Support custom search engine URLS, currently SearXNG and Whoogle 2024-03-18 03:03:37 -05:00
Kevin Payravi cd7c4df9a7 Support for destination suffixes
A suffix that is added to the end of article names before performing a search on the destination wiki. This is typically used when a multilingual wiki separates its languages by suffixes (e.g. /es, /pt, etc.). Team Fortress Wiki is an example that uses this.
2024-03-13 03:01:41 -05:00
Kevin Payravi 59b6e17e69 Formatting files 2024-02-27 03:43:55 -06:00
Kevin Payravi a66f3c91a8 Removing Object.prototype functions
Improve compatibility across browsers + not a best practice
2024-02-27 02:55:41 -06:00
Kevin Payravi b92772ec62 Changing BASE64REGEX from const to var
Since common-functions.js may be loaded multiple times on a page
2024-02-24 16:49:29 -05:00
Kevin Payravi 38235496dd Mentioning Neoseeker in docs and settings 2024-02-23 03:38:58 -05:00
Autumn McKee cee24440b7 Also filter URLs in "Quick Peek" section 2024-02-22 02:32:03 -06:00
Autumn McKee 4ca39ec1c3 Search filtering for Kagi 2024-02-22 02:32:03 -06:00
Kevin Payravi 41e41108a0 Adding 7 additional BreezeWiki mirrors
Also alphabetized lists in manifests, by site name (not including subdomain).

List of added instances:
breezewiki.catsarch.com
breezewiki.frontendfriendly.xyz
breezewiki.hyperreal.coffee
breeze.mint.lgbt
breezewiki.nadeko.net
z.opnxng.com
breezewiki.woodland.cafe
2024-02-20 02:11:51 -06:00
Kevin Payravi 562ff0ff86 Adding new Minecraft wikis + favicon optimizations
Includes addition of LZH language category (literary / classical Chinese)
2024-02-19 18:34:37 -06:00
Kevin Payravi 4110506c8a Removing console log 2024-02-18 01:59:38 -06:00
Kevin Payravi 851b7167ac Accounting for tracking links for Yahoo filtering
Yahoo search results sometimes have tracking URLs (r.search.yahoo.com/). This commit extracts the embedded original URL as needed.
2024-02-18 01:57:59 -06:00
Kevin Payravi d309be7410 Also filtering image result links in Yandex 2024-02-18 01:06:03 -06:00
Kevin Payravi 47b42b8af5 Adding support for alternative Yandex domains 2024-02-18 00:59:11 -06:00
Kevin Payravi dff009d2ff Implementing search filtering on Yandex 2024-02-18 00:41:06 -06:00
Kevin Payravi 27f66f17c0 Adding checks 2024-02-17 14:32:12 -06:00
Kevin Payravi 46f3b88a9d
Qwant search filtering support
Co-authored-by: Snootiful <denniskok@fastmail.com>
2024-02-17 02:16:30 -06:00
Kevin Payravi fbc48e58cf More specific domain selectors in search filtering 2024-02-17 01:22:08 -06:00
Kevin Payravi 3b2e354639 Updating code and manifests to include Neoseeker 2024-02-16 23:51:16 -06:00
Kevin Payravi 77d68b0c3e Tuning Bing filtering to avoid capturing too much
A single Bing search result can often contain links to many different websites. Before, if any one of these links was a link to Fandom, the entire result would be disabled (even if the top-level result was an indie wiki). With this commit, only top-level (header) links are captured, and disabling CSS is not applied to "explore further" links.
2024-02-12 02:04:20 -06:00
Kevin Payravi 11d7a9b753 Adding non-EN wikis from wiki.gg
Includes wikis in DE, ES, FR, HU, IT, JA, KO, PL, PT, RU, TH, UK, and ZH. HU, JA, and TH are new language categories.
2024-02-12 01:23:47 -06:00
Kevin Payravi b186c730ff Fixes for redirect banner control logic 2024-02-08 04:13:37 -06:00
Kevin Payravi ac91d586b8 Compressing wiki settings
Browser sync storage has a 8kb limit per item, which we are quickly approaching. Compressing our wiki settings JSONs reduces storage from ~7.3kb to ~2.4kb.
2024-02-08 02:34:53 -06:00
SnorlaxMonster b86c7f620d
Adjust DokuWiki handing
Renamed platform "doku" to "dokuwiki".
The software is named "DokuWiki", just like "MediaWiki".

The previous search path construction for DokuWiki wikis would fail for
wikis that put their page names in query parameters instead of the path.
For example, https://wiki.diceydungeons.com/doku.php
(note that this wiki is not currently supported by IWB).
The solution is to use "doku.php", which always renders as the main page
 on DokuWikis, regardless of the URL structure, so can safely be used as
the base URL for searches.

However, to parallel MediaWiki wikis, which put "index.php" in the
wiki-specific search_path, I've moved "doku.php" to the definitions of
individual DokuWikis, so the JS now only adds query parameters.
2024-02-08 00:53:22 -06:00