1
0
mirror of https://github.com/gorhill/uBlock.git synced 2024-11-07 11:22:38 +01:00

ship this with 0.9.1.1

This commit is contained in:
gorhill 2015-03-15 14:07:30 -04:00
parent f648727042
commit a3abf7aa2b

View File

@ -69,9 +69,30 @@ function allFiltersApplyHandler() {
/******************************************************************************/ /******************************************************************************/
var handleImportFilePicker = function() { var handleImportFilePicker = function() {
// https://github.com/gorhill/uBlock/issues/1004
// Support extraction of filters from ABP backup file
var abpImporter = function(s) {
var reAbpExtractor = /\n\[Subscription\]\n+url=~[\x08-\x7E]+?\[Subscription filters\]([\x08-\x7E]*?)(?:\[Subscription\]|$)/ig;
var matches = reAbpExtractor.exec(s);
// Not an ABP backup file
if ( matches === null ) {
return s;
}
var out = [];
while ( matches !== null ) {
if ( matches.length !== 2 ) {
continue;
}
out.push(matches[1].trim().replace(/\\\[/g, '['));
matches = reAbpExtractor.exec(s);
}
return out.join('\n');
};
var fileReaderOnLoadHandler = function() { var fileReaderOnLoadHandler = function() {
var sanitized = abpImporter(this.result);
var textarea = uDom('#userFilters'); var textarea = uDom('#userFilters');
textarea.val([textarea.val(), this.result].join('\n').trim()); textarea.val(textarea.val().trim() + '\n' + sanitized);
userFiltersChanged(); userFiltersChanged();
}; };
var file = this.files[0]; var file = this.files[0];
@ -150,4 +171,3 @@ uDom.onLoad(function() {
// https://www.youtube.com/watch?v=UNilsLf6eW4 // https://www.youtube.com/watch?v=UNilsLf6eW4
})(); })();