package org.lodder.subtools.multisubdownloader.lib; import java.util.ArrayList; import java.util.List; import org.lodder.subtools.multisubdownloader.settings.model.Settings; import org.lodder.subtools.sublibrary.model.Release; import org.lodder.subtools.sublibrary.model.Subtitle; public abstract class SubtitleSelection { private Settings settings; public SubtitleSelection(Settings settings) { this.settings = settings; } public List<Subtitle> getAutomaticSelection(List<Subtitle> subtitles) { List<Subtitle> shortlist = new ArrayList<Subtitle>(subtitles); if (settings.isOptionsMinAutomaticSelection()) { for (int i = shortlist.size() - 1; i >= 0; i--) { if (shortlist.get(i).getScore() < settings.getOptionsMinAutomaticSelectionValue()) shortlist.remove(i); } } if (settings.isOptionsDefaultSelection()) { List<Subtitle> defaultSelectionsFound = new ArrayList<Subtitle>(); for (String q : settings.getOptionsDefaultSelectionQualityList()) { for (Subtitle subtitle : shortlist) { if (subtitle.getQuality().toLowerCase().contains(q.toLowerCase())) { if (!defaultSelectionsFound.contains(subtitle)) defaultSelectionsFound.add(subtitle); } } } if (defaultSelectionsFound.size() > 0) shortlist = defaultSelectionsFound; } return shortlist; } public abstract int getUserInput(Release release); public abstract void dryRunOutput(Release release); }