pull/606/head
FongMi 3 months ago
parent cb84ec5c76
commit f99dedbd25
  1. 2
      app/src/main/java/com/fongmi/android/tv/bean/Episode.java
  2. 2
      app/src/main/java/com/fongmi/android/tv/bean/Flag.java
  3. 6
      app/src/main/java/com/fongmi/android/tv/utils/Util.java

@ -34,7 +34,7 @@ public class Episode implements Parcelable, Diffable<Episode> {
}
private Episode(String name, String desc, String url) {
this.number = Util.getDigit(name);
this.number = Util.getNumber(name);
this.name = name;
this.desc = desc;
this.url = url;

@ -108,7 +108,7 @@ public class Flag implements Parcelable, Diffable<Flag> {
public Episode find(String remarks, boolean strict) {
if (getEpisodes().isEmpty()) return null;
if (getEpisodes().size() == 1) return getEpisodes().get(0);
int number = Util.getDigit(remarks);
int number = Util.getNumber(remarks);
return getEpisodes().stream()
.map(episode -> new Episode.Rule(episode, episode.getScore(remarks, number)))
.filter(Episode.Rule::find).max(Comparator.comparingInt(Episode.Rule::score)).map(Episode.Rule::episode)

@ -105,15 +105,15 @@ public class Util {
}
}
public static int getDigit(String text) {
public static int getNumber(String text) {
try {
text = text.replaceAll("\\[.*?\\]|\\(.*?\\)", "");
text = text.replaceAll("\\b(19|20)\\d{2}\\b", "");
text = text.toLowerCase().replaceAll("2160p|1080p|720p|480p|4k|h26[45]|x26[45]|mp4", "");
Matcher matcher = EPISODE.matcher(text);
if (matcher.find()) return Integer.parseInt(matcher.group(1));
String digit = text.replaceAll("\\D+", "");
return digit.isEmpty() ? -1 : Integer.parseInt(digit);
String number = text.replaceAll("\\D+", "");
return number.isEmpty() ? -1 : Integer.parseInt(number);
} catch (Exception e) {
return -1;
}

Loading…
Cancel
Save