Ver código fonte

Allow configuration of the blacklist

master
Fen Dweller 5 anos atrás
pai
commit
2bff0eae76
8 arquivos alterados com 67 adições e 9 exclusões
  1. +3
    -0
      background.js
  2. +2
    -0
      config.css
  3. +15
    -0
      config.html
  4. +17
    -0
      config.js
  5. +1
    -1
      filter.js
  6. +2
    -7
      inject.js
  7. +16
    -1
      manifest.json
  8. +11
    -0
      run-filter.js

+ 3
- 0
background.js Ver arquivo

@@ -0,0 +1,3 @@
chrome.runtime.onInstalled.addListener(() => {
chrome.storage.sync.set({"blacklist": JSON.stringify(["reminder"])});
});

+ 2
- 0
config.css Ver arquivo

@@ -0,0 +1,2 @@
#blacklist {
}

+ 15
- 0
config.html Ver arquivo

@@ -0,0 +1,15 @@
<html>
<head>
<title>FurAffinity Filter</title>
<link rel="stylesheet" href="config.css">
<script src="config.js"></script>
</head>
<body>
Blacklisted words:
<textarea id="blacklist">

</textarea>
<input type="checkbox" id="debug-info" name="debug-info">
<label for="debug-info">Show debug info in console</label>
</body>
</html>

+ 17
- 0
config.js Ver arquivo

@@ -0,0 +1,17 @@
document.addEventListener("DOMContentLoaded", e => {
const textArea = document.querySelector("#blacklist");

chrome.storage.sync.get("blacklist", result => {
if (result.blacklist) {
textArea.value = JSON.parse(result.blacklist).join("\n");
} else {
textArea.value = "";
}
});
textArea.addEventListener("change", e => {
const blacklist = e.target.value.toLowerCase().split("\n").map(line => line.trim()).filter(line => line.length > 0);

chrome.storage.sync.set({"blacklist": JSON.stringify(blacklist)});
});
});

+ 1
- 1
filter.js Ver arquivo

@@ -3,4 +3,4 @@
const script = document.createElement("script");
script.src = chrome.extension.getURL("inject.js");
(document.head || document.documentElement).appendChild(script);
script.onload = script.remove;
script.onload = script.remove;

+ 2
- 7
inject.js Ver arquivo

@@ -1,15 +1,10 @@
"use strict";

_fajs.push(['fa_filter_execute']);

function fa_filter_execute() {
function fa_filter_execute(blacklist) {
console.log(blacklist);
const gallery = document.querySelector("#gallery-frontpage-submissions");
const submissions = gallery.querySelectorAll("figure");
const blacklist = [
"reminder",
]
submissions.forEach(sub => {
const title = sub.querySelector("figcaption > p > a").title.toLowerCase();


+ 16
- 1
manifest.json Ver arquivo

@@ -2,16 +2,31 @@
"name": "FurAffinity Filter",
"version": "0.1",
"description": "Filters out reminder/YCH/adopt spam from the front page",
"permissions": ["tabs", "*://www.furaffinity.net/"],
"permissions": [
"tabs",
"*://www.furaffinity.net/",
"storage"
],
"web_accessible_resources": [
"inject.js"
],
"background": {
"scripts": ["background.js"]
},
"content_scripts": [
{
"run_at": "document_start",
"matches": ["*://www.furaffinity.net/"],
"js": ["filter.js"]
},
{
"run_at": "document_end",
"matches": ["*://www.furaffinity.net/"],
"js": ["run-filter.js"]
}
],
"browser_action": {
"default_popup": "config.html"
},
"manifest_version": 2
}

+ 11
- 0
run-filter.js Ver arquivo

@@ -0,0 +1,11 @@

chrome.storage.sync.get("blacklist", result => {
const runScript = document.createElement("script");
console.log("Result: " + result.blacklist);
console.log(JSON.parse(result.blacklist));
runScript.textContent = "(" + function(blacklist) {
console.log(blacklist)
fa_filter_execute(blacklist);
} + ")(" + result.blacklist + ")";
(document.head || document.documentElement).appendChild(runScript);
});

Carregando…
Cancelar
Salvar