public MediaProviderConfig(MediaProviderInfo mpi) { this.id = mpi.getId(); }
private static MediaProviderInfo createMediaProviderInfo() { MediaProviderInfo providerInfo = new MediaProviderInfo("rottentomatoes", "Rotten Tomatoes", "<html><h3>Rotten Tomatoes</h3><br />An american movie database.<br />Does not provide plot for older movies via the API.<br /><br />Available languages: EN</html>", RottenTomatoesMetadataProvider.class.getResource("/rottentomatoes_com.png")); providerInfo.setVersion(RottenTomatoes.class); return providerInfo; }
private static MediaProviderInfo createMediaProviderInfo() { MediaProviderInfo providerInfo = new MediaProviderInfo("omdbapi", "omdbapi.com", "<html><h3>Omdbapi.com</h3><br />The OMDb API is a RESTful web service to obtain movie information, all content and images on the site are contributed and maintained by our users. <br /><br />This is a private meta data provider, you may need to become a member there to use this service (more infos at http://www.omdbapi.com/)<br /><br />TinyMediaManager offers a limited access to OMDb API (10 calls per 15 seconds)<br /><br />Available languages: EN</html>", OmdbMetadataProvider.class.getResource("/omdbapi.png")); providerInfo.setVersion(OmdbMetadataProvider.class); providerInfo.getConfig().addText("apiKey", "", true); providerInfo.getConfig().load(); return providerInfo; }
public MediaScraper(ScraperType type, IMediaProvider mediaProvider) { this.mediaProvider = mediaProvider; this.type = type; MediaProviderInfo mpi = mediaProvider.getProviderInfo(); this.id = mpi.getId(); this.name = mpi.getName(); this.version = mpi.getVersion(); this.description = mpi.getDescription(); this.summary = mpi.getDescription(); this.logoUrl = mpi.getProviderLogo(); }
MediaProviderConfig config = mediaProvider.getProviderInfo().getConfig(); for (Entry<String, MediaProviderConfigObject> entry : config.getConfigObjects().entrySet()) { if (!entry.getValue().isVisible()) { String desc = BUNDLE.getString("scraper." + mediaProvider.getProviderInfo().getId() + "." + entry.getKey() + ".desc"); //$NON-NLS-1$ if (StringUtils.isNotBlank(desc)) { JLabel lblHint = new JLabel(IconManager.HINT);
providerInfo = new MediaProviderInfo(id, "Kodi: " + name, "<h3>" + summary + "</h3><br>" + description); providerInfo.setVersion(version); // deprecated solely for Kodi, so ok case "bool": if (defaultValue.equalsIgnoreCase("true") || defaultValue.equalsIgnoreCase("false")) { this.providerInfo.getConfig().addBoolean(setid, Boolean.valueOf(defaultValue)); case "select": case "labelenum": this.providerInfo.getConfig().addSelect(setid, possibleValues, defaultValue); break; case "enum": this.providerInfo.getConfig().addSelectIndex(setid, possibleValues, defaultValue); break; this.providerInfo.getConfig().addText(setid, defaultValue, encrypt); break; this.providerInfo.getConfig().getConfigObject(setid).setVisible(visible); this.providerInfo.getConfig().getConfigObject(setid).setKeyDescription(labelName); File savedSettings = new File(KodiUtil.detectKodiUserFolder(), "userdata/addon_data/" + providerInfo.getId() + "/settings.xml"); if (savedSettings.exists()) { Document set = Jsoup.parse(savedSettings, "UTF-8", ""); String setid = el.attr("id"); String value = el.attr("value"); if (providerInfo.getConfig().getConfigKeyValuePairs().keySet().contains(setid)) {
public ImdbMetadataProvider() { imdbSite = ImdbSiteDefinition.IMDB_COM; // configure/load settings providerInfo.getConfig().addBoolean("filterUnwantedCategories", true); providerInfo.getConfig().addBoolean("useTmdb", false); providerInfo.getConfig().addBoolean("scrapeCollectionInfo", false); providerInfo.getConfig().addBoolean("localReleaseDate", true); providerInfo.getConfig().addBoolean("scrapeLanguageNames", true); providerInfo.getConfig().load(); }
if (StringUtils.isBlank(x.getProviderInfo().getId())) { continue; if ("metadata.local".equals(x.getProviderInfo().getId())) { continue; // local Kodi scraper if (!tmp.containsKey(x.getProviderInfo().getId())) { tmp.put(x.getProviderInfo().getId(), x); KodiScraper old = tmp.get(x.getProviderInfo().getId()); if (StrgUtils.compareVersion(x.getProviderInfo().getVersion(), old.getProviderInfo().getVersion()) > 0) { "replacing " + x.getProviderInfo().getId() + " v" + old.getProviderInfo().getVersion() + " with v" + x.getProviderInfo().getVersion()); tmp.remove(x.getProviderInfo().getId()); tmp.put(x.getProviderInfo().getId(), x);
LOGGER.info("Searching with scraper: " + provider.getProviderInfo().getId() + ", " + provider.getProviderInfo().getVersion()); LOGGER.info(options.toString()); LOGGER.info("====================================================="); for (MediaScraper ms : getAvailableMediaScrapers()) { if (!ms.isEnabled() || provider.getProviderInfo().equals(ms.getMediaProvider().getProviderInfo()) || ms.getMediaProvider().getProviderInfo().getName().startsWith("Kodi")) { continue; try { LOGGER.info("====================================================="); LOGGER.info("Searching with alternate scraper: " + ms.getMediaProvider().getProviderInfo().getId() + ", " + provider.getProviderInfo().getVersion()); LOGGER.info(options.toString()); LOGGER.info("=====================================================");
@Override public void setItem(Object item) { selectedItem = (MediaScraper) item; if (selectedItem == null) { // label.setIcon(null); label.setText(""); } else { // ImageIcon logo = getIcon(selectedItem.getLogoURL()); // label.setIcon(logo); label.setText(selectedItem.getMediaProvider().getProviderInfo().getName()); } } }
if (resultsPage != null) { for (BaseCollection collection : ListUtils.nullSafe(resultsPage.results)) { MediaSearchResult searchResult = new MediaSearchResult(TmdbMetadataProvider.providerInfo.getId(), MediaType.MOVIE_SET); searchResult.setId(Integer.toString(collection.id)); searchResult.setTitle(collection.name); searchResult.setPosterUrl(TmdbMetadataProvider.configuration.images.base_url + "w342" + collection.poster_path); searchResult.setScore(MetadataUtil.calculateScore(searchString, collection.name)); if (searchResult.getScore() < 0.5 && providerInfo.getConfig().getValueAsBool("titleFallback")) { if (verifyMovieSetTitleLanguage(movieSetsFound, resultsPage, query)) { break;
@Override protected Pattern getUnwantedSearchResultPattern() { if (ImdbMetadataProvider.providerInfo.getConfig().getValueAsBool("filterUnwantedCategories")) { return UNWANTED_SEARCH_RESULTS; } return null; }
/** * Scrape meta data. */ public void scrapeMetaData() { try { // poster for preview setPosterUrl(result.getPosterUrl()); MediaScrapeOptions options = new MediaScrapeOptions(MediaType.MOVIE); options.setResult(result); options.setLanguage(LocaleUtils.toLocale(language.name())); options.setCountry(MovieModuleManager.MOVIE_SETTINGS.getCertificationCountry()); LOGGER.info("====================================================="); LOGGER.info("Scraper metadata with scraper: " + metadataProvider.getMediaProvider().getProviderInfo().getId() + ", " + metadataProvider.getMediaProvider().getProviderInfo().getVersion()); LOGGER.info(options.toString()); LOGGER.info("====================================================="); metadata = ((IMovieMetadataProvider) metadataProvider.getMediaProvider()).getMetadata(options); setOverview(metadata.getPlot()); setTagline(metadata.getTagline()); if (StringUtils.isBlank(posterUrl) && !metadata.getMediaArt(MediaArtworkType.POSTER).isEmpty()) { setPosterUrl(metadata.getMediaArt(MediaArtworkType.POSTER).get(0).getPreviewUrl()); } scraped = true; } catch (Exception e) { LOGGER.error("scrapeMedia", e); MessageManager.instance.pushMessage( new Message(MessageLevel.ERROR, "MovieChooser", "message.scrape.threadcrashed", new String[] { ":", e.getLocalizedMessage() })); } }
public KodiScraper parseScraper(KodiScraper scraper, List<File> common) throws Exception { LOGGER.debug("Preparing Kodi scraper: " + scraper.getProviderInfo().getName()); DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder parser = factory.newDocumentBuilder();
private static MediaProviderInfo createMediaProviderInfo() { MediaProviderInfo pi = new MediaProviderInfo("hd-trailers", "hd-trailers.net", "<html><h3>hd-trailers.net</h3>Scraper for hd-trailers.net which is able to scrape trailers</html>", HDTrailersNetTrailerProvider.class.getResource("/hd-trailers_net.png")); pi.setVersion(HDTrailersNetTrailerProvider.class); return pi; }
id = Integer.parseInt(options.getId(providerInfo.getId())); synchronized (tvdb) { try { String fallbackLanguage = MediaLanguages.get(providerInfo.getConfig().getValue("fallbackLanguage")).getLanguage(); MediaEpisode episode = new MediaEpisode(providerInfo.getId()); episode.ids.put(providerInfo.getId(), ep.id); episode.episode = TvUtils.getEpisodeNumber(ep.airedEpisodeNumber); episode.season = TvUtils.getSeasonNumber(ep.airedSeason);
private static MediaProviderInfo createMediaProviderInfo() { MediaProviderInfo providerInfo = new MediaProviderInfo("moviemeter", "moviemeter.nl", "<html><h3>Moviemeter.nl</h3><br />A dutch movie database.<br /><br />Available languages: NL</html>", MovieMeterMetadataProvider.class.getResource("/moviemeter_nl.png")); providerInfo.setVersion(MovieMeterMetadataProvider.class); providerInfo.getConfig().addBoolean("scrapeLanguageNames", true); providerInfo.getConfig().load(); return providerInfo; }
@Override protected Pattern getUnwantedSearchResultPattern() { if (ImdbMetadataProvider.providerInfo.getConfig().getValueAsBool("filterUnwantedCategories")) { return UNWANTED_SEARCH_RESULTS; } return null; }
options.setCountry(TvShowModuleManager.SETTINGS.getCertificationCountry()); MediaMetadata md = new MediaMetadata(mediaScraper.getMediaProvider().getProviderInfo().getId()); md.setReleaseDate(episode.getFirstAired()); options.setMetadata(md); LOGGER.info("Scraper metadata with scraper: " + mediaScraper.getMediaProvider().getProviderInfo().getId() + ", " + mediaScraper.getMediaProvider().getProviderInfo().getVersion()); LOGGER.info(options.toString()); LOGGER.info("=====================================================");