Skip to content

Commit

Permalink
#68 optimized filters
Browse files Browse the repository at this point in the history
  • Loading branch information
Mizzick committed Nov 27, 2015
1 parent e510815 commit e861666
Show file tree
Hide file tree
Showing 29 changed files with 41,344 additions and 301 deletions.
20 changes: 12 additions & 8 deletions Compiler/src/main/java/com/adguard/compiler/FilterUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,8 @@ public class FilterUtils {

private final static String GROUPS_METADATA_DOWNLOAD_URL = "http://adtidy.org/get-groups.html";
private final static String FILTERS_METADATA_DOWNLOAD_URL = "http://adtidy.org/get-filters.html";
private final static String FILTER_DOWNLOAD_URL = "http://chrome.adtidy.org/getfilter.html?filterid=%s&key=4DDBE80A3DA94D819A00523252FB6380";
public final static String FILTER_DOWNLOAD_URL = "http://chrome.adtidy.org/getfilter.html?filterid=%s&key=4DDBE80A3DA94D819A00523252FB6380";
public final static String MOBILE_FILTER_DOWNLOAD_URL = "http://mobile.adtidy.org/api/1.0/getfilter.html?filterid=%s&key=4DDBE80A3DA94D819A00523252FB6380";

private final static int ENGLISH_FILTER_ID = 2;
private final static int MOBILE_SAFARI_FILTER_ID = 12;
Expand All @@ -43,12 +44,13 @@ public class FilterUtils {
* Downloads filters from our backend server
*
* @param source Path to extension sources
* @param filtersDir
* @param filterDownloadUrl
* @throws IOException
*/
public static void updateLocalFilters(File source) throws IOException {
public static void updateLocalFilters(File source, File filtersDir, String filterDownloadUrl) throws IOException {

File dest = new File(source, "tmp-filters");
File filtersDir = new File(source, "filters");

List<File> filesToCopy = new ArrayList<File>();
try {
Expand All @@ -60,7 +62,7 @@ public static void updateLocalFilters(File source) throws IOException {

log.debug("Start download filter " + filterId);

String downloadUrl = String.format(FILTER_DOWNLOAD_URL, filterId);
String downloadUrl = String.format(filterDownloadUrl, filterId);
String response = UrlUtils.downloadString(new URL(downloadUrl), "UTF-8");

File filterFile = new File(dest, "filter_" + filterId + ".txt");
Expand All @@ -85,11 +87,12 @@ public static void updateLocalFilters(File source) throws IOException {
* It contains big javascript rule for youtube ad blocking.
*
* @param destDir Destination directory.
* @param filterDownloadUrl
* @throws IOException
*/
public static void loadEnglishFilterForSafari(File destDir) throws IOException {
public static void loadEnglishFilterForSafari(File destDir, String filterDownloadUrl) throws IOException {
log.info("Start download filter ENGLISH filter for safari");
String downloadUrl = String.format(FILTER_DOWNLOAD_URL, ENGLISH_FILTER_ID);
String downloadUrl = String.format(filterDownloadUrl, ENGLISH_FILTER_ID);
String response = UrlUtils.downloadString(new URL(downloadUrl), "UTF-8", USER_AGENT_SAFARI);
FileUtils.writeStringToFile(new File(destDir, "filter_" + ENGLISH_FILTER_ID + ".txt"), response, "utf-8");
}
Expand All @@ -100,11 +103,12 @@ public static void loadEnglishFilterForSafari(File destDir) throws IOException {
* This filters contains some special fix rules for safari content blocker
*
* @param destDir Destination directory.
* @param filterDownloadUrl
* @throws IOException
*/
public static void loadMobileSafariFilter(File destDir) throws IOException {
public static void loadMobileSafariFilter(File destDir, String filterDownloadUrl) throws IOException {
log.info("Start download filter mobile safari filter");
String downloadUrl = String.format(FILTER_DOWNLOAD_URL, MOBILE_SAFARI_FILTER_ID);
String downloadUrl = String.format(filterDownloadUrl, MOBILE_SAFARI_FILTER_ID);
String response = UrlUtils.downloadString(new URL(downloadUrl), "UTF-8");
FileUtils.writeStringToFile(new File(destDir, "filter_" + MOBILE_SAFARI_FILTER_ID + ".txt"), response, "utf-8");
}
Expand Down
9 changes: 6 additions & 3 deletions Compiler/src/main/java/com/adguard/compiler/Main.java
Original file line number Diff line number Diff line change
Expand Up @@ -89,16 +89,19 @@ public static void main(String[] args) throws Exception {

if (updateFilters) {
FilterUtils.updateGroupsAndFiltersMetadata(source);
FilterUtils.updateLocalFilters(source);
FilterUtils.updateLocalFilters(source, new File(source, "filters"), FilterUtils.FILTER_DOWNLOAD_URL);
FilterUtils.updateLocalFilters(source, new File(source, "filters_mobile"), FilterUtils.MOBILE_FILTER_DOWNLOAD_URL);
}

Set<String> scriptRules = FilterUtils.getScriptRules(source);

File buildResult = createBuild(source, dest, scriptRules, extensionId, updateUrl, browser, version, branch);

if (updateFilters && browser == Browser.SAFARI) {
FilterUtils.loadEnglishFilterForSafari(new File(buildResult, "filters"));
FilterUtils.loadMobileSafariFilter(new File(buildResult, "filters"));
FilterUtils.loadEnglishFilterForSafari(new File(buildResult, "filters"), FilterUtils.FILTER_DOWNLOAD_URL);
FilterUtils.loadEnglishFilterForSafari(new File(buildResult, "filters_mobile"), FilterUtils.MOBILE_FILTER_DOWNLOAD_URL);
FilterUtils.loadMobileSafariFilter(new File(buildResult, "filters"), FilterUtils.FILTER_DOWNLOAD_URL);
FilterUtils.loadMobileSafariFilter(new File(buildResult, "filters_mobile"), FilterUtils.MOBILE_FILTER_DOWNLOAD_URL);
}

File packedFile = null;
Expand Down
4 changes: 4 additions & 0 deletions Extension/browser/firefox/lib/prefs.js
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,10 @@ var Prefs = exports.Prefs = {
var url = "filters/filter_" + filterId + ".txt";
return self.data.url(url);
},
getLocalMobileFilterPath: function (filterId) {
var url = "filters_mobile/filter_" + filterId + ".txt";
return self.data.url(url);
},
localGroupsMetadataPath: self.data.url('filters/groups.xml'),
localFiltersMetadataPath: self.data.url('filters/filters.xml'),
safebrowsingPagePath: 'sb.html',
Expand Down
4 changes: 4 additions & 0 deletions Extension/browser/webkit/prefs.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,10 @@ var Prefs = exports.Prefs = {
var url = "filters/filter_" + filterId + ".txt";
return ext.getURL(url);
},
getLocalMobileFilterPath: function (filterId) {
var url = "filters_mobile/filter_" + filterId + ".txt";
return ext.getURL(url);
},
localGroupsMetadataPath: ext.getURL('filters/groups.xml'),
localFiltersMetadataPath: ext.getURL('filters/filters.xml'),
safebrowsingPagePath: ext.getURL("pages/sb.html"),
Expand Down
Loading

0 comments on commit e861666

Please sign in to comment.