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; }
return new SingleCheckCapsResponse(request.getKey(), false, rssRoot.getRssChannel().getGenerator()); long countCorrectResults = rssRoot.getRssChannel().getItems().stream().filter(x -> request.getTitleExpectedToContain().stream().anyMatch(y -> x.getTitle().toLowerCase().contains(y.toLowerCase()))).count(); float percentCorrect = (100 * countCorrectResults) / rssRoot.getRssChannel().getItems().size(); boolean supported = percentCorrect >= ID_THRESHOLD_PERCENT;
rssItem.getNewznabAttributes().clear(); rssItem.setPubDate(Instant.now()); rssItem.setDescription("Indexer: " + getName() + ", title:" + rssItem.getTitle());
@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; }
NewznabMockRequest mockRequest = NewznabMockRequest.builder().numberOfResults(10).titleBase("actualduplicates").offset(params.getOffset()).titleWords(Collections.emptyList()).total(10).build(); NewznabXmlRoot rssRoot = NewznabMockBuilder.generateResponse(mockRequest); rssRoot.getRssChannel().getItems().forEach(x -> x.setTitle(rssRoot.getRssChannel().getItems().get(0).getTitle())); rssRoot.getRssChannel().getItems().forEach(x -> x.setLink(rssRoot.getRssChannel().getItems().get(0).getLink())); rssRoot.getRssChannel().getItems().forEach(x -> x.setRssGuid(rssRoot.getRssChannel().getItems().get(0).getRssGuid()));
searchResultItem.setTitle(cleanUpTitle(item.getTitle())); searchResultItem.setSize(item.getEnclosure().getLength()); searchResultItem.setPubDate(item.getPubDate());