Quellcode durchsuchen

add syntax for rejecting domains

tags/2.0.1
Jonathan Cobb vor 4 Jahren
Ursprung
Commit
dfd4343c60
2 geänderte Dateien mit 20 neuen und 8 gelöschten Zeilen
  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 Datei anzeigen

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

@Getter private final Set<String> rejectList = new HashSet<>();
@Getter private final Set<BlockSpec> blacklist = 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(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) {
for (BlockSpec allow : other.getWhitelist()) addToWhitelist(allow);
for (BlockSpec block : other.getBlacklist()) addToBlacklist(block);


+ 14
- 4
src/main/java/bubble/abp/BlockListSource.java Datei anzeigen

@@ -21,6 +21,8 @@ public class BlockListSource {
public static final String INCLUDE_PREFIX = "!#include ";
public static final String TITLE_PREFIX = "!Title:";
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;

@@ -79,18 +81,24 @@ public class BlockListSource {
throw new IOException("addLine: error including path: " + includeUrl + ": " + shortError(e));
}
} 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)) {
description = line.substring(line.indexOf(":")+1).trim();
description = getMetadata(line);

} else if (line.startsWith("!")) {
// comment, nothing to add
return;
}
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 {
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); }

}

Laden…
Abbrechen
Speichern