GreasyFork 语言筛选器移除器

此脚本修改 GreasyFork 上的 URL,以始终显示所有语言的脚本,除非用户手动选择其他语言。

  1. // ==UserScript==
  2. // @name GreasyFork Language Filter Remover
  3. // @name:en GreasyFork Language Filter Remover
  4. // @name:zh-CN GreasyFork 语言筛选器移除器
  5. // @name:zh-TW GreasyFork 語言過濾器移除工具
  6. // @name:ja GreasyFork 言語フィルタリムーバー
  7. // @name:es Removedor de filtro de idioma de GreasyFork
  8. // @name:fr Suppression du filtre de langue GreasyFork
  9. // @name:de GreasyFork Sprachfilter Entferner
  10. // @name:ru Удаление фильтра языка GreasyFork
  11. // @name:ko GreasyFork 언어 필터 제거기
  12. // @name:it Rimozione del filtro lingua di GreasyFork
  13. // @name:pt Removedor de filtro de idioma do GreasyFork
  14. // @name:ar مزيل فلتر اللغة لـGreasyFork
  15.  
  16. // @description This script modifies the URL on GreasyFork to always show scripts from all languages unless the user manually selects a different language.
  17. // @description:en This script modifies the URL on GreasyFork to always show scripts from all languages unless the user manually selects a different language.
  18. // @description:zh-CN 此脚本修改 GreasyFork 上的 URL,以始终显示所有语言的脚本,除非用户手动选择其他语言。
  19. // @description:zh-TW 這個腳本修改 GreasyFork 上的 URL,除非使用者手動選擇其他語言,否則預設會始終顯示所有語言的腳本。
  20. // @description:ja このスクリプトは、ユーザーが手動で異なる言語を選択しない限り、GreasyForkのURLを修正してすべての言語のスクリプトを常に表示します。
  21. // @description:es Este script modifica la URL en GreasyFork para mostrar siempre los scripts de todos los idiomas a menos que el usuario seleccione manualmente un idioma diferente.
  22. // @description:fr Ce script modifie l'URL sur GreasyFork pour toujours afficher les scripts de toutes les langues, sauf si l'utilisateur sélectionne manuellement une autre langue.
  23. // @description:de Dieses Skript ändert die URL auf GreasyFork, um immer Skripte in allen Sprachen anzuzeigen, es sei denn, der Benutzer wählt manuell eine andere Sprache.
  24. // @description:ru Этот скрипт изменяет URL на GreasyFork, чтобы всегда отображать скрипты на всех языках, если только пользователь не выбирает другой язык вручную.
  25. // @description:ko 이 스크립트는 사용자가 수동으로 다른 언어를 선택하지 않는 한 GreasyFork의 URL을 수정하여 모든 언어의 스크립트를 항상 표시합니다.
  26. // @description:it Questo script modifica l'URL su GreasyFork per mostrare sempre gli script in tutte le lingue, a meno che l'utente non selezioni manualmente un linguaggio diverso.
  27. // @description:pt Este script modifica a URL no GreasyFork para sempre mostrar scripts de todas as línguas, a menos que o usuário selecione manualmente uma língua diferente.
  28. // @description:ar يقوم هذا البرنامج النصي بتعديل URL على GreasyFork لعرض البرامج النصية من جميع اللغات دائمًا، ما لم يختر المستخدم لغة مختلفة يدويًا.
  29.  
  30. // @namespace https://mkpo.li/
  31. // @version 0.2.0
  32. // @grant none
  33. // @match https://greasyfork.org/*/scripts?*
  34. // @run-at document-end
  35. // @license MIT
  36. // ==/UserScript==
  37.  
  38. (() => {
  39. const currentURL = new URL(window.location.href);
  40. const searchParams = new URLSearchParams(currentURL.search);
  41.  
  42. // Check if the user manually clicked the filter locale link.
  43. const manuallyClicked = sessionStorage.getItem('filterLocaleClicked');
  44.  
  45. // If user did not manually select language, and filter_locale is not set, redirect to show scripts from all languages.
  46. if (manuallyClicked !== 'true' && !searchParams.has('filter_locale')) {
  47. searchParams.append('filter_locale', '0');
  48. currentURL.search = searchParams.toString();
  49. window.location.replace(currentURL.toString());
  50. }
  51.  
  52. // On a page where the locale can be filtered, add click listener to the filter locale link.
  53. const filterLocaleLink = document.querySelector('.sidebarred-main-content p a'); // Selector for the "Show English results only" or equivalent link
  54. if (filterLocaleLink) {
  55. filterLocaleLink.addEventListener('click', () => {
  56. sessionStorage.setItem('filterLocaleClicked', 'true');
  57. });
  58. }
  59. })();