From 1804d12def5995b825c6b577d9b4c64ede7887ad Mon Sep 17 00:00:00 2001 From: Reinhard Pointner Date: Sun, 4 Aug 2013 13:09:06 +0000 Subject: [PATCH] --- remove Subscene/Sublight from codebase --- lib/sublight-ws.jar | Bin 171664 -> 0 bytes .../sourceforge/filebot/Settings.properties | 4 +- .../net/sourceforge/filebot/WebServices.java | 1 - .../filebot/web/SublightSubtitleClient.java | 449 ------------------ .../web/SublightSubtitleDescriptor.java | 144 ------ .../filebot/web/SublightVideoHasher.java | 124 ----- .../filebot/web/SubsceneSubtitleClient.java | 199 -------- .../web/SubsceneSubtitleDescriptor.java | 96 ---- .../web/SublightSubtitleClientTest.java | 108 ----- .../web/SubsceneSubtitleClientTest.java | 113 ----- .../sourceforge/filebot/web/WebTestSuite.java | 8 +- 11 files changed, 3 insertions(+), 1243 deletions(-) delete mode 100644 lib/sublight-ws.jar delete mode 100644 source/net/sourceforge/filebot/web/SublightSubtitleClient.java delete mode 100644 source/net/sourceforge/filebot/web/SublightSubtitleDescriptor.java delete mode 100644 source/net/sourceforge/filebot/web/SublightVideoHasher.java delete mode 100644 source/net/sourceforge/filebot/web/SubsceneSubtitleClient.java delete mode 100644 source/net/sourceforge/filebot/web/SubsceneSubtitleDescriptor.java delete mode 100644 test/net/sourceforge/filebot/web/SublightSubtitleClientTest.java delete mode 100644 test/net/sourceforge/filebot/web/SubsceneSubtitleClientTest.java diff --git a/lib/sublight-ws.jar b/lib/sublight-ws.jar deleted file mode 100644 index e650597de0fc2ff7fd742aae700c01d0d549f0b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 171664 zcmeFZWmH{TwysTZcXxMpcXxM!ySqaO?(Qte!X;R62ol^~gF|o&!6Cr6viGj~&faxz zovL$NyZ2Ag+G_L9q_J2$JmVd`k3LluARytvz+l0^GF7L=!T!q^92g{+l9Z+xlbo_N z%gZPjnCc(5!h&UhZrytXLIi?tPXoO$L9f5xswAc?CoQF+$*d%;6vu|p%Ze&}*Yg}n z;3+GsseiOsYL7;^Hg#JZl9Fam`14L$%q4L1ZbOt!&}Zy%@KZP@fydx`yIm4n9enG- z-ccX!+hZbH7R79u^-f`V$B$hd8u1;m)2*zJl=kSORCO>5LVYRSI@_q$DMv$(=(gWY z*40+!JK!Q>#g3F zX6}}5Ubg0zfBylnVAh~dOypT6zzrM>tQraojP0L%mzafxn1hFyt%rjp zv$=z*yL)=ts?(e(YJ|1B!`ihd$~1V%w7A@CC_*>`eKD-Q8eO3}h8C<-U8>gds2dA`q{W?5HA?-Vmj^1U#sV3m!mvF}S$#Kb()Zz)QXr)utZf5&Q9Bye>i!SiY<`Ao> zgm!yc_|&JF!D7ryx$w3sp=Iw9ITJq#_^um8s>i?1mLQ V1ei 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

G--K4eUbvj{&f#GV^M{xIz9+__5S$D(nI(G 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 search(String query) throws WebServiceException { - // require login - login(); - - Holder response = new Holder(); - Holder error = new Holder(); - - webservice.findIMDB(query, null, null, response, error); - - // abort if something went wrong - checkError(error); - - List results = new ArrayList(); - - if (response.value != null) { - for (IMDB imdb : response.value.getIMDB()) { - // remove classifier (e.g. tt0436992 -> 0436992) - int id = Integer.parseInt(imdb.getId().substring(2)); - - results.add(new Movie(imdb.getTitle(), imdb.getYear(), id, -1)); - } - } - - return results; - } - - - @Override - public List getSubtitleList(SearchResult searchResult, String languageName) throws WebServiceException { - Movie movie = (Movie) searchResult; - - List subtitles = new ArrayList(); - - // retrieve subtitles by name and year - for (Subtitle subtitle : getSubtitleList(null, movie.getName(), movie.getYear(), languageName)) { - subtitles.add(new SublightSubtitleDescriptor(subtitle, this)); - } - - return subtitles; - } - - - @Override - public Map> getSubtitleList(File[] files, final String languageName) throws Exception { - Map> subtitles = new HashMap>(files.length); - - ExecutorService executor = Executors.newFixedThreadPool(min(files.length, 10)); - List>> requests = new ArrayList>>(); - - try { - // queue and execute requests - for (int i = 0; i < files.length; i++) { - Future> request = null; - - try { - // make call interruptible - if (Thread.interrupted()) - throw new InterruptedException(); - - // compute video hash and execute query in parallel - final String videoHash = SublightVideoHasher.computeHash(files[i]); - - request = executor.submit(new Callable>() { - - @Override - public List call() throws Exception { - return getSubtitleList(videoHash, languageName); - } - }); - } catch (IOException e) { - Logger.getLogger(SublightSubtitleClient.class.getName()).log(Level.WARNING, "Error computing video hash: " + e.getMessage()); - } - - requests.add(i, request); - } - - // collect results - for (int i = 0; i < files.length; i++) { - List response = emptyList(); - - if (requests.get(i) != null) { - response = requests.get(i).get(); - } - - subtitles.put(files[i], response); - } - - return subtitles; - } finally { - // shutdown after all tasks are done or an exception was thrown - executor.shutdownNow(); - } - } - - - public List getSubtitleList(String videoHash, String languageName) throws WebServiceException { - List subtitles = new ArrayList(); - - // retrieve subtitles by video hash - for (Subtitle subtitle : getSubtitleList(videoHash, null, null, languageName)) { - // only keep linked subtitles - if (subtitle.isIsLinked()) { - subtitles.add(new SublightSubtitleDescriptor(subtitle, this)); - } - } - - return subtitles; - } - - - public List getSubtitleList(String videoHash, String name, Integer year, String languageName) throws WebServiceException { - // require login - login(); - - // given language or all languages - ArrayOfSubtitleLanguage languages = new ArrayOfSubtitleLanguage(); - - if (languageName != null) { - // given language - languages.getSubtitleLanguage().add(getSubtitleLanguage(languageName)); - } else { - // all languages - Collections.addAll(languages.getSubtitleLanguage(), SubtitleLanguage.values()); - } - - // hash singleton array - ArrayOfString videoHashes = new ArrayOfString(); - videoHashes.getString().add(videoHash); - - // all genres - ArrayOfGenre genres = new ArrayOfGenre(); - Collections.addAll(genres.getGenre(), Genre.values()); - - // response holders - Holder subtitles = new Holder(); - Holder releases = new Holder(); - Holder error = new Holder(); - - webservice.searchSubtitles4(session, videoHashes, name, year, null, null, languages, genres, null, null, null, subtitles, releases, null, error); - - // abort if something went wrong - checkError(error); - - // return empty list if response is empty - if (subtitles.value == null) { - return Collections.emptyList(); - } - - // map all release names by subtitle id - if (releases.value != null) { - Map releaseNameBySubtitleID = new HashMap(); - - // map release names by subtitle id - for (Release release : releases.value.getRelease()) { - releaseNameBySubtitleID.put(release.getSubtitleID(), release.getName()); - } - - // set release names - for (Subtitle subtitle : subtitles.value.getSubtitle()) { - subtitle.setRelease(releaseNameBySubtitleID.get(subtitle.getSubtitleID())); - } - } - - return subtitles.value.getSubtitle(); - } - - - @Override - public boolean publishSubtitle(int imdbid, String languageName, File[] videoFile, File[] subtitleFile) throws Exception { - //TODO implement upload feature - return false; - } - - - public void publishSubtitle(int imdbid, String videoHash, String languageName, String releaseName, byte[] data) { - // require login - login(); - - Subtitle subtitle = new Subtitle(); - subtitle.setIMDB(String.format("http://www.imdb.com/title/tt%07d", imdbid)); - subtitle.setLanguage(getSubtitleLanguage(languageName)); - subtitle.setRelease(releaseName); - - Holder result = new Holder(); - Holder subid = new Holder(); - Holder error = new Holder(); - - // upload subtitle - webservice.publishSubtitle2(session, subtitle, data, result, subid, null, error); - - // abort if something went wrong - checkError(error); - - // link subtitle to video file - webservice.addHashLink3(session, subid.value, videoHash, null, null, error); - - // abort if something went wrong - checkError(error); - } - - - protected Map getLanguageAliasMap() { - Map languages = new HashMap(4); - - // insert special some additional special handling - languages.put("Brazilian", SubtitleLanguage.PORTUGUESE_BRAZIL); - languages.put("Bosnian", SubtitleLanguage.BOSNIAN_LATIN); - languages.put("Serbian", SubtitleLanguage.SERBIAN_LATIN); - - return languages; - } - - - protected SubtitleLanguage getSubtitleLanguage(String languageName) { - // check subtitle language enum - for (SubtitleLanguage language : SubtitleLanguage.values()) { - if (language.value().equalsIgnoreCase(languageName)) - return language; - } - - // check alias list - for (Entry alias : getLanguageAliasMap().entrySet()) { - if (alias.getKey().equalsIgnoreCase(languageName)) - return alias.getValue(); - } - - // illegal language name - throw new IllegalArgumentException("Illegal language: " + languageName); - } - - - protected String getLanguageName(SubtitleLanguage language) { - // check alias list first - for (Entry alias : getLanguageAliasMap().entrySet()) { - if (language == alias.getValue()) - return alias.getKey(); - } - - // use language value by default - return language.value(); - } - - - protected synchronized byte[] getZipArchive(Subtitle subtitle) throws WebServiceException, InterruptedException { - // require login - login(); - - Holder ticket = new Holder(); - Holder que = new Holder(); - Holder data = new Holder(); - Holder error = new Holder(); - - webservice.getDownloadTicket2(session, null, subtitle.getSubtitleID(), null, ticket, que, null, error); - - // abort if something went wrong - checkError(error); - - // wait x seconds as specified by the download ticket response, download ticket is not valid until then - Thread.sleep(que.value * 1000); - - webservice.downloadByID4(session, subtitle.getSubtitleID(), -1, false, ticket.value, null, data, null, error); - - // abort if something went wrong - checkError(error); - - // return zip file bytes - return data.value; - } - - - @Override - public URI getSubtitleListLink(SearchResult searchResult, String languageName) { - // note that sublight can only be accessed via the soap API - return URI.create("http://www.sublight.si/SearchSubtitles.aspx"); - } - - - public synchronized void setClient(String id, String key) { - clientInfo.setClientId(id); - clientInfo.setApiKey(key); - } - - - public synchronized void setUser(String username, String password) { - this.username = username; - this.passwordHash = password != null && password.length() > 0 ? getPasswordHash(password) : null; - } - - - public String getPasswordHash(String password) { - try { - MessageDigest digest = MessageDigest.getInstance("MD5"); - digest.update(password.getBytes("UTF-16LE")); - return String.format("%032x", new BigInteger(1, digest.digest())); - } catch (Exception e) { - throw new RuntimeException(e); - } - } - - - public synchronized void login() throws WebServiceException { - if (clientInfo.getClientId() == null || clientInfo.getClientId().isEmpty()) { - throw new IllegalStateException("Sublight login has not been configured"); - } - - if (webservice == null) { - // lazy initialize because all the JAX-WS class loading can take quite some time - webservice = new Sublight().getSublightSoap(); - } - - if (session == null) { - // args contains only iid - ArrayOfString args = new ArrayOfString(); - args.getString().add(iid); - - Holder session = new Holder(); - Holder error = new Holder(); - - if (username == null || username.isEmpty()) { - webservice.logInAnonymous4(clientInfo, args, session, null, error); - } else { - webservice.logIn6(username, passwordHash, clientInfo, args, session, null, null, null, null, error); - } - - // abort if something went wrong - checkError(error); - - // start session - this.session = session.value; - } - - // reset timer - logoutTimer.set(10, TimeUnit.MINUTES, true); - } - - - protected synchronized void logout() throws WebServiceException { - if (session != null) { - Holder error = new Holder(); - - webservice.logOut(session, null, error); - - // abort if something went wrong - checkError(error); - - // stop session - this.session = null; - - // cancel timer - logoutTimer.cancel(); - } - } - - - protected void checkError(Holder error) throws WebServiceException { - if (error.value != null) { - throw new WebServiceException("Response indicates error: " + error.value); - } - } - - protected final Timer logoutTimer = new Timer() { - - @Override - public void run() { - logout(); - } - }; - -} diff --git a/source/net/sourceforge/filebot/web/SublightSubtitleDescriptor.java b/source/net/sourceforge/filebot/web/SublightSubtitleDescriptor.java deleted file mode 100644 index 2c9def44..00000000 --- a/source/net/sourceforge/filebot/web/SublightSubtitleDescriptor.java +++ /dev/null @@ -1,144 +0,0 @@ - -package net.sourceforge.filebot.web; - - -import java.io.ByteArrayInputStream; -import java.nio.ByteBuffer; -import java.util.Formatter; -import java.util.zip.ZipEntry; -import java.util.zip.ZipInputStream; - -import net.sourceforge.tuned.ByteBufferOutputStream; -import net.sublight.webservice.Subtitle; - - -public class SublightSubtitleDescriptor implements SubtitleDescriptor { - - private final Subtitle subtitle; - private final SublightSubtitleClient source; - - private final String name; - private final String languageName; - - - public SublightSubtitleDescriptor(Subtitle subtitle, SublightSubtitleClient source) { - this.subtitle = subtitle; - this.source = source; - - this.name = getName(subtitle); - this.languageName = source.getLanguageName(subtitle.getLanguage()); - } - - - private String getName(Subtitle subtitle) { - String releaseName = subtitle.getRelease(); - - // check if release name contains sufficient information to be used as display name - if (releaseName != null && !releaseName.isEmpty()) { - boolean isValid = true; - - if (subtitle.getSeason() != null) { - isValid &= releaseName.contains(subtitle.getSeason().toString()); - } - - if (subtitle.getEpisode() != null) { - isValid &= releaseName.contains(subtitle.getEpisode().toString()); - } - - if (isValid) { - return releaseName; - } - } - - // format proper display name - Formatter builder = new Formatter(new StringBuilder(subtitle.getTitle())); - - if (subtitle.getSeason() != null || subtitle.getEpisode() != null) { - builder.format(" - S%02dE%02d", subtitle.getSeason(), subtitle.getEpisode()); - } - - if (subtitle.getRelease() != null && !subtitle.getRelease().isEmpty()) { - builder.format(" (%s)", subtitle.getRelease()); - } - - return builder.out().toString(); - } - - - @Override - public String getName() { - return name; - } - - - @Override - public String getLanguageName() { - return languageName; - } - - - @Override - public String getType() { - return subtitle.getSubtitleType().value().toLowerCase(); - } - - - @Override - public long getLength() { - return subtitle.getSize(); - } - - - @Override - public ByteBuffer fetch() throws Exception { - byte[] archive = source.getZipArchive(subtitle); - - // the zip archive will contain exactly one subtitle - ZipInputStream stream = new ZipInputStream(new ByteArrayInputStream(archive)); - - try { - // move to subtitle entry - ZipEntry entry = stream.getNextEntry(); - - ByteBufferOutputStream buffer = new ByteBufferOutputStream(entry.getSize()); - - // read subtitle data - buffer.transferFully(stream); - - // return plain subtitle data - return buffer.getByteBuffer(); - } finally { - stream.close(); - } - } - - - @Override - public String getPath() { - return String.format("%s.%s", getName(), getType()); - } - - - @Override - public int hashCode() { - return subtitle.getSubtitleID().hashCode(); - } - - - @Override - public boolean equals(Object object) { - if (object instanceof SublightSubtitleDescriptor) { - SublightSubtitleDescriptor other = (SublightSubtitleDescriptor) object; - return subtitle.getSubtitleID().equals(other.subtitle.getSubtitleID()); - } - - return false; - } - - - @Override - public String toString() { - return String.format("%s [%s]", getName(), getLanguageName()); - } - -} diff --git a/source/net/sourceforge/filebot/web/SublightVideoHasher.java b/source/net/sourceforge/filebot/web/SublightVideoHasher.java deleted file mode 100644 index 0b20c73e..00000000 --- a/source/net/sourceforge/filebot/web/SublightVideoHasher.java +++ /dev/null @@ -1,124 +0,0 @@ - -package net.sourceforge.filebot.web; - - -import static java.lang.Math.*; - -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.math.BigInteger; -import java.nio.channels.FileChannel; -import java.nio.channels.FileChannel.MapMode; -import java.security.MessageDigest; -import java.util.Formatter; -import java.util.concurrent.TimeUnit; - -import net.sourceforge.filebot.mediainfo.MediaInfo; -import net.sourceforge.filebot.mediainfo.MediaInfoException; -import net.sourceforge.filebot.mediainfo.MediaInfo.StreamKind; - - -/** - * Compute special hash used by Sublight to identify video files. - * - *

- * The hash is divided into 5 sections:
- * 1 byte : reserved
- * 2 bytes: video duration in seconds
- * 6 bytes: file size in bytes
- * 16 bytes: MD5 hash of the first 5 MB
- * 1 byte: control byte, sum of all other bytes
- * 
- */ -public final class SublightVideoHasher { - - public static String computeHash(File file) throws IOException, MediaInfoException { - byte[][] hash = new byte[4][]; - - // 1 byte = 0 (reserved) - hash[0] = new byte[] { 0 }; - - // 2 bytes (video duration in seconds) - hash[1] = getTrailingBytes(getDuration(file, TimeUnit.SECONDS), 2); - - // 6 bytes (file size in bytes) - hash[2] = getTrailingBytes(file.length(), 6); - - // 16 bytes (md5 hash of the first 5 MB) - hash[3] = getHeadMD5(file, 5 * 1024 * 1024); - - // format and sum - Formatter hex = new Formatter(new StringBuilder(52)); - byte sum = 0; - - for (byte[] group : hash) { - for (byte b : group) { - hex.format("%02x", b); - sum += b; - } - } - - // 1 byte (control byte) - hex.format("%02x", sum); - - // done - return hex.out().toString(); - } - - - protected static byte[] getTrailingBytes(long value, int n) { - byte[] bytes = BigInteger.valueOf(value).toByteArray(); - - // bytes will be initialized with 0 - byte[] trailingBytes = new byte[n]; - - // copy the least significant n bytes to the new array - System.arraycopy(bytes, max(0, bytes.length - n), trailingBytes, max(0, n - bytes.length), min(n, bytes.length)); - - return trailingBytes; - } - - - protected static long getDuration(File file, TimeUnit unit) throws IOException, MediaInfoException { - MediaInfo mediaInfo = new MediaInfo(); - - if (!mediaInfo.open(file)) - throw new IOException("Failed to open file: " + file); - - // get media info - String duration = mediaInfo.get(StreamKind.General, 0, "Duration"); - - // close handle - mediaInfo.close(); - - // sanity check - if (duration.isEmpty()) - throw new IOException("Failed to read video duration"); - - // convert from milliseconds to given unit - return unit.convert(Long.parseLong(duration), TimeUnit.MILLISECONDS); - } - - - protected static byte[] getHeadMD5(File file, long chunkSize) throws IOException { - try { - MessageDigest md5 = MessageDigest.getInstance("MD5"); - - FileChannel channel = new FileInputStream(file).getChannel(); - - try { - // calculate md5 - md5.update(channel.map(MapMode.READ_ONLY, 0, min(channel.size(), chunkSize))); - } finally { - // close channel - channel.close(); - } - - return md5.digest(); - } catch (Exception e) { - throw new IOException("Failed to calculate md5 hash", e); - } - } - -} diff --git a/source/net/sourceforge/filebot/web/SubsceneSubtitleClient.java b/source/net/sourceforge/filebot/web/SubsceneSubtitleClient.java deleted file mode 100644 index ef981ebf..00000000 --- a/source/net/sourceforge/filebot/web/SubsceneSubtitleClient.java +++ /dev/null @@ -1,199 +0,0 @@ - -package net.sourceforge.filebot.web; - - -import static net.sourceforge.filebot.web.WebRequest.*; -import static net.sourceforge.tuned.XPathUtilities.*; - -import java.io.IOException; -import java.net.MalformedURLException; -import java.net.URI; -import java.net.URL; -import java.net.URLConnection; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.logging.Level; -import java.util.logging.Logger; -import java.util.regex.Pattern; - -import javax.swing.Icon; - -import net.sourceforge.filebot.Cache; -import net.sourceforge.filebot.ResourceManager; - -import org.w3c.dom.Document; -import org.w3c.dom.Node; -import org.xml.sax.SAXException; - - -public class SubsceneSubtitleClient implements SubtitleProvider { - - private static final String host = "subscene.com"; - - - @Override - public String getName() { - return "Subscene"; - } - - - @Override - public URI getLink() { - return URI.create("http://subscene.com"); - } - - - @Override - public Icon getIcon() { - return ResourceManager.getIcon("search.subscene"); - } - - - @Override - public List search(String query) throws IOException, SAXException { - URL searchUrl = new URL("http", host, "/subtitles/title.aspx?q=" + encode(query, true)); - Document dom = getHtmlDocument(searchUrl); - - List nodes = selectNodes("//H2[text()='Close']//following::DIV[@class='title']//A", dom); - List searchResults = new ArrayList(nodes.size()); - - Pattern titleSuffixPattern = Pattern.compile("\\s-\\s([^-]+)[(](\\d{4})[)]$"); - - for (Node node : nodes) { - String title = getTextContent(node); - String href = getAttribute("href", node); - - // simplified name for easy matching - String shortName = titleSuffixPattern.matcher(title).replaceFirst(""); - - try { - searchResults.add(new SubsceneSearchResult(shortName, title, new URL("http", host, href))); - } catch (MalformedURLException e) { - Logger.getLogger(getClass().getName()).log(Level.WARNING, "Invalid href: " + href, e); - } - } - - return searchResults; - } - - - @Override - public List getSubtitleList(SearchResult searchResult, String languageName) throws Exception { - URL subtitleListUrl = getSubtitleListLink(searchResult, languageName).toURL(); - - String filter = getLanguageFilter(languageName); - Document dom = getSubtitleListDocument(subtitleListUrl, filter); - - List rows = selectNodes("//TD[@class='a1']", dom); - List subtitles = new ArrayList(); - for (Node row : rows) { - try { - List fields = selectNodes(".//SPAN", row); - String language = getTextContent(fields.get(0)); - - if (languageName == null || language.equalsIgnoreCase(languageName)) { - String name = getTextContent(fields.get(1)); - String href = selectString(".//A/@href", row); - URL subtitlePage = new URL(subtitleListUrl.getProtocol(), subtitleListUrl.getHost(), href); - subtitles.add(new SubsceneSubtitleDescriptor(name, language, subtitlePage)); - } - } catch (Exception e) { - Logger.getLogger(getClass().getName()).log(Level.WARNING, "Cannot parse subtitle node", e); - } - } - - return subtitles; - } - - - protected Document getSubtitleListDocument(URL subtitleListUrl, String languageFilter) throws IOException, SAXException { - URLConnection connection = subtitleListUrl.openConnection(); - - if (languageFilter != null) { - connection.addRequestProperty("Cookie", "Filter=" + languageFilter); - } - - return getHtmlDocument(connection); - } - - - @SuppressWarnings("unchecked") - protected String getLanguageFilter(String languageName) throws IOException, SAXException { - if (languageName == null || languageName.isEmpty()) { - return null; - } - - // try cache first - Cache cache = Cache.getCache("web-datasource-lv2"); - String cacheKey = getClass().getName() + ".languageFilter"; - - Map filters = cache.get(cacheKey, Map.class); - - if (filters != null) { - return filters.get(languageName.toLowerCase()); - } - - // fetch new language filter data - filters = getLanguageFilterMap(); - - // update cache after sanity check - if (filters.size() > 42) { - cache.put(cacheKey, filters); - } else { - Logger.getLogger(getClass().getName()).log(Level.WARNING, "Failed to scrape language filters: " + filters); - } - - return filters.get(languageName.toLowerCase()); - } - - - protected Map getLanguageFilterMap() throws IOException, SAXException { - Map filters = new HashMap(50); - - Document dom = getHtmlDocument(new URL("http://subscene.com/filter")); - List checkboxes = selectNodes("//INPUT[@type='checkbox']", dom); - - for (Node checkbox : checkboxes) { - String filter = getAttribute("value", checkbox); - if (filter != null) { - String name = selectString("./following::LABEL", checkbox); - filters.put(name.toLowerCase(), filter); - } - } - - return filters; - } - - - @Override - public URI getSubtitleListLink(SearchResult searchResult, String languageName) { - return ((HyperLink) searchResult).getURI(); - } - - - public static class SubsceneSearchResult extends HyperLink { - - private String shortName; - - - public SubsceneSearchResult(String shortName, String title, URL url) { - super(title, url); - this.shortName = shortName; - } - - - @Override - public String getName() { - return shortName; - } - - - @Override - public String toString() { - return super.getName(); - } - } - -} diff --git a/source/net/sourceforge/filebot/web/SubsceneSubtitleDescriptor.java b/source/net/sourceforge/filebot/web/SubsceneSubtitleDescriptor.java deleted file mode 100644 index b81d1494..00000000 --- a/source/net/sourceforge/filebot/web/SubsceneSubtitleDescriptor.java +++ /dev/null @@ -1,96 +0,0 @@ - -package net.sourceforge.filebot.web; - - -import static java.util.Collections.*; -import static net.sourceforge.tuned.XPathUtilities.*; - -import java.io.IOException; -import java.net.URL; -import java.nio.ByteBuffer; - -import org.w3c.dom.Document; -import org.xml.sax.SAXException; - - -public class SubsceneSubtitleDescriptor implements SubtitleDescriptor { - - private String title; - private String language; - - private URL subtitlePage; - - - public SubsceneSubtitleDescriptor(String title, String language, URL subtitlePage) { - this.title = title; - this.language = language; - this.subtitlePage = subtitlePage; - } - - - @Override - public String getName() { - return title; - } - - - @Override - public String getLanguageName() { - return language; - } - - - @Override - public String getType() { - return null; - } - - - @Override - public ByteBuffer fetch() throws Exception { - return WebRequest.fetch(getDownloadLink(), 0, singletonMap("Referer", subtitlePage.toString())); - } - - - private URL getDownloadLink() throws IOException, SAXException { - Document page = WebRequest.getHtmlDocument(subtitlePage); - String file = selectString("id('downloadButton')/@href", page); - return new URL(subtitlePage.getProtocol(), subtitlePage.getHost(), file); - } - - - @Override - public String getPath() { - return getName(); - } - - - @Override - public long getLength() { - return -1; - } - - - @Override - public int hashCode() { - return subtitlePage.getPath().hashCode(); - } - - - @Override - public boolean equals(Object object) { - if (object instanceof SubsceneSubtitleDescriptor) { - SubsceneSubtitleDescriptor other = (SubsceneSubtitleDescriptor) object; - return subtitlePage.getPath().equals(other.getPath()); - } - - return false; - } - - - @Override - public String toString() { - return String.format("%s [%s]", getName(), getLanguageName()); - } - -} diff --git a/test/net/sourceforge/filebot/web/SublightSubtitleClientTest.java b/test/net/sourceforge/filebot/web/SublightSubtitleClientTest.java deleted file mode 100644 index 719ce688..00000000 --- a/test/net/sourceforge/filebot/web/SublightSubtitleClientTest.java +++ /dev/null @@ -1,108 +0,0 @@ - -package net.sourceforge.filebot.web; - - -import static org.junit.Assert.*; - -import java.io.ByteArrayInputStream; -import java.util.List; -import java.util.zip.ZipEntry; -import java.util.zip.ZipInputStream; - -import net.sublight.webservice.Subtitle; - -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Test; - - -public class SublightSubtitleClientTest { - - private static SublightSubtitleClient client = new SublightSubtitleClient(); - - - @BeforeClass - public static void login() { - client.setClient("SublightCmd", "12c72276-b95f-4144-bb2a-879775c71437"); - client.setUser("filebot-test", "correcthorsebatterystaple"); - client.login(); - } - - - @Test - public void search() { - List list = client.search("babylon 5"); - - Movie sample = (Movie) list.get(0); - - // check sample entry - assertEquals("Babylon 5", sample.getName()); - assertEquals(105946, sample.getImdbId()); - - // check size - assertEquals(8, list.size()); - } - - - @Test - public void getSubtitleListEnglish() { - List list = client.getSubtitleList(new Movie("Heroes", 2006, 813715, -1), "English"); - - SubtitleDescriptor sample = list.get(0); - assertEquals("English", sample.getLanguageName()); - - // check size - assertTrue(list.size() > 45); - } - - - @Test - public void getSubtitleListAllLanguages() { - List list = client.getSubtitleList(new Movie("Terminator 2", 1991, 103064, -1), "Croatian"); - - SubtitleDescriptor sample = list.get(0); - - assertEquals("Terminator.2-Judgment.Day[1991]DvDrip-aXXo", sample.getName()); - assertEquals("Croatian", sample.getLanguageName()); - } - - - @Test - public void getSubtitleListVideoHash() throws Exception { - List list = client.getSubtitleList("001c6e0000320458004ee6f6859e5b7844767d44336e5624edbb", null, null, "English"); - - Subtitle sample = list.get(0); - assertEquals("Jurassic Park", sample.getTitle()); - assertEquals("Jurassic.Park[1993]DvDrip-aXXo", sample.getRelease()); - assertEquals(true, sample.isIsLinked()); - } - - - @Test - public void getZipArchive() throws Exception { - Subtitle subtitle = new Subtitle(); - subtitle.setSubtitleID("1b4e9868-dded-49d0-b6e2-2d145328f6d4"); - - byte[] zip = client.getZipArchive(subtitle); - - // read first zip entry - ZipInputStream zipInputStream = new ZipInputStream(new ByteArrayInputStream(zip)); - - try { - ZipEntry entry = zipInputStream.getNextEntry(); - - assertEquals("Terminator The Sarah Connor Chronicles.srt", entry.getName()); - assertEquals(38959, entry.getSize(), 0); - } finally { - zipInputStream.close(); - } - } - - - @AfterClass - public static void logout() { - // logout manually - client.logout(); - } - -} diff --git a/test/net/sourceforge/filebot/web/SubsceneSubtitleClientTest.java b/test/net/sourceforge/filebot/web/SubsceneSubtitleClientTest.java deleted file mode 100644 index 2ccc976e..00000000 --- a/test/net/sourceforge/filebot/web/SubsceneSubtitleClientTest.java +++ /dev/null @@ -1,113 +0,0 @@ - -package net.sourceforge.filebot.web; - - -import static org.junit.Assert.*; - -import java.net.URL; -import java.nio.ByteBuffer; -import java.util.List; -import java.util.Map; - -import net.sourceforge.filebot.vfs.ArchiveType; -import net.sourceforge.filebot.vfs.MemoryFile; -import net.sourceforge.filebot.web.SubsceneSubtitleClient.SubsceneSearchResult; - -import org.junit.BeforeClass; -import org.junit.Test; - - -public class SubsceneSubtitleClientTest { - - /** - * Twin Peaks - First Season, ~ 15 subtitles - */ - private static HyperLink twinpeaksSearchResult; - - /** - * Lost - Fourth Season, ~ 430 subtitles - */ - private static HyperLink lostSearchResult; - - - @BeforeClass - public static void setUpBeforeClass() throws Exception { - twinpeaksSearchResult = new SubsceneSearchResult("Twin Peaks", "Twin Peaks - First Season (1990)", new URL("http://subscene.com/subtitles/twin-peaks-first-season")); - lostSearchResult = new SubsceneSearchResult("Lost", "Lost - Fourth Season (2008)", new URL("http://subscene.com/subtitles/lost-fourth-season")); - } - - private SubsceneSubtitleClient subscene = new SubsceneSubtitleClient(); - - - @Test - public void search() throws Exception { - List results = subscene.search("twin peaks"); - - SubsceneSearchResult result = (SubsceneSearchResult) results.get(0); - assertEquals(twinpeaksSearchResult.toString(), result.toString()); - assertEquals(twinpeaksSearchResult.getURL().toString(), result.getURL().toString()); - assertEquals(twinpeaksSearchResult.getName(), result.getName()); - } - - - @Test - public void search2() throws Exception { - List results = subscene.search("firefly"); - - SubsceneSearchResult result = (SubsceneSearchResult) results.get(0); - assertEquals("Firefly - The Complete Series (2002)", result.toString()); - assertEquals("Firefly", result.getName()); - assertEquals("http://subscene.com/subtitles/firefly-the-complete-series", result.getURL().toString()); - } - - - @Test - public void getSubtitleListSearchResult() throws Exception { - List subtitleList = subscene.getSubtitleList(twinpeaksSearchResult, "Italian"); - assertEquals(10, subtitleList.size()); - - SubtitleDescriptor subtitle = subtitleList.get(0); - assertEquals("Twin-Peaks-S01E00-Pilot-eAlternate-ita sub by IScrew [www.ITALIANSHARE.net]", subtitle.getName()); - assertEquals("Italian", subtitle.getLanguageName()); - } - - - @Test - public void getSubtitleListSearchResultMany() throws Exception { - List subtitleList = subscene.getSubtitleList(lostSearchResult, "Japanese"); - - // lots of subtitles, but only a few Japanese ones - assertEquals(16, subtitleList.size()); - } - - - @Test - public void getLanguageFilterMap() throws Exception { - Map filters = subscene.getLanguageFilterMap(); - - assertEquals("1", filters.get("albanian")); - assertEquals("13", filters.get("english")); - assertEquals("17", filters.get("finnish")); - assertEquals("45", filters.get("vietnamese")); - } - - - @Test - public void getSubtitleListLink() throws Exception { - assertEquals(twinpeaksSearchResult.getURL().toString(), subscene.getSubtitleListLink(twinpeaksSearchResult, null).toURL().toString()); - } - - - @Test - public void downloadSubtitleArchive() throws Exception { - SearchResult selectedResult = subscene.search("firefly").get(0); - SubtitleDescriptor subtitleDescriptor = subscene.getSubtitleList(selectedResult, "English").get(0); - assertEquals("Firefly The Complete Series", subtitleDescriptor.getName()); - - ByteBuffer data = subtitleDescriptor.fetch(); - Iterable archive = ArchiveType.RAR.fromData(data); - MemoryFile file = archive.iterator().next(); - assertEquals("Firefly - 1x01 - Serenity.srt", file.getName()); - } - -} diff --git a/test/net/sourceforge/filebot/web/WebTestSuite.java b/test/net/sourceforge/filebot/web/WebTestSuite.java index 25550877..3acb54e4 100644 --- a/test/net/sourceforge/filebot/web/WebTestSuite.java +++ b/test/net/sourceforge/filebot/web/WebTestSuite.java @@ -1,15 +1,11 @@ - package net.sourceforge.filebot.web; - import org.junit.runner.RunWith; import org.junit.runners.Suite; import org.junit.runners.Suite.SuiteClasses; - @RunWith(Suite.class) -@SuiteClasses( { AnidbClientTest.class, TVRageClientTest.class, TheTVDBClientTest.class, SerienjunkiesClientTest.class, TMDbClientTest.class, IMDbClientTest.class, SubsceneSubtitleClientTest.class, SublightSubtitleClientTest.class, - OpenSubtitlesXmlRpcTest.class }) +@SuiteClasses({ AnidbClientTest.class, TVRageClientTest.class, TheTVDBClientTest.class, SerienjunkiesClientTest.class, TMDbClientTest.class, IMDbClientTest.class, OpenSubtitlesXmlRpcTest.class }) public class WebTestSuite { - + }