diff --git a/README.md b/README.md index 8bc3076..a18fc31 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,13 @@ ![blocklist](https://user-images.githubusercontent.com/33715405/73519508-a67e9580-4444-11ea-8e4a-41f0ff7deadd.png) -Personal Blocklist(not by Google) is an alternative chrome extesions of Personal Blocklist(by Google). +Personal Blocklist(not by Google) is an alternative chrome extension of Personal Blocklist(by Google). -the extension has some functions below. +The extension has some functions below: -- block bad websites from google search result. -- import button, adding multiple urls to blocklist. -- export button, sharing your blocklist to others. +- Block bad websites from google search results. +- Show "Block URL" links under search results. +- "Import" button, adding multiple URLs to the blocklist. +- "Export" button, sharing your blocklist to others. Personal Blocklist(not by Google) is published in Chrome Web Store. diff --git a/_locales/ar/messages.json b/_locales/ar/messages.json index c5d2814..8eb0626 100644 --- a/_locales/ar/messages.json +++ b/_locales/ar/messages.json @@ -65,6 +65,10 @@ "message": "في رابط البحث &pws=0 إيقاف الحظر عند إضافة", "description": "stop blocking when using pws=0 at URL" }, + "show_links_option_mes": { + "message": "Show \"Block URL\" links under search results", + "description": "Show \"Block URL\" links under search results" + }, "save": { "message": "حفظ", "description": "Save" diff --git a/_locales/en/messages.json b/_locales/en/messages.json index 8456847..e3ebfed 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -66,8 +66,12 @@ "description": "Block list of patterns" }, "pws_option_mes": { - "message": "stop blocking when using pws=0 at URL", - "description": "stop blocking when using pws=0 at URL" + "message": "Stop blocking when using pws=0 at URL", + "description": "Stop blocking when using pws=0 at URL" + }, + "show_links_option_mes": { + "message": "Show \"Block URL\" links under search results", + "description": "Show \"Block URL\" links under search results" }, "save": { "message": "Save", diff --git a/_locales/ja/messages.json b/_locales/ja/messages.json index e240a42..273f39e 100644 --- a/_locales/ja/messages.json +++ b/_locales/ja/messages.json @@ -65,6 +65,10 @@ "message": "URLにpws=0を使用時、ブロックしない", "description": "stop blocking when using pws=0 at URL" }, + "show_links_option_mes": { + "message": "Show \"Block URL\" links under search results", + "description": "Show \"Block URL\" links under search results" + }, "save": { "message": "保存", "description": "Save" diff --git a/_locales/ru/messages.json b/_locales/ru/messages.json index c2aa688..c260601 100644 --- a/_locales/ru/messages.json +++ b/_locales/ru/messages.json @@ -78,7 +78,11 @@ "description": "Назад" }, "pws_option_mes": { - "message": "прекращение блокировки при использовании pws=0 по URL", - "description": "прекращение блокировки при использовании pws=0 по URL" + "message": "Прекращение блокировки при использовании pws=0 по URL", + "description": "Прекращение блокировки при использовании pws=0 по URL" + }, + "show_links_option_mes": { + "message": "Показывать ссылки \"Block URL\" под результатами поиска", + "description": "Show \"Block URL\" links under search results" } } \ No newline at end of file diff --git a/_locales/zh_CN/messages.json b/_locales/zh_CN/messages.json index f38e670..8f86947 100644 --- a/_locales/zh_CN/messages.json +++ b/_locales/zh_CN/messages.json @@ -45,6 +45,10 @@ "message": "网址上使用pws = 0时停止阻止", "description": "stop blocking when using pws=0 at URL" }, + "show_links_option_mes": { + "message": "Show \"Block URL\" links under search results", + "description": "Show \"Block URL\" links under search results" + }, "save": { "message": "拯救", "description": "Save" diff --git a/src/css/manager.css b/src/css/manager.css index 5c00860..3004cfb 100644 --- a/src/css/manager.css +++ b/src/css/manager.css @@ -129,7 +129,14 @@ textarea { } #options_box { - padding: 20px 20px; + display:flex; + flex-direction: column; +} + +.box { + padding-left: 20px; + padding-right: 20px; + margin-top: 20px; } input[type=checkbox] { diff --git a/src/js/common.js b/src/js/common.js index 6bf4aec..d74c1b8 100644 --- a/src/js/common.js +++ b/src/js/common.js @@ -4,6 +4,8 @@ blocklist.common = {}; blocklist.common.pws_option_val = "off"; +blocklist.common.show_links_option_val = "off"; + blocklist.common.GET_BLOCKLIST = 'getBlocklist'; blocklist.common.ADD_TO_BLOCKLIST = 'addToBlocklist'; blocklist.common.ADD_LIST_TO_BLOCKLIST = 'addListToBlocklist'; @@ -11,6 +13,9 @@ blocklist.common.DELETE_FROM_BLOCKLIST = 'deleteFromBlocklist'; blocklist.common.GET_PWS_OPTION_VAL = "getPwsOptionVal"; blocklist.common.CHANGE_PWS_OPTION_VAL = "changePwsOptionVal"; +blocklist.common.GET_SHOW_LINKS_OPTION_VAL = "getShowLinksOptionVal"; +blocklist.common.CHANGE_SHOW_LINKS_OPTION_VAL = "changeShowLinksOptionVal"; + blocklist.common.HOST_REGEX = new RegExp( '^https?://(www[.])?([0-9a-zA-Z.-]+).*$'); @@ -86,6 +91,19 @@ blocklist.common.startBackgroundListeners = function () { sendResponse({ pws_option: request.val }); + } else if (request.type == blocklist.common.GET_SHOW_LINKS_OPTION_VAL) { + if (!localStorage.blocklist_show_links_option) + localStorage['blocklist_show_links_option'] = "off"; + + sendResponse({ + show_links_option: localStorage['blocklist_show_links_option'] + }); + } else if (request.type == blocklist.common.CHANGE_SHOW_LINKS_OPTION_VAL) { + localStorage['blocklist_show_links_option'] = request.val; + + sendResponse({ + show_links_option: request.val + }); } } ) diff --git a/src/js/content_script.js b/src/js/content_script.js index 178832a..4936d1e 100644 --- a/src/js/content_script.js +++ b/src/js/content_script.js @@ -7,6 +7,8 @@ blocklist.searchpage.mutationObserver = null; blocklist.searchpage.pws_option = "off"; +blocklist.searchpage.show_links_option = "off"; + blocklist.searchpage.SEARCH_RESULT_DIV_BOX = "div.g"; blocklist.searchpage.LINK_TAG = "div.yuRUbf > a"; @@ -106,15 +108,17 @@ blocklist.searchpage.addBlocklistFromSearchResult = function (hostlink, searchre }; blocklist.searchpage.insertAddBlockLinkInSearchResult = function (searchResult, hostlink) { - var insertLink = document.createElement('p'); - insertLink.innerHTML = chrome.i18n.getMessage("addBlocklist", hostlink); - insertLink.style.cssText = - "color:#1a0dab;margin:0;text-decoration:underline;cursor: pointer;"; - searchResult.appendChild(insertLink); - - insertLink.addEventListener("click", function () { - blocklist.searchpage.addBlocklistFromSearchResult(hostlink, searchResult); - }, false); + if (blocklist.searchpage.show_links_option == "on") { + var insertLink = document.createElement('p'); + insertLink.innerHTML = chrome.i18n.getMessage("addBlocklist", hostlink); + insertLink.style.cssText = + "display:inline-block;color:#1a0dab;margin:0;text-decoration:underline;cursor:pointer;"; + searchResult.appendChild(insertLink); + + insertLink.addEventListener("click", function () { + blocklist.searchpage.addBlocklistFromSearchResult(hostlink, searchResult); + }, false); + } }; blocklist.searchpage.isPwsFeatureUsed = function () { @@ -161,10 +165,21 @@ blocklist.searchpage.getPwsOption = function () { blocklist.searchpage.handleGetPwsOptionResponse); } +blocklist.searchpage.getShowLinksOption = function () { + chrome.runtime.sendMessage({ + type: blocklist.common.GET_SHOW_LINKS_OPTION_VAL + }, + blocklist.searchpage.handleGetShowLinksOptionResponse); +} + blocklist.searchpage.handleGetPwsOptionResponse = function (response) { blocklist.searchpage.pws_option = response.pws_option; } +blocklist.searchpage.handleGetShowLinksOptionResponse = function (response) { + blocklist.searchpage.show_links_option = response.show_links_option; +} + blocklist.searchpage.initMutationObserver = function () { if (blocklist.searchpage.mutationObserver != null) return; @@ -197,6 +212,7 @@ blocklist.searchpage.modifySearchResultsAdded = function (mutations) { blocklist.searchpage.refreshBlocklist(); blocklist.searchpage.getPwsOption(); +blocklist.searchpage.getShowLinksOption(); document.addEventListener("DOMContentLoaded", function () { blocklist.searchpage.initMutationObserver(); diff --git a/src/js/manager.js b/src/js/manager.js index 4f77606..23d81fa 100644 --- a/src/js/manager.js +++ b/src/js/manager.js @@ -248,6 +248,13 @@ blocklist.manager.createPwsOptionBox = function () { blocklist.manager.handlePwsOptionBox); } +blocklist.manager.createShowLinksOptionBox = function () { + chrome.runtime.sendMessage({ + type: blocklist.common.GET_SHOW_LINKS_OPTION_VAL + }, + blocklist.manager.handleShowLinksOptionBox); + } + blocklist.manager.handlePwsOptionBox = function (response) { $("#pws_option_mes").text(chrome.i18n.getMessage("pws_option_mes")); @@ -260,6 +267,18 @@ blocklist.manager.handlePwsOptionBox = function (response) { }); } +blocklist.manager.handleShowLinksOptionBox = function (response) { + $("#show_links_option_mes").text(chrome.i18n.getMessage("show_links_option_mes")); + + if (response.show_links_option == "on") + $("#show_links_option").prop("checked", true); + + $("#show_links_option").on("change", function () { + let val = $("#show_links_option").prop("checked") ? "on" : "off"; + blocklist.manager.clickShowLinksOptionCheckbox(val); + }); + } + blocklist.manager.clickPwsOptionCheckbox = function (val) { chrome.runtime.sendMessage({ type: blocklist.common.CHANGE_PWS_OPTION_VAL, @@ -268,17 +287,35 @@ blocklist.manager.clickPwsOptionCheckbox = function (val) { blocklist.manager.handlePwsOptionCheckboxResult); }; +blocklist.manager.clickShowLinksOptionCheckbox = function (val) { + chrome.runtime.sendMessage({ + type: blocklist.common.CHANGE_SHOW_LINKS_OPTION_VAL, + val: val + }, + blocklist.manager.handleShowLinksOptionCheckboxResult); + + chrome.tabs.query({active: true, currentWindow: true}, function(tabs) { + chrome.tabs.reload(tabs[0].id); + }); + }; + blocklist.manager.handlePwsOptionCheckboxResult = function (response) { if (blocklist.common.pws_option_val) blocklist.common.pws_option_val = response.pws_option; } +blocklist.manager.handleShowLinksOptionCheckboxResult = function (response) { + if (blocklist.common.show_links_option_val) + blocklist.common.show_links_option_val = response.show_links_option; + } + document.addEventListener('DOMContentLoaded', function () { blocklist.manager.refresh(); blocklist.manager.localizeHeader(); blocklist.manager.createIoButton(); blocklist.manager.createBackButton(); blocklist.manager.createPwsOptionBox(); + blocklist.manager.createShowLinksOptionBox(); }); diff --git a/src/manager.html b/src/manager.html index f63d38f..c14efef 100644 --- a/src/manager.html +++ b/src/manager.html @@ -33,8 +33,14 @@

Personal Blocklist

- - +
+ + +
+
+ + +