Feat: include my_reject in adguardhome

This commit is contained in:
SukkaW 2025-01-07 23:17:38 +08:00
parent e43ba55357
commit 4e9e206ec0
3 changed files with 21 additions and 18 deletions

View File

@ -6,7 +6,7 @@ import { processHosts, processFilterRules, processDomainLists } from './lib/pars
import { HOSTS, ADGUARD_FILTERS, PREDEFINED_WHITELIST, DOMAIN_LISTS, HOSTS_EXTRA, DOMAIN_LISTS_EXTRA, ADGUARD_FILTERS_EXTRA, PHISHING_DOMAIN_LISTS_EXTRA, ADGUARD_FILTERS_WHITELIST } from './constants/reject-data-source';
import { compareAndWriteFile } from './lib/create-file';
import { readFileByLine, readFileIntoProcessedArray } from './lib/fetch-text-by-line';
import { readFileIntoProcessedArray } from './lib/fetch-text-by-line';
import { task } from './trace';
// tldts-experimental is way faster than tldts, but very little bit inaccurate
// (since it is hashes based). But the result is still deterministic, which is
@ -21,7 +21,8 @@ import { DomainsetOutput } from './lib/create-file';
const readLocalRejectDomainsetPromise = readFileIntoProcessedArray(path.join(SOURCE_DIR, 'domainset/reject_sukka.conf'));
const readLocalRejectExtraDomainsetPromise = readFileIntoProcessedArray(path.join(SOURCE_DIR, 'domainset/reject_sukka_extra.conf'));
const readLocalRejectRulesetPromise = readFileByLine(path.join(SOURCE_DIR, 'non_ip/reject.conf'));
const readLocalRejectRulesetPromise = readFileIntoProcessedArray(path.join(SOURCE_DIR, 'non_ip/reject.conf'));
const readLocalMyRejectRulesetPromise = readFileIntoProcessedArray(path.join(SOURCE_DIR, 'non_ip/my_reject.conf'));
export const buildRejectDomainSet = task(require.main === module, __filename)(async (span) => {
const rejectBaseDescription = [
@ -171,7 +172,15 @@ export const buildRejectDomainSet = task(require.main === module, __filename)(as
'! Description: The domainset supports AD blocking, tracking protection, privacy protection, anti-phishing, anti-mining',
'!'
],
rejectOutput.adguardhome()
appendArrayInPlace(
rejectOutput.adguardhome(),
(
await new DomainsetOutput(span, 'my_reject')
.addFromRuleset(readLocalMyRejectRulesetPromise)
.addFromRuleset(readLocalRejectRulesetPromise)
.done()
).adguardhome()
)
),
path.join(OUTPUT_INTERNAL_DIR, 'reject-adguardhome.txt')
)

View File

@ -36,7 +36,7 @@ export abstract class RuleOutput<TPreprocessed = unknown> {
protected otherRules: string[] = [];
protected abstract type: 'domainset' | 'non_ip' | 'ip';
private pendingPromise: Promise<void> | null = null;
private pendingPromise: Promise<any> | null = null;
static readonly jsonToLines = (json: unknown): string[] => stringify(json).split('\n');
@ -201,8 +201,13 @@ export abstract class RuleOutput<TPreprocessed = unknown> {
}
}
addFromRuleset(source: AsyncIterable<string> | Iterable<string>) {
this.pendingPromise = (this.pendingPromise ||= Promise.resolve()).then(() => this.addFromRulesetPromise(source));
addFromRuleset(source: AsyncIterable<string> | Iterable<string> | Promise<Iterable<string>>) {
if (this.pendingPromise) {
this.pendingPromise = this.pendingPromise.then(() => source);
} else {
this.pendingPromise = Promise.resolve(source);
}
this.pendingPromise = this.pendingPromise.then((source) => this.addFromRulesetPromise(source));
return this;
}
@ -247,6 +252,7 @@ export abstract class RuleOutput<TPreprocessed = unknown> {
async done() {
await this.pendingPromise;
this.pendingPromise = null;
return this;
}
private guardPendingPromise() {

View File

@ -38,18 +38,6 @@ DOMAIN-SUFFIX,uhabo.com
DOMAIN-SUFFIX,xycdn.com
# >> Misc
DOMAIN-SUFFIX,parallels.com
DOMAIN-SUFFIX,www.parallelskorea.com
DOMAIN-SUFFIX,parallels.cn
DOMAIN-SUFFIX,parallels.de
DOMAIN-SUFFIX,parallels.es
DOMAIN-SUFFIX,parallels.fr
DOMAIN-SUFFIX,parallels.nl
DOMAIN-SUFFIX,parallels.pt
DOMAIN-SUFFIX,parallels.ru
DOMAIN-SUFFIX,parallelskorea.com
DOMAIN-SUFFIX,myparallels.com
DOMAIN-SUFFIX,my.parallels.com
DOMAIN-KEYWORD,bahoom
DOMAIN,daisydiskapp.com