feat(filtering): negative name filter

This commit is contained in:
Alexey Kasyanchuk 2018-05-16 19:20:16 +03:00
parent 090a34fb87
commit 21dedba555
3 changed files with 20 additions and 1 deletions

View File

@ -108,8 +108,21 @@ export default class ConfigPage extends Page {
> >
<MenuItem value={String.raw`^[А-Яа-я0-9A-Za-z.!@?#"$%&:;() *\+,\/;\-=[\\\]\^_{|}<>\u0400-\u04FF]+$`} primaryText="Russian + English only (With symbols)" /> <MenuItem value={String.raw`^[А-Яа-я0-9A-Za-z.!@?#"$%&:;() *\+,\/;\-=[\\\]\^_{|}<>\u0400-\u04FF]+$`} primaryText="Russian + English only (With symbols)" />
<MenuItem value={'^[0-9A-Za-z.!@?#"$%&:;() *\+,\/;\-=[\\\]\^_{|}<>]+$'} primaryText="English only (With symbols)" /> <MenuItem value={'^[0-9A-Za-z.!@?#"$%&:;() *\+,\/;\-=[\\\]\^_{|}<>]+$'} primaryText="English only (With symbols)" />
<MenuItem value={'^((?!badword).)*$'} primaryText="Ignore badword" />
</SelectField> </SelectField>
</div> </div>
<Toggle
style={{marginTop: '10px'}}
label="Negative regular extension filtering"
toggled={this.options.filters && this.options.filters.namingRegExpNegative}
onToggle={(e, checked) => {
if(!this.options.filters)
return
this.options.filters.namingRegExpNegative = checked
this.forceUpdate()
}}
/>
<div className='fs0-75' style={{color: 'grey'}}> <div className='fs0-75' style={{color: 'grey'}}>
* - clean string means disabled * - clean string means disabled
</div> </div>

View File

@ -40,6 +40,7 @@ let config = {
filters: { filters: {
maxFiles: 0, maxFiles: 0,
namingRegExp: '', namingRegExp: '',
namingRegExpNegative: false,
adultFilter: false, adultFilter: false,
}, },

View File

@ -404,11 +404,16 @@ const checkTorrent = (torrent) => {
if(nameRX && nameRX.length > 0) if(nameRX && nameRX.length > 0)
{ {
const rx = new RegExp(nameRX) const rx = new RegExp(nameRX)
if(!rx.test(torrent.name)) if(!config.filters.namingRegExpNegative && !rx.test(torrent.name))
{ {
console.log('ignore', torrent.name, 'by naming rx') console.log('ignore', torrent.name, 'by naming rx')
return false return false
} }
else if(config.filters.namingRegExpNegative && rx.test(torrent.name))
{
console.log('ignore', torrent.name, 'by naming rx negative')
return false
}
} }
if(torrent.contentType === 'bad') if(torrent.contentType === 'bad')