protected String getEnclosureUrl(NewznabXmlItem item) throws NzbHydraException { String link; if (item.getEnclosures().size() == 0) { link = item.getEnclosures().get(0).getUrl(); } else { Optional<NewznabXmlEnclosure> nzbEnclosure = item.getEnclosures().stream().filter(x -> getEnclosureType().equals(x.getType())).findAny(); if (!nzbEnclosure.isPresent()) { warn("Unable to find URL for result " + item.getTitle() + ". Will skip it."); throw new NzbHydraException(); } link = nzbEnclosure.get().getUrl(); } return link; }
item.setPubDate(pubDate); String guid = "http://127.0.0.1:5080/nzb/" + request.getTitleBase() + i; item.setEnclosure(new NewznabXmlEnclosure(guid, Long.valueOf(size), "application/x-nzb")); item.setComments("http://127.0.0.1:5080/comments/" + i); item.setLink(guid);
protected boolean isNewznabResult(NewznabXmlRoot rssRoot) { return rssRoot.getRssChannel().getItems().stream().anyMatch(x -> x.getEnclosures().stream().anyMatch(enclosure -> "application/x-nzb".equals(enclosure.getType()))); }
@Override protected List<SearchResultItem> getSearchResultItems(NewznabXmlRoot rssRoot) throws IndexerParsingException { List<SearchResultItem> items = new ArrayList<>(); for (NewznabXmlItem rssItem : rssRoot.getRssChannel().getItems()) { SearchResultItem item = new SearchResultItem(); item.setOriginalCategory("Anime"); item.setTitle(rssItem.getTitle()); item.setLink(rssItem.getLink()); item.setIndexerGuid(rssItem.getRssGuid().getGuid()); item.setSize(rssItem.getEnclosure().getLength()); item.setPubDate(rssItem.getPubDate()); item.setIndexerScore(config.getScore().orElse(0)); item.setHasNfo(HasNfo.NO); item.setAgePrecise(true); item.setCategory(categoryProvider.getByInternalName("Anime")); item.setIndexer(this); item.setDownloadType(DownloadType.NZB); items.add(item); } return items; }
rssRoot = NewznabMockBuilder.generateResponse(mockRequest); rssRoot.getRssChannel().getNewznabResponse().setTotal(1); rssRoot.getRssChannel().getItems().get(0).getEnclosure().setLength(100000L); rssRoot.getRssChannel().getItems().get(0).getNewznabAttributes().clear(); } else if (uri.toString().contains("duplicatesandtitlegroups")) { rssRoot.getRssChannel().getItems().get(0).getEnclosure().setLength(100000L); rssRoot.getRssChannel().getItems().get(0).getNewznabAttributes().clear(); rssRoot.getRssChannel().getItems().get(0).getTorznabAttributes().clear(); rssRoot3.getRssChannel().getItems().get(0).getEnclosure().setLength(200000L); rssRoot3.getRssChannel().getItems().get(0).getNewznabAttributes().clear(); rssRoot3.getRssChannel().getItems().get(0).getTorznabAttributes().clear(); rssRoot.getRssChannel().getNewznabResponse().setTotal(10); for (NewznabXmlItem rssItem : rssRoot.getRssChannel().getItems()) { rssItem.getEnclosure().setLength(100000L); rssItem.getNewznabAttributes().clear(); rssItem.setPubDate(Instant.now());
item.setTitle(itemTitleBase + i); item.setPubDate(Instant.now().minus(i * 1000, ChronoUnit.HOURS)); item.setEnclosure(new NewznabXmlEnclosure("enclosureUrl", 5L, "application/x-nzb")); item.setComments("http://www.comments.com/" + i); item.setLink("http://www.link.com/" + i);
protected boolean isTorznabResult(NewznabXmlRoot rssRoot) { return rssRoot.getRssChannel().getItems().stream().anyMatch(x -> x.getEnclosures().stream().anyMatch(enclosure -> "application/x-bittorrent".equals(enclosure.getType())) || !x.getTorznabAttributes().isEmpty()); }
searchResultItem.setIndexer(this); searchResultItem.setTitle(cleanUpTitle(item.getTitle())); searchResultItem.setSize(item.getEnclosure().getLength()); searchResultItem.setPubDate(item.getPubDate()); searchResultItem.setIndexerScore(config.getScore().orElse(0));
resultType = APPLICATION_TYPE_TORRENT; rssItem.setEnclosure(new NewznabXmlEnclosure(link, searchResultItem.getSize(), resultType)); rssItem.setComments(searchResultItem.getCommentsLink()); rssItem.setDescription(searchResultItem.getDescription());
rssItem.setEnclosure(new NewznabXmlEnclosure(link, size, "application/x-nzb")); } else { rssItem.setEnclosure(enclosure);