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={'^[0-9A-Za-z.!@?#"$%&:;() *\+,\/;\-=[\\\]\^_{|}<>]+$'} primaryText="English only (With symbols)" />
<MenuItem value={'^((?!badword).)*$'} primaryText="Ignore badword" />
</SelectField>
</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'}}>
* - clean string means disabled
</div>

View File

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

View File

@ -404,11 +404,16 @@ const checkTorrent = (torrent) => {
if(nameRX && nameRX.length > 0)
{
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')
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')