* added missing source files (belongs to last commit)
This commit is contained in:
parent
7a83fda23b
commit
93d2e0f379
|
@ -0,0 +1,33 @@
|
|||
|
||||
package net.sourceforge.filebot.cli;
|
||||
|
||||
|
||||
import static java.lang.Math.*;
|
||||
|
||||
import net.sourceforge.filebot.similarity.SimilarityMetric;
|
||||
import net.sourceforge.filebot.ui.rename.MatchSimilarityMetric;
|
||||
|
||||
|
||||
enum StrictMetric implements SimilarityMetric {
|
||||
|
||||
EpisodeIdentifier(MatchSimilarityMetric.EpisodeIdentifier, 1), // only allow 0 or 1
|
||||
Title(MatchSimilarityMetric.Title, 2), // allow 0 or .5 or 1
|
||||
Name(MatchSimilarityMetric.Name, 2); // allow 0 or .5 or 1
|
||||
|
||||
// inner metric
|
||||
private final SimilarityMetric metric;
|
||||
private final float floorFactor;
|
||||
|
||||
|
||||
private StrictMetric(SimilarityMetric metric, float floorFactor) {
|
||||
this.metric = metric;
|
||||
this.floorFactor = floorFactor;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public float getSimilarity(Object o1, Object o2) {
|
||||
return (float) (floor(metric.getSimilarity(o1, o2) * floorFactor) / floorFactor);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,29 @@
|
|||
|
||||
package net.sourceforge.filebot.similarity;
|
||||
|
||||
|
||||
public class SubstringMetric implements SimilarityMetric {
|
||||
|
||||
@Override
|
||||
public float getSimilarity(Object o1, Object o2) {
|
||||
String s1 = normalize(o1);
|
||||
String s2 = normalize(o2);
|
||||
String pri = s1.length() > s2.length() ? s1 : s2;
|
||||
String sub = s1.length() > s2.length() ? s2 : s1;
|
||||
|
||||
return sub.length() > 0 && pri.contains(sub) ? 1 : 0;
|
||||
}
|
||||
|
||||
|
||||
protected String normalize(Object object) {
|
||||
// use string representation
|
||||
String name = object.toString();
|
||||
|
||||
// normalize separators
|
||||
name = name.replaceAll("[\\p{Punct}\\p{Space}]+", " ");
|
||||
|
||||
// normalize case and trim
|
||||
return name.trim().toLowerCase();
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue