Ver a proveniência

add syntax for rejecting domains

tags/2.0.1
Jonathan Cobb há 4 anos
ascendente
cometimento
dfd4343c60
2 ficheiros alterados com 20 adições e 8 eliminações
  1. +6
    -4
      src/main/java/bubble/abp/BlockList.java
  2. +14
    -4
      src/main/java/bubble/abp/BlockListSource.java

+ 6
- 4
src/main/java/bubble/abp/BlockList.java Ver ficheiro

@@ -16,17 +16,19 @@ import static org.cobbzilla.util.http.HttpContentTypes.isHtml;
@NoArgsConstructor @Accessors(chain=true) @Slf4j @NoArgsConstructor @Accessors(chain=true) @Slf4j
public class BlockList { public class BlockList {


@Getter private final Set<String> rejectList = new HashSet<>();
@Getter private final Set<BlockSpec> blacklist = new HashSet<>(); @Getter private final Set<BlockSpec> blacklist = new HashSet<>();
@Getter private final Set<BlockSpec> whitelist = new HashSet<>(); @Getter private final Set<BlockSpec> whitelist = new HashSet<>();


public void addToWhitelist(BlockSpec spec) { whitelist.add(spec); }

public void addToWhitelist(List<BlockSpec> specs) { for (BlockSpec spec : specs) addToWhitelist(spec); }
public void addToRejectList(String domain) { rejectList.add(domain); }
public void addToRejectList(List<String> domains) { for (String domain : domains) addToRejectList(domain); }


public void addToBlacklist(BlockSpec spec) { blacklist.add(spec); } public void addToBlacklist(BlockSpec spec) { blacklist.add(spec); }

public void addToBlacklist(List<BlockSpec> specs) { for (BlockSpec spec : specs) addToBlacklist(spec); } public void addToBlacklist(List<BlockSpec> specs) { for (BlockSpec spec : specs) addToBlacklist(spec); }


public void addToWhitelist(BlockSpec spec) { whitelist.add(spec); }
public void addToWhitelist(List<BlockSpec> specs) { for (BlockSpec spec : specs) addToWhitelist(spec); }

public void merge(BlockList other) { public void merge(BlockList other) {
for (BlockSpec allow : other.getWhitelist()) addToWhitelist(allow); for (BlockSpec allow : other.getWhitelist()) addToWhitelist(allow);
for (BlockSpec block : other.getBlacklist()) addToBlacklist(block); for (BlockSpec block : other.getBlacklist()) addToBlacklist(block);


+ 14
- 4
src/main/java/bubble/abp/BlockListSource.java Ver ficheiro

@@ -21,6 +21,8 @@ public class BlockListSource {
public static final String INCLUDE_PREFIX = "!#include "; public static final String INCLUDE_PREFIX = "!#include ";
public static final String TITLE_PREFIX = "!Title:"; public static final String TITLE_PREFIX = "!Title:";
public static final String DESCRIPTION_PREFIX = "!Description:"; public static final String DESCRIPTION_PREFIX = "!Description:";
public static final String WHITELIST_PREFIX = "@@";
public static final String REJECT_LIST_PREFIX = "~~";


@Getter @Setter private String url; @Getter @Setter private String url;


@@ -79,18 +81,24 @@ public class BlockListSource {
throw new IOException("addLine: error including path: " + includeUrl + ": " + shortError(e)); throw new IOException("addLine: error including path: " + includeUrl + ": " + shortError(e));
} }
} else if (lineNumber < 20 && empty(title) && line.replace(" ", "").startsWith(TITLE_PREFIX)) { } else if (lineNumber < 20 && empty(title) && line.replace(" ", "").startsWith(TITLE_PREFIX)) {
title = line.substring(line.indexOf(":")+1).trim();
title = getMetadata(line);


} else if (lineNumber < 20 && empty(description) && line.replace(" ", "").startsWith(DESCRIPTION_PREFIX)) { } else if (lineNumber < 20 && empty(description) && line.replace(" ", "").startsWith(DESCRIPTION_PREFIX)) {
description = line.substring(line.indexOf(":")+1).trim();
description = getMetadata(line);


} else if (line.startsWith("!")) { } else if (line.startsWith("!")) {
// comment, nothing to add // comment, nothing to add
return; return;
} }
try { try {
if (line.startsWith("@@")) {
blockList.addToWhitelist(BlockSpec.parse(line));
if (line.startsWith(WHITELIST_PREFIX)) {
blockList.addToWhitelist(BlockSpec.parse(line.substring(WHITELIST_PREFIX.length())));

} else if (line.startsWith(REJECT_LIST_PREFIX)) {
line = line.substring(REJECT_LIST_PREFIX.length());
blockList.addToBlacklist(BlockSpec.parse(line));
blockList.addToRejectList(line.trim());

} else { } else {
blockList.addToBlacklist(BlockSpec.parse(line)); blockList.addToBlacklist(BlockSpec.parse(line));
} }
@@ -99,6 +107,8 @@ public class BlockListSource {
} }
} }


private String getMetadata(String line) { return line.substring(line.indexOf(":")+1).trim(); }

public void addEntries(String[] entries) throws IOException { for (String entry : entries) addLine(null, 1, entry); } public void addEntries(String[] entries) throws IOException { for (String entry : entries) addLine(null, 1, entry); }


} }

Carregando…
Cancelar
Guardar