mirror of
https://gitlab.com/KevinRoebert/ClearUrls
synced 2025-12-17 14:45:37 +07:00
Compare commits
20 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
db5bd659f0 | ||
|
|
6c775b9bba | ||
|
|
47dfe256eb | ||
|
|
3bac289758 | ||
|
|
53035f6bb2 | ||
|
|
86fb5c469a | ||
|
|
f1086f8889 | ||
|
|
bf27040864 | ||
|
|
ca7df33fa3 | ||
|
|
e017a8838e | ||
|
|
1987634095 | ||
|
|
6e2d082eea | ||
|
|
fa3a33962b | ||
|
|
abaa5fe2c6 | ||
|
|
992cd351af | ||
|
|
6992302e23 | ||
|
|
bc2e2510e8 | ||
|
|
1ec5838a98 | ||
|
|
c7b1f85672 | ||
|
|
ac2d5da41c |
3
.github/FUNDING.yml
vendored
Normal file
3
.github/FUNDING.yml
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
# These are supported funding model platforms
|
||||||
|
|
||||||
|
custom: ['https://www.paypal.me/KevinRoebert', 'https://www.buymeacoffee.com/KevinRoebert']# Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
|
||||||
@@ -3,12 +3,21 @@ image: debian:latest
|
|||||||
before_script:
|
before_script:
|
||||||
- export DEBIAN_FRONTEND= noninteractive
|
- export DEBIAN_FRONTEND= noninteractive
|
||||||
- apt-get update -y
|
- apt-get update -y
|
||||||
- apt-get install -y zip unzip nodejs
|
- apt-get install -y zip unzip nodejs jsonlint
|
||||||
|
|
||||||
stages:
|
stages:
|
||||||
|
- test
|
||||||
- build
|
- build
|
||||||
- deploy
|
- deploy
|
||||||
|
|
||||||
|
test rules:
|
||||||
|
stage: test
|
||||||
|
script:
|
||||||
|
- jsonlint-php data/data.min.json
|
||||||
|
only:
|
||||||
|
changes:
|
||||||
|
- data/data.min.json
|
||||||
|
|
||||||
hash rules:
|
hash rules:
|
||||||
stage: build
|
stage: build
|
||||||
script:
|
script:
|
||||||
@@ -21,16 +30,18 @@ hash rules:
|
|||||||
- data.minify.json
|
- data.minify.json
|
||||||
- rules.minify.hash
|
- rules.minify.hash
|
||||||
only:
|
only:
|
||||||
|
refs:
|
||||||
|
- merge_requests
|
||||||
- master
|
- master
|
||||||
|
changes:
|
||||||
|
- data/data.min.json
|
||||||
|
|
||||||
bundle addon:
|
bundle addon:
|
||||||
stage: build
|
stage: build
|
||||||
script:
|
script:
|
||||||
- zip ClearUrls -r -FS clearurls.js browser-polyfill.js manifest.json img/* external_js/* html/* core_js/* css/* fonts/* _locales/*
|
- zip ClearUrls -r -FS clearurls.js browser-polyfill.js manifest.json img/* external_js/* html/* core_js/* css/* fonts/* _locales/*
|
||||||
|
|
||||||
only:
|
only:
|
||||||
- master
|
- master
|
||||||
|
|
||||||
artifacts:
|
artifacts:
|
||||||
paths:
|
paths:
|
||||||
- ClearUrls.zip
|
- ClearUrls.zip
|
||||||
@@ -50,4 +61,11 @@ pages:
|
|||||||
paths:
|
paths:
|
||||||
- public
|
- public
|
||||||
only:
|
only:
|
||||||
|
refs:
|
||||||
|
- merge_requests
|
||||||
- master
|
- master
|
||||||
|
changes:
|
||||||
|
- GitLabPages/*
|
||||||
|
- img/clearurls.svg
|
||||||
|
- data/data.min.json
|
||||||
|
- build_tools/minifyDataJSON.js
|
||||||
18
CHANGELOG.md
18
CHANGELOG.md
@@ -4,6 +4,24 @@ All notable changes to this project will be documented in this file.
|
|||||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||||
|
|
||||||
|
## [1.19.0] - 2020-07-22
|
||||||
|
|
||||||
|
### Compatibility note
|
||||||
|
- Require Firefox >= 55
|
||||||
|
- Require Chrome >= 37
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- Changed url decoding to prevent endless loop
|
||||||
|
|
||||||
|
## [1.18.1] - 2020-06-07
|
||||||
|
|
||||||
|
### Compatibility note
|
||||||
|
- Require Firefox >= 55
|
||||||
|
- Require Chrome >= 37
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- Hotfix for the endless loop on new log limit ([#545](https://gitlab.com/KevinRoebert/ClearUrls/issues/545), [#541](https://gitlab.com/KevinRoebert/ClearUrls/issues/541), [#539](https://gitlab.com/KevinRoebert/ClearUrls/issues/539))
|
||||||
|
|
||||||
## [1.18.0] - 2020-06-06
|
## [1.18.0] - 2020-06-06
|
||||||
|
|
||||||
### Compatibility note
|
### Compatibility note
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<a href="https://www.buymeacoffee.com/KevinRoebert" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/default-orange.png" alt="Buy Me A Coffee" height="60"></a>
|
<a href="https://www.buymeacoffee.com/KevinRoebert" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/default-orange.png" alt="Buy Me A Coffee" height="60"></a>
|
||||||
|
|
||||||
[<img src="https://blog.mozilla.org/addons/files/2020/04/get-the-addon-fx-apr-2020.svg" alt="for Firefox" height="60px">](https://addons.mozilla.org/en-US/firefox/addon/clearurls/) [<img src="https://gitlab.com/KevinRoebert/ClearUrls/-/raw/master/promotion/MEA-button.png" alt="for Edge" height="60px">](https://microsoftedge.microsoft.com/addons/detail/mdkdmaickkfdekbjdoojfalpbkgaddei) [<img src="https://developer.chrome.com/webstore/images/ChromeWebStore_BadgeWBorder_v2_206x58.png" alt="for Chrome" height="60px">](https://chrome.google.com/webstore/detail/clearurls/lckanjgmijmafbedllaakclkaicjfmnk)
|
[<img src="https://blog.mozilla.org/addons/files/2020/04/get-the-addon-fx-apr-2020.svg" alt="for Firefox" height="60px">](https://addons.mozilla.org/firefox/addon/clearurls/) [<img src="https://gitlab.com/KevinRoebert/ClearUrls/-/raw/master/promotion/MEA-button.png" alt="for Edge" height="60px">](https://microsoftedge.microsoft.com/addons/detail/mdkdmaickkfdekbjdoojfalpbkgaddei) [<img src="https://developer.chrome.com/webstore/images/ChromeWebStore_BadgeWBorder_v2_206x58.png" alt="for Chrome" height="60px">](https://chrome.google.com/webstore/detail/clearurls/lckanjgmijmafbedllaakclkaicjfmnk)
|
||||||
|
|
||||||
# <sub><img src="https://gitlab.com/KevinRoebert/ClearUrls/raw/master/img/clearurls.svg" width="64px" height="64px"></sub> ClearURLs
|
# <sub><img src="https://gitlab.com/KevinRoebert/ClearUrls/raw/master/img/clearurls.svg" width="64px" height="64px"></sub> ClearURLs
|
||||||
|
|
||||||
|
|||||||
@@ -1,19 +1,19 @@
|
|||||||
{
|
{
|
||||||
"hash_status_code_1": {
|
"hash_status_code_1": {
|
||||||
"message": "最新の",
|
"message": "最新",
|
||||||
"description": "このステータスコードは、ClearURLs ルールの更新が利用できず、すべてが最新であることを示しています。"
|
"description": "このステータスコードは、ClearURLs ルールの更新が無く、すべてが最新であることを示しています。"
|
||||||
},
|
},
|
||||||
"hash_status_code_2": {
|
"hash_status_code_2": {
|
||||||
"message": "更新する",
|
"message": "更新する",
|
||||||
"description": "このステータスコードは、ClearURLs ルールが正常に更新されたことを示しています。"
|
"description": "このステータスコードは、ClearURLs ルールが正常に更新されたことを示しています。"
|
||||||
},
|
},
|
||||||
"hash_status_code_3": {
|
"hash_status_code_3": {
|
||||||
"message": "利用可能な更新",
|
"message": "更新が利用可能",
|
||||||
"description": "このステータスコードは、ClearURLs ルールの更新が利用可能であることを示しています。"
|
"description": "このステータスコードは、ClearURLs ルールの更新が利用可能であることを示しています。"
|
||||||
},
|
},
|
||||||
"hash_status_code_4": {
|
"hash_status_code_4": {
|
||||||
"message": "エラー",
|
"message": "エラー",
|
||||||
"description": "このステータスコードは、ClearURLs を正しく開始できなかったことを示しています。"
|
"description": "このステータスコードは、ClearURLs が正しく開始できなかったことを示しています。"
|
||||||
},
|
},
|
||||||
"hash_status_code_5": {
|
"hash_status_code_5": {
|
||||||
"message": "おっと!何かが間違っていた!",
|
"message": "おっと!何かが間違っていた!",
|
||||||
@@ -25,10 +25,10 @@
|
|||||||
},
|
},
|
||||||
"log_domain_blocked": {
|
"log_domain_blocked": {
|
||||||
"message": "このドメインはブロックされています",
|
"message": "このドメインはブロックされています",
|
||||||
"description": "この文字列は、ClearURLs ログのブロックされたドメインで使用されます。"
|
"description": "この文字列は、ClearURLs ログでブロックされたドメインで使用されます。"
|
||||||
},
|
},
|
||||||
"check_os_log": {
|
"check_os_log": {
|
||||||
"message": "[ClearURLs]:ログリスナーが追加されました。",
|
"message": "[ClearURLs]:ログリスナーを追加しました。",
|
||||||
"description": "この文字列は、ClearURLs ログの起動時に使用されます。"
|
"description": "この文字列は、ClearURLs ログの起動時に使用されます。"
|
||||||
},
|
},
|
||||||
"log_html_page_title": {
|
"log_html_page_title": {
|
||||||
@@ -36,7 +36,7 @@
|
|||||||
"description": "この文字列は、ログページのヘッダーとして使用されます。"
|
"description": "この文字列は、ログページのヘッダーとして使用されます。"
|
||||||
},
|
},
|
||||||
"log_html_table_head_1": {
|
"log_html_table_head_1": {
|
||||||
"message": "処理する前に",
|
"message": "処理前",
|
||||||
"description": "この文字列は、ログページのテーブルタイトルとして使用されます。"
|
"description": "この文字列は、ログページのテーブルタイトルとして使用されます。"
|
||||||
},
|
},
|
||||||
"log_html_table_head_2": {
|
"log_html_table_head_2": {
|
||||||
@@ -44,7 +44,7 @@
|
|||||||
"description": "この文字列は、ログページのテーブルタイトルとして使用されます。"
|
"description": "この文字列は、ログページのテーブルタイトルとして使用されます。"
|
||||||
},
|
},
|
||||||
"log_html_table_head_3": {
|
"log_html_table_head_3": {
|
||||||
"message": "規則",
|
"message": "ルール",
|
||||||
"description": "この文字列は、ログページのテーブルタイトルとして使用されます。"
|
"description": "この文字列は、ログページのテーブルタイトルとして使用されます。"
|
||||||
},
|
},
|
||||||
"log_html_table_head_4": {
|
"log_html_table_head_4": {
|
||||||
@@ -120,7 +120,7 @@
|
|||||||
"description": "この文字列は、ポップアップページのログボタンの名前として使用されます。"
|
"description": "この文字列は、ポップアップページのログボタンの名前として使用されます。"
|
||||||
},
|
},
|
||||||
"popup_html_log_head_title": {
|
"popup_html_log_head_title": {
|
||||||
"message": "記録を開く",
|
"message": "ログを開く",
|
||||||
"description": "この文字列は、ポップアップページのログボタンのタイトルとして使用されます。"
|
"description": "この文字列は、ポップアップページのログボタンのタイトルとして使用されます。"
|
||||||
},
|
},
|
||||||
"popup_html_report_button": {
|
"popup_html_report_button": {
|
||||||
@@ -148,7 +148,7 @@
|
|||||||
"description": "この文字列は、ポップアップページの統計情報切り替えボタンのタイトルとして使用されます。"
|
"description": "この文字列は、ポップアップページの統計情報切り替えボタンのタイトルとして使用されます。"
|
||||||
},
|
},
|
||||||
"settings_html_page_title": {
|
"settings_html_page_title": {
|
||||||
"message": "ClearURLs からの設定",
|
"message": "ClearURLs の設定",
|
||||||
"description": "この文字列は、設定ページのタイトルとして使用されます。"
|
"description": "この文字列は、設定ページのタイトルとして使用されます。"
|
||||||
},
|
},
|
||||||
"badged_color_label": {
|
"badged_color_label": {
|
||||||
@@ -200,7 +200,7 @@
|
|||||||
"description": "この文字列は、寄付ページを参照するために使用されます。"
|
"description": "この文字列は、寄付ページを参照するために使用されます。"
|
||||||
},
|
},
|
||||||
"clipboard_copy_link": {
|
"clipboard_copy_link": {
|
||||||
"message": "クリーンリンクの Location(位置情報)のコピー",
|
"message": "クリーンリンクをコピー",
|
||||||
"description": "この文字列は、コンテキストメニューでクリーンリンクをコピーするために使用されます。"
|
"description": "この文字列は、コンテキストメニューでクリーンリンクをコピーするために使用されます。"
|
||||||
},
|
},
|
||||||
"context_menu_enabled": {
|
"context_menu_enabled": {
|
||||||
@@ -230,5 +230,121 @@
|
|||||||
"cleaning_tool_clean_urls_label": {
|
"cleaning_tool_clean_urls_label": {
|
||||||
"message": "ここで、クリーンアップされた URL を見つけることができます。",
|
"message": "ここで、クリーンアップされた URL を見つけることができます。",
|
||||||
"description": "この文字列は、クリーン URL のクリーニングツールページのタイトルとして使用されます。"
|
"description": "この文字列は、クリーン URL のクリーニングツールページのタイトルとして使用されます。"
|
||||||
|
},
|
||||||
|
"local_hosts_skipping": {
|
||||||
|
"message": "ローカルホストの URL をスキップする (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, 100.64.0.0/10, 169.254.0.0/16, 127.0.0.1, localhost)",
|
||||||
|
"description": "この文字列は、ローカルホストのスキップスイッチのラベルとして使用されます。"
|
||||||
|
},
|
||||||
|
"local_hosts_skipping_title": {
|
||||||
|
"message": "ローカルホストの URL をスキップ",
|
||||||
|
"description": "この文字列は、ローカルホストのスキップスイッチのタイトルとして使用されます。"
|
||||||
|
},
|
||||||
|
"log_html_export_button": {
|
||||||
|
"message": "エクスポート",
|
||||||
|
"description": "この文字列は、ログページのエクスポートボタンに使用されます。"
|
||||||
|
},
|
||||||
|
"log_html_export_button_title": {
|
||||||
|
"message": "グローバルログをエクスポートする",
|
||||||
|
"description": "この文字列は、ログページのエクスポートボタンのタイトルとして使用されます。"
|
||||||
|
},
|
||||||
|
"log_html_import_button": {
|
||||||
|
"message": "インポート",
|
||||||
|
"description": "この文字列は、ログページのインポートボタンに使用されます。\n"
|
||||||
|
},
|
||||||
|
"log_html_import_button_title": {
|
||||||
|
"message": "グローバルログのインポート",
|
||||||
|
"description": "この文字列は、ログページのインポートボタンのタイトルとして使用されます。"
|
||||||
|
},
|
||||||
|
"setting_html_export_button": {
|
||||||
|
"message": "エクスポート",
|
||||||
|
"description": "この文字列は、設定ページのエクスポートボタンの名前として使用されます。\n"
|
||||||
|
},
|
||||||
|
"setting_html_export_button_title": {
|
||||||
|
"message": "すべてをエクスポートする",
|
||||||
|
"description": "この文字列は、設定ページのエクスポートボタンのタイトルとして使用されます。"
|
||||||
|
},
|
||||||
|
"setting_html_import_button": {
|
||||||
|
"message": "インポート",
|
||||||
|
"description": "この文字列は、設定画面のリセットボタンの名前として使用されます。"
|
||||||
|
},
|
||||||
|
"setting_html_import_button_title": {
|
||||||
|
"message": "すべてをインポートする",
|
||||||
|
"description": "この文字列は、設定ページのインポートボタンのタイトルとして使用されます。"
|
||||||
|
},
|
||||||
|
"setting_log_limit_label": {
|
||||||
|
"message": "ログのエントリを $LIMIT$ に制限します。",
|
||||||
|
"description": "この文字列は、ログリミットラベルの名前として使用されます。",
|
||||||
|
"placeholders": {
|
||||||
|
"limit": {
|
||||||
|
"content": "$1",
|
||||||
|
"example": "100"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"blocked_html_title": {
|
||||||
|
"message": "このサイトは <b>ClearURLs</b> よってブロックされました。",
|
||||||
|
"description": "この文字列は、ブロックされたサイトのページのタイトルとして使用されます。"
|
||||||
|
},
|
||||||
|
"blocked_html_body": {
|
||||||
|
"message": "このサイトは <b>ClearURLs</b> アドオンによってブロックされました。このサイトを訪問するには、アドオンを一時的に無効にするか、ClearURLs の設定でドメインブロックを無効にする必要があります。その対処後、下のボタンをクリックしてページを読み込むことができます。",
|
||||||
|
"description": "この文字列は、ブロックされたサイトページの本文として使用されます。"
|
||||||
|
},
|
||||||
|
"blocked_html_button": {
|
||||||
|
"message": "ページを見る",
|
||||||
|
"description": "この文字列は、ブロックされたサイトのページのボタンとして使用されます。"
|
||||||
|
},
|
||||||
|
"referral_marketing_enabled": {
|
||||||
|
"message": "Referral marketing(口コミなどの紹介商法)を許可する",
|
||||||
|
"description": "この文字列は、Referral marketing(口コミなどの紹介商法)スイッチのラベルとして使用されます。"
|
||||||
|
},
|
||||||
|
"referral_marketing_enabled_title": {
|
||||||
|
"message": "Referral marketing(口コミなどの紹介商法)を許可する",
|
||||||
|
"description": "この文字列は、Referral marketing(口コミなどの紹介商法)スイッチのタイトルとして使用されます。"
|
||||||
|
},
|
||||||
|
"watchdog": {
|
||||||
|
"message": "[ClearURLs]: システム監視ツールのウォッチドッグが問題を検出し、すでに $TIMES$ 回失敗しています。",
|
||||||
|
"description": "この文字列は、システム監視ツール・ウォッチドッグのテキストとして使用されます。",
|
||||||
|
"placeholders": {
|
||||||
|
"times": {
|
||||||
|
"content": "$1",
|
||||||
|
"example": "3"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"domain_blocking_enabled": {
|
||||||
|
"message": "ドメインブロックを許可する(AdBlocker を許可していないページで問題が発生する可能性があります。",
|
||||||
|
"description": "この文字列はドメインブロッキングスイッチのラベルとして使用されます。"
|
||||||
|
},
|
||||||
|
"domain_blocking_enabled_title": {
|
||||||
|
"message": "ドメインブロックを許可する(AdBlockerを許可していないページで問題が発生する可能性があります。",
|
||||||
|
"description": "この文字列は、ドメインブロッキングスイッチのタイトルとして使用されます。"
|
||||||
|
},
|
||||||
|
"log_ping_blocked": {
|
||||||
|
"message": "このハイパーリンク監査はブロックされました",
|
||||||
|
"description": "この文字列は、ClearURLs ログのハイパーリンク監査で使用されます。"
|
||||||
|
},
|
||||||
|
"ping_blocking_enabled": {
|
||||||
|
"message": "ハイパーリンク監査をブロックする (<a href='https://html.spec.whatwg.org/multipage/links.html#hyperlink-auditing' target='_blank'>この記事</a>も参照してください)",
|
||||||
|
"description": "この文字列は、ハイパーリンク監査ブロッキングスイッチのラベルとして使用されます。"
|
||||||
|
},
|
||||||
|
"ping_blocking_enabled_title": {
|
||||||
|
"message": "ハイパーリンク監査をブロックする",
|
||||||
|
"description": "この文字列は、ハイパーリンク監査ブロッキングスイッチのタイトルとして使用されます。"
|
||||||
|
},
|
||||||
|
"extension_description": {
|
||||||
|
"message": "URL からトラッキング要素を削除します。",
|
||||||
|
"description": "拡張機能の説明(最大 132 文字)"
|
||||||
|
},
|
||||||
|
"eTag_filtering_log": {
|
||||||
|
"message": "このリクエストから ETag ヘッダが削除されました。",
|
||||||
|
"description": "この文字列は、ClearURLs ログの ETag ヘッダフィルタリングで使用されます。"
|
||||||
|
},
|
||||||
|
"eTag_filtering_enabled": {
|
||||||
|
"message": "リクエストから ETag ヘッダをフィルタリングします (<a href='https://en.wikipedia.org/wiki/HTTP_ETag#Tracking_using_ETags' target='_blank'> この記事 </a> も参照してください)",
|
||||||
|
"description": "この文字列は、ETag ヘッダフィルタリングスイッチのラベルとして使用されます。"
|
||||||
|
},
|
||||||
|
"eTag_filtering_enabled_title": {
|
||||||
|
"message": "ETag ヘッダをフィルタリングします。ヒント: 最初に使用する前にキャッシュをクリアしなければなりません。",
|
||||||
|
"description": "この文字列は、ETag ヘッダフィルタリングスイッチのタイトルとして使用されます。"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -157,7 +157,7 @@ function setData(key, value) {
|
|||||||
storage[key] = value.split(',');
|
storage[key] = value.split(',');
|
||||||
break;
|
break;
|
||||||
case "logLimit":
|
case "logLimit":
|
||||||
storage[key] = Number(value);
|
storage[key] = Math.max(0, Number(value));
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
storage[key] = value;
|
storage[key] = value;
|
||||||
|
|||||||
@@ -101,6 +101,10 @@ function extractHost(url) {
|
|||||||
function checkLocalURL(url) {
|
function checkLocalURL(url) {
|
||||||
let host = extractHost(url);
|
let host = extractHost(url);
|
||||||
|
|
||||||
|
if(!host.match(/^\d/) && host !== 'localhost') {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
return ipRangeCheck(host, ["10.0.0.0/8", "172.16.0.0/12",
|
return ipRangeCheck(host, ["10.0.0.0/8", "172.16.0.0/12",
|
||||||
"192.168.0.0/16", "100.64.0.0/10",
|
"192.168.0.0/16", "100.64.0.0/10",
|
||||||
"169.254.0.0/16", "127.0.0.1"]) ||
|
"169.254.0.0/16", "127.0.0.1"]) ||
|
||||||
@@ -271,17 +275,29 @@ function getBrowser() {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Decodes an URL, also one that is encoded multiple times.
|
* Decodes an URL, also one that is encoded multiple times.
|
||||||
|
*
|
||||||
|
* @see https://stackoverflow.com/a/38265168
|
||||||
|
*
|
||||||
* @param url the url, that should be decoded
|
* @param url the url, that should be decoded
|
||||||
*/
|
*/
|
||||||
function decodeURL(url) {
|
function decodeURL(url) {
|
||||||
const rtn = decodeURIComponent(url);
|
let rtn = decodeURIComponent(url);
|
||||||
if (rtn.indexOf("http://") === -1 && rtn.indexOf("https://") === -1) {
|
|
||||||
return decodeURL(rtn);
|
while(isEncodedURI(rtn)) {
|
||||||
|
rtn = decodeURIComponent(rtn);
|
||||||
}
|
}
|
||||||
|
|
||||||
return rtn;
|
return rtn;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns true, iff the given URI is encoded
|
||||||
|
* @see https://stackoverflow.com/a/38265168
|
||||||
|
*/
|
||||||
|
function isEncodedURI(uri) {
|
||||||
|
return uri !== decodeURIComponent(uri || '')
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the value of at `key` an object. If the resolved value is `undefined`, the `defaultValue` is returned in its place.
|
* Gets the value of at `key` an object. If the resolved value is `undefined`, the `defaultValue` is returned in its place.
|
||||||
*
|
*
|
||||||
@@ -305,7 +321,7 @@ function handleError(error) {
|
|||||||
* @param rule the rule that triggered the process
|
* @param rule the rule that triggered the process
|
||||||
*/
|
*/
|
||||||
function pushToLog(beforeProcessing, afterProcessing, rule) {
|
function pushToLog(beforeProcessing, afterProcessing, rule) {
|
||||||
const limit = storage.logLimit;
|
const limit = Math.max(0, storage.logLimit);
|
||||||
if (storage.loggingStatus && limit !== 0 && !isNaN(limit)) {
|
if (storage.loggingStatus && limit !== 0 && !isNaN(limit)) {
|
||||||
while (storage.log.log.length >= limit
|
while (storage.log.log.length >= limit
|
||||||
|| storage.log.log.length >= logThreshold) {
|
|| storage.log.log.length >= logThreshold) {
|
||||||
|
|||||||
@@ -151,8 +151,7 @@
|
|||||||
"sourceid",
|
"sourceid",
|
||||||
"sxsrf",
|
"sxsrf",
|
||||||
"rlz",
|
"rlz",
|
||||||
"i-would-rather-use-firefox",
|
"i-would-rather-use-firefox"
|
||||||
"stick"
|
|
||||||
],
|
],
|
||||||
"referralMarketing": [
|
"referralMarketing": [
|
||||||
"referrer"
|
"referrer"
|
||||||
@@ -177,7 +176,8 @@
|
|||||||
"redirections": [
|
"redirections": [
|
||||||
".*google\\..*\\/.*url\\?.*url=((https|http)[^&]+)",
|
".*google\\..*\\/.*url\\?.*url=((https|http)[^&]+)",
|
||||||
".*google\\..*\\/.*url\\?.*q=((https|http)[^&]+)",
|
".*google\\..*\\/.*url\\?.*q=((https|http)[^&]+)",
|
||||||
".*google\\..*\\/.*adurl=([^&]+)"
|
".*google\\..*\\/.*adurl=([^&]+)",
|
||||||
|
".*google\\..*\\/amp\\/s\\/([^&]*)"
|
||||||
],
|
],
|
||||||
"forceRedirection": true
|
"forceRedirection": true
|
||||||
},
|
},
|
||||||
@@ -250,6 +250,7 @@
|
|||||||
"(%3F)?hmb_medium",
|
"(%3F)?hmb_medium",
|
||||||
"(%3F)?hmb_source",
|
"(%3F)?hmb_source",
|
||||||
"(%3F)?[\\?&]?ref[\\_]?",
|
"(%3F)?[\\?&]?ref[\\_]?",
|
||||||
|
"(%3F)?referrer",
|
||||||
"(%3F)?gclid",
|
"(%3F)?gclid",
|
||||||
"(%3F)?otm_[a-zA-Z_]*",
|
"(%3F)?otm_[a-zA-Z_]*",
|
||||||
"(%3F)?cmpid",
|
"(%3F)?cmpid",
|
||||||
@@ -262,7 +263,8 @@
|
|||||||
"(%3F)?dclid",
|
"(%3F)?dclid",
|
||||||
"Echobox",
|
"Echobox",
|
||||||
"(%3F)?spm",
|
"(%3F)?spm",
|
||||||
"(%3F)?vn(_[a-zA-Z]*)+"
|
"(%3F)?vn(_[a-zA-Z]*)+",
|
||||||
|
"(%3F)?tracking_source"
|
||||||
],
|
],
|
||||||
"referralMarketing": [],
|
"referralMarketing": [],
|
||||||
"rawRules": [],
|
"rawRules": [],
|
||||||
@@ -306,7 +308,8 @@
|
|||||||
".*agenciatributaria.gob.es.*",
|
".*agenciatributaria.gob.es.*",
|
||||||
".*login\\.ingbank\\.pl.*",
|
".*login\\.ingbank\\.pl.*",
|
||||||
"wss?:\\/\\/.*zoom\\.us.*",
|
"wss?:\\/\\/.*zoom\\.us.*",
|
||||||
".*api\\.bilibili\\.com.*"
|
".*api\\.bilibili\\.com.*",
|
||||||
|
".*onet\\.pl.*\\?.*utm_campaign=.*"
|
||||||
],
|
],
|
||||||
"redirections": [],
|
"redirections": [],
|
||||||
"forceRedirection": false
|
"forceRedirection": false
|
||||||
@@ -419,9 +422,7 @@
|
|||||||
"pageid",
|
"pageid",
|
||||||
"padding",
|
"padding",
|
||||||
"ls_ref",
|
"ls_ref",
|
||||||
"action_history",
|
"action_history"
|
||||||
"fbid",
|
|
||||||
"comment_id"
|
|
||||||
],
|
],
|
||||||
"referralMarketing": [],
|
"referralMarketing": [],
|
||||||
"rawRules": [],
|
"rawRules": [],
|
||||||
@@ -471,9 +472,12 @@
|
|||||||
],
|
],
|
||||||
"referralMarketing": [],
|
"referralMarketing": [],
|
||||||
"rawRules": [],
|
"rawRules": [],
|
||||||
"exceptions": [],
|
"exceptions": [
|
||||||
|
"reddit\\.app\\.link"
|
||||||
|
],
|
||||||
"redirections": [
|
"redirections": [
|
||||||
".*out\\.reddit\\.\\w{2,}\\/.*url=([^&]*)"
|
".*out\\.reddit\\.\\w{2,}\\/.*url=([^&]*)",
|
||||||
|
".*reddit\\.app\\.link.*\\$original_url=([^&]*)"
|
||||||
],
|
],
|
||||||
"forceRedirection": false
|
"forceRedirection": false
|
||||||
},
|
},
|
||||||
@@ -876,8 +880,8 @@
|
|||||||
],
|
],
|
||||||
"forceRedirection": false
|
"forceRedirection": false
|
||||||
},
|
},
|
||||||
"aliexpress.com": {
|
"aliexpress": {
|
||||||
"urlPattern": "https?:\\/\\/([a-zA-Z0-9-.]*\\.)?(aliexpress\\.com).*",
|
"urlPattern": "https?:\\/\\/([a-zA-Z0-9-.]*\\.)?(aliexpress)(\\.[a-zA-Z]{2,}).*",
|
||||||
"completeProvider": false,
|
"completeProvider": false,
|
||||||
"rules": [
|
"rules": [
|
||||||
"ws_ab_test",
|
"ws_ab_test",
|
||||||
@@ -886,7 +890,13 @@
|
|||||||
"algo_pvid",
|
"algo_pvid",
|
||||||
"gps-id",
|
"gps-id",
|
||||||
"scm[_a-zA-Z\\-]*",
|
"scm[_a-zA-Z\\-]*",
|
||||||
"pvid"
|
"cv",
|
||||||
|
"af",
|
||||||
|
"mall_affr",
|
||||||
|
"sk",
|
||||||
|
"dp",
|
||||||
|
"terminal_id",
|
||||||
|
"aff_request_id"
|
||||||
],
|
],
|
||||||
"referralMarketing": [],
|
"referralMarketing": [],
|
||||||
"rawRules": [],
|
"rawRules": [],
|
||||||
@@ -1075,6 +1085,18 @@
|
|||||||
"redirections": [],
|
"redirections": [],
|
||||||
"forceRedirection": false
|
"forceRedirection": false
|
||||||
},
|
},
|
||||||
|
"LinkedIn Learning": {
|
||||||
|
"urlPattern": "https?:\\/\\/([a-zA-Z0-9-.]*\\.)?(linkedin\\.com)\//learning.*",
|
||||||
|
"completeProvider": false,
|
||||||
|
"rules": [
|
||||||
|
"u"
|
||||||
|
],
|
||||||
|
"referralMarketing": [],
|
||||||
|
"rawRules": [],
|
||||||
|
"exceptions": [],
|
||||||
|
"redirections": [],
|
||||||
|
"forceRedirection": false
|
||||||
|
},
|
||||||
"smartredirect.de": {
|
"smartredirect.de": {
|
||||||
"urlPattern": "https?:\\/\\/([a-zA-Z0-9-.]*\\.)?(smartredirect\\.de).*",
|
"urlPattern": "https?:\\/\\/([a-zA-Z0-9-.]*\\.)?(smartredirect\\.de).*",
|
||||||
"completeProvider": false,
|
"completeProvider": false,
|
||||||
@@ -1611,7 +1633,6 @@
|
|||||||
"pos",
|
"pos",
|
||||||
"abtest",
|
"abtest",
|
||||||
"trackInfo",
|
"trackInfo",
|
||||||
"user_number_id",
|
|
||||||
"utkn",
|
"utkn",
|
||||||
"scene",
|
"scene",
|
||||||
"mytmenu",
|
"mytmenu",
|
||||||
@@ -1619,7 +1640,8 @@
|
|||||||
"lygClk",
|
"lygClk",
|
||||||
"impid",
|
"impid",
|
||||||
"bftTag",
|
"bftTag",
|
||||||
"bftRwd"
|
"bftRwd",
|
||||||
|
"spm"
|
||||||
],
|
],
|
||||||
"referralMarketing": [],
|
"referralMarketing": [],
|
||||||
"rawRules": [],
|
"rawRules": [],
|
||||||
@@ -1713,7 +1735,8 @@
|
|||||||
"lien",
|
"lien",
|
||||||
"aComposeInputSearch",
|
"aComposeInputSearch",
|
||||||
"type_recherche_forum",
|
"type_recherche_forum",
|
||||||
"add_mots"
|
"add_mots",
|
||||||
|
"countview"
|
||||||
],
|
],
|
||||||
"referralMarketing": [],
|
"referralMarketing": [],
|
||||||
"rawRules": [],
|
"rawRules": [],
|
||||||
@@ -1732,7 +1755,8 @@
|
|||||||
"RewriteLast",
|
"RewriteLast",
|
||||||
"lien",
|
"lien",
|
||||||
"aComposeInputSearch",
|
"aComposeInputSearch",
|
||||||
"type_recherche_forum"
|
"type_recherche_forum",
|
||||||
|
"countview"
|
||||||
],
|
],
|
||||||
"referralMarketing": [],
|
"referralMarketing": [],
|
||||||
"rawRules": [],
|
"rawRules": [],
|
||||||
@@ -1945,6 +1969,185 @@
|
|||||||
"exceptions": [],
|
"exceptions": [],
|
||||||
"redirections": [],
|
"redirections": [],
|
||||||
"forceRedirection": false
|
"forceRedirection": false
|
||||||
|
},
|
||||||
|
"epicgames.com": {
|
||||||
|
"urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-.]*\\.)?(epicgames)(\\.com).*",
|
||||||
|
"completeProvider": false,
|
||||||
|
"rules": [
|
||||||
|
"epic_affiliate",
|
||||||
|
"epic_gameId"
|
||||||
|
],
|
||||||
|
"referralMarketing": [],
|
||||||
|
"rawRules": [],
|
||||||
|
"exceptions": [],
|
||||||
|
"redirections": [],
|
||||||
|
"forceRedirection": false
|
||||||
|
},
|
||||||
|
"onet.pl": {
|
||||||
|
"urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-.]*\\.)?(onet)(\\.pl).*",
|
||||||
|
"completeProvider": false,
|
||||||
|
"rules": [
|
||||||
|
"srcc",
|
||||||
|
"utm_v",
|
||||||
|
"utm_medium",
|
||||||
|
"utm_source"
|
||||||
|
],
|
||||||
|
"referralMarketing": [],
|
||||||
|
"rawRules": [],
|
||||||
|
"exceptions": [],
|
||||||
|
"redirections": [],
|
||||||
|
"forceRedirection": false
|
||||||
|
},
|
||||||
|
"allrecipes.com": {
|
||||||
|
"urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-.]*\\.)?(allrecipes)(\\.com).*",
|
||||||
|
"completeProvider": false,
|
||||||
|
"rules": [
|
||||||
|
"internalSource",
|
||||||
|
"referringId",
|
||||||
|
"referringContentType",
|
||||||
|
"clickId"
|
||||||
|
],
|
||||||
|
"referralMarketing": [],
|
||||||
|
"rawRules": [],
|
||||||
|
"exceptions": [],
|
||||||
|
"redirections": [],
|
||||||
|
"forceRedirection": false
|
||||||
|
},
|
||||||
|
"europe1.fr": {
|
||||||
|
"urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-.]*\\.)?(europe1)(\\.fr).*",
|
||||||
|
"completeProvider": false,
|
||||||
|
"rules": [
|
||||||
|
"xtor"
|
||||||
|
],
|
||||||
|
"referralMarketing": [],
|
||||||
|
"rawRules": [],
|
||||||
|
"exceptions": [],
|
||||||
|
"redirections": [],
|
||||||
|
"forceRedirection": false
|
||||||
|
},
|
||||||
|
"effiliation.com": {
|
||||||
|
"urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-.]*\\.)?(effiliation)(\\.com).*",
|
||||||
|
"completeProvider": false,
|
||||||
|
"rules": [],
|
||||||
|
"referralMarketing": [],
|
||||||
|
"rawRules": [],
|
||||||
|
"exceptions": [],
|
||||||
|
"redirections": [
|
||||||
|
".*url=([^&]*)"
|
||||||
|
],
|
||||||
|
"forceRedirection": false
|
||||||
|
},
|
||||||
|
"argos.co.uk": {
|
||||||
|
"urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-.]*\\.)?(argos)(\\.co\\.uk).*",
|
||||||
|
"completeProvider": false,
|
||||||
|
"rules": [
|
||||||
|
"istCompanyId",
|
||||||
|
"istFeedId",
|
||||||
|
"istItemId",
|
||||||
|
"istBid",
|
||||||
|
"clickOrigin"
|
||||||
|
],
|
||||||
|
"referralMarketing": [],
|
||||||
|
"rawRules": [],
|
||||||
|
"exceptions": [],
|
||||||
|
"redirections": [],
|
||||||
|
"forceRedirection": false
|
||||||
|
},
|
||||||
|
"hlserve.com": {
|
||||||
|
"urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-.]*\\.)?(hlserve)(\\.com).*",
|
||||||
|
"completeProvider": false,
|
||||||
|
"rules": [],
|
||||||
|
"referralMarketing": [],
|
||||||
|
"rawRules": [],
|
||||||
|
"exceptions": [],
|
||||||
|
"redirections": [
|
||||||
|
".*dest=([^&]*)"
|
||||||
|
],
|
||||||
|
"forceRedirection": false
|
||||||
|
},
|
||||||
|
"thunderbird.net": {
|
||||||
|
"urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-.]*\\.)?(thunderbird)(\\.net).*",
|
||||||
|
"completeProvider": false,
|
||||||
|
"rules": [
|
||||||
|
"src"
|
||||||
|
],
|
||||||
|
"referralMarketing": [],
|
||||||
|
"rawRules": [],
|
||||||
|
"exceptions": [],
|
||||||
|
"redirections": [],
|
||||||
|
"forceRedirection": false
|
||||||
|
},
|
||||||
|
"cnbc.com": {
|
||||||
|
"urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-.]*\\.)?(cnbc)(\\.com).*",
|
||||||
|
"completeProvider": false,
|
||||||
|
"rules": [
|
||||||
|
"__source"
|
||||||
|
],
|
||||||
|
"referralMarketing": [],
|
||||||
|
"rawRules": [],
|
||||||
|
"exceptions": [],
|
||||||
|
"redirections": [],
|
||||||
|
"forceRedirection": false
|
||||||
|
},
|
||||||
|
"roblox.com": {
|
||||||
|
"urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-.]*\\.)?(roblox)(\\.com).*",
|
||||||
|
"completeProvider": false,
|
||||||
|
"rules": [
|
||||||
|
"refPageId"
|
||||||
|
],
|
||||||
|
"referralMarketing": [],
|
||||||
|
"rawRules": [],
|
||||||
|
"exceptions": [],
|
||||||
|
"redirections": [],
|
||||||
|
"forceRedirection": false
|
||||||
|
},
|
||||||
|
"cell.com": {
|
||||||
|
"urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-.]*\\.)?(cell)(\\.com).*",
|
||||||
|
"completeProvider": false,
|
||||||
|
"rules": [
|
||||||
|
"_returnURL"
|
||||||
|
],
|
||||||
|
"referralMarketing": [],
|
||||||
|
"rawRules": [],
|
||||||
|
"exceptions": [],
|
||||||
|
"redirections": [],
|
||||||
|
"forceRedirection": false
|
||||||
|
},
|
||||||
|
"academic.oup.com": {
|
||||||
|
"urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-.]*\\.)?(academic\\.)(oup)(\\.com).*",
|
||||||
|
"completeProvider": false,
|
||||||
|
"rules": [
|
||||||
|
"redirectedFrom"
|
||||||
|
],
|
||||||
|
"referralMarketing": [],
|
||||||
|
"rawRules": [],
|
||||||
|
"exceptions": [],
|
||||||
|
"redirections": [],
|
||||||
|
"forceRedirection": false
|
||||||
|
},
|
||||||
|
"flexlinkspro.com": {
|
||||||
|
"urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-.]*\\.)?(flexlinkspro)(\\.com).*",
|
||||||
|
"completeProvider": false,
|
||||||
|
"rules": [],
|
||||||
|
"referralMarketing": [],
|
||||||
|
"rawRules": [],
|
||||||
|
"exceptions": [],
|
||||||
|
"redirections": [
|
||||||
|
".*url=([^&]*)"
|
||||||
|
],
|
||||||
|
"forceRedirection": false
|
||||||
|
},
|
||||||
|
"agata88.com": {
|
||||||
|
"urlPattern": "(https:\\/\\/|http:\\/\\/)([a-zA-Z0-9-.]*\\.)?(flexlinkspro)(\\.com).*",
|
||||||
|
"completeProvider": false,
|
||||||
|
"rules": [
|
||||||
|
"source"
|
||||||
|
],
|
||||||
|
"referralMarketing": [],
|
||||||
|
"rawRules": [],
|
||||||
|
"exceptions": [],
|
||||||
|
"redirections": [],
|
||||||
|
"forceRedirection": false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -29,7 +29,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
|
|
||||||
<!-- Bootstrap CSS -->
|
<!-- Bootstrap CSS -->
|
||||||
<link rel="stylesheet" href="../css/bootstrap.min.css">
|
<link rel="stylesheet" href="../css/bootstrap.min.css">
|
||||||
<link rel="stylesheet" href="../css/dataTables.bootstrap.min.css">
|
|
||||||
<link rel="stylesheet" type="text/css" href="../css/core.css">
|
<link rel="stylesheet" type="text/css" href="../css/core.css">
|
||||||
<style>
|
<style>
|
||||||
td {
|
td {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"manifest_version": 2,
|
"manifest_version": 2,
|
||||||
"name": "ClearURLs",
|
"name": "ClearURLs",
|
||||||
"version": "1.18.0",
|
"version": "1.19.0",
|
||||||
"author": "Kevin Röbert",
|
"author": "Kevin Röbert",
|
||||||
"description": "__MSG_extension_description__",
|
"description": "__MSG_extension_description__",
|
||||||
"homepage_url": "https://gitlab.com/KevinRoebert/ClearUrls",
|
"homepage_url": "https://gitlab.com/KevinRoebert/ClearUrls",
|
||||||
|
|||||||
Reference in New Issue
Block a user