Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 6 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -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.

Expand Down
4 changes: 4 additions & 0 deletions _locales/ar/messages.json
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
8 changes: 6 additions & 2 deletions _locales/en/messages.json
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
4 changes: 4 additions & 0 deletions _locales/ja/messages.json
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
8 changes: 6 additions & 2 deletions _locales/ru/messages.json
Original file line number Diff line number Diff line change
Expand Up @@ -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"
}
}
4 changes: 4 additions & 0 deletions _locales/zh_CN/messages.json
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
9 changes: 8 additions & 1 deletion src/css/manager.css
Original file line number Diff line number Diff line change
Expand Up @@ -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] {
Expand Down
18 changes: 18 additions & 0 deletions src/js/common.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,18 @@ 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';
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.-]+).*$');

Expand Down Expand Up @@ -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
});
}
}
)
Expand Down
34 changes: 25 additions & 9 deletions src/js/content_script.js
Original file line number Diff line number Diff line change
Expand Up @@ -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";
Expand Down Expand Up @@ -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 () {
Expand Down Expand Up @@ -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;

Expand Down Expand Up @@ -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();
Expand Down
37 changes: 37 additions & 0 deletions src/js/manager.js
Original file line number Diff line number Diff line change
Expand Up @@ -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"));

Expand All @@ -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,
Expand All @@ -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();
});


10 changes: 8 additions & 2 deletions src/manager.html
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,14 @@ <h1><img src="../images/icon.png">Personal Blocklist</h1>
<div id="export"></div>
</div>
<div id="options_box">
<input type="checkbox" name="pws_option" id="pws_option">
<label for="pws_option" id="pws_option_mes"></label>
<div class="box">
<input type="checkbox" name="pws_option" id="pws_option">
<label for="pws_option" id="pws_option_mes"></label>
</div>
<div class="box">
<input type="checkbox" name="show_links_option" id="show_links_option">
<label for="show_links_option" id="show_links_option_mes"></label>
</div>
</div>
<div id="content">
<div id="current-blocklink"></div>
Expand Down