This commit is contained in:
syuilo 2019-04-13 14:11:15 +09:00
parent 110240c76b
commit ff1bd37bd7

View File

@ -34,7 +34,7 @@ export default define(meta, async (ps) => {
if (ps.domain) { if (ps.domain) {
const whiteDomains = ps.domain.split(' ').filter(x => !x.startsWith('-')); const whiteDomains = ps.domain.split(' ').filter(x => !x.startsWith('-'));
const blackDomains = ps.domain.split(' ').filter(x => x.startsWith('-')); const blackDomains = ps.domain.split(' ').filter(x => x.startsWith('-')).map(x => x.substr(1));
if (whiteDomains.length > 0) { if (whiteDomains.length > 0) {
query.andWhere(new Brackets(qb => { query.andWhere(new Brackets(qb => {
@ -53,11 +53,17 @@ export default define(meta, async (ps) => {
if (blackDomains.length > 0) { if (blackDomains.length > 0) {
query.andWhere(new Brackets(qb => { query.andWhere(new Brackets(qb => {
for (const blackDomain of blackDomains) { for (const blackDomain of blackDomains) {
const subDomains = blackDomain.split('.');
let i = 0; let i = 0;
for (const subDomain of blackDomain.split('.')) { for (const subDomain of subDomains) {
const p = `blackSubDomain_${subDomain}_${i}`; const p = `blackSubDomain_${subDomain}_${i}`;
// SQL is 1 based, so we need '+ 1' if (i === subDomains.length - 1) {
qb.andWhere(`log.domain[${i + 1}] != :${p}`, { [p]: subDomain }); // SQL is 1 based, so we need '+ 1'
qb.andWhere(`log.domain[${i + 1}] != :${p}`, { [p]: subDomain });
} else {
// SQL is 1 based, so we need '+ 1'
qb.andWhere(`log.domain[${i + 1}] == :${p}`, { [p]: subDomain });
}
i++; i++;
} }
} }