Blacklist regex
This commit is contained in:
parent
fed7cd420a
commit
13fa1939ad
@ -6,8 +6,7 @@ import jakarta.persistence.GeneratedValue;
|
|||||||
import jakarta.persistence.Id;
|
import jakarta.persistence.Id;
|
||||||
import lombok.*;
|
import lombok.*;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.regex.Pattern;
|
||||||
import java.util.Locale;
|
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@Getter
|
@Getter
|
||||||
@ -26,21 +25,15 @@ public class Blacklist {
|
|||||||
|
|
||||||
@NonNull
|
@NonNull
|
||||||
@Column(nullable = false)
|
@Column(nullable = false)
|
||||||
private String query;
|
private String regex;
|
||||||
|
|
||||||
public Blacklist(final BlacklistCreate create) {
|
public Blacklist(final BlacklistCreate create) {
|
||||||
enabled = create.isEnabled();
|
enabled = create.isEnabled();
|
||||||
query = create.getQuery();
|
regex = create.getQuery();
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean matches(@NonNull final String title) {
|
public boolean matches(@NonNull final String title) {
|
||||||
final String[] words = query.replaceAll("([0-9])([a-zA-Z])", "$1 $2")
|
return Pattern.compile(regex, Pattern.CASE_INSENSITIVE).matcher(title).find();
|
||||||
.replaceAll("([a-zA-Z])([0-9])", "$1 $2")
|
|
||||||
.replaceAll("([a-z])([A-Z])", "$1 $2")
|
|
||||||
.replaceAll("^\\W+|\\W+$", "")
|
|
||||||
.toLowerCase(Locale.ROOT)
|
|
||||||
.split("\\W+");
|
|
||||||
return Arrays.stream(words).map(".*%s.*"::formatted).allMatch(title::matches);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -16,7 +16,7 @@ public class BlacklistDto {
|
|||||||
public BlacklistDto(final Blacklist blacklist) {
|
public BlacklistDto(final Blacklist blacklist) {
|
||||||
this.id = blacklist.getId();
|
this.id = blacklist.getId();
|
||||||
this.enabled = blacklist.isEnabled();
|
this.enabled = blacklist.isEnabled();
|
||||||
this.query = blacklist.getQuery();
|
this.query = blacklist.getRegex();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -47,7 +47,7 @@ public class BlacklistService {
|
|||||||
|
|
||||||
@PostMapping("{id}/query")
|
@PostMapping("{id}/query")
|
||||||
public BlacklistDto query(@PathVariable final long id, @NonNull @RequestBody final String query) {
|
public BlacklistDto query(@PathVariable final long id, @NonNull @RequestBody final String query) {
|
||||||
return set(id, blacklist -> blacklist.setQuery(query));
|
return set(id, blacklist -> blacklist.setRegex(query));
|
||||||
}
|
}
|
||||||
|
|
||||||
@NonNull
|
@NonNull
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user