public RssChannelBuilder newznabResponse(int offset, int total) { this.newznabResponse = new NewznabXmlResponse(offset, total); return this; }
rssRoot.getRssChannel().setNewznabResponse(new NewznabXmlResponse(0, 1)); NewznabXmlItem item = new NewznabXmlItem(); item.setDescription("NFO for NZB with ID " + params.getId()); if (params.getQ() != null && params.getQ().equals("offsettest")) { NewznabXmlRoot rssRoot = new NewznabXmlRoot(); rssRoot.getRssChannel().setNewznabResponse(new NewznabXmlResponse(0, 0)); if (params.getOffset() >= 40) { return new ResponseEntity<Object>(rssRoot, HttpStatus.OK); rssRoot.getRssChannel().getNewznabResponse().setTotal(40); return new ResponseEntity<Object>(rssRoot, HttpStatus.OK); rssRoot.getRssChannel().getNewznabResponse().setTotal(100); return new ResponseEntity<Object>(rssRoot, HttpStatus.OK); rssRoot.getRssChannel().getNewznabResponse().setTotal(100); return new ResponseEntity<Object>(rssRoot, HttpStatus.OK); .build(); NewznabXmlRoot rssRoot = NewznabMockBuilder.generateResponse(mockRequest); rssRoot.getRssChannel().getNewznabResponse().setTotal(1); return new ResponseEntity<Object>(rssRoot, HttpStatus.OK); .build(); NewznabXmlRoot rssRoot = NewznabMockBuilder.generateResponse(mockRequest); rssRoot.getRssChannel().getNewznabResponse().setTotal(1); rssRoot.getRssChannel().getItems().forEach(x -> x.setTitle("titlegroup")); return new ResponseEntity<Object>(rssRoot, HttpStatus.OK);
protected void completeIndexerSearchResult(Xml response, IndexerSearchResult indexerSearchResult, AcceptorResult acceptorResult, SearchRequest searchRequest, int offset, Integer limit) { NewznabXmlResponse newznabResponse = ((NewznabXmlRoot) response).getRssChannel().getNewznabResponse(); if (newznabResponse != null) { indexerSearchResult.setTotalResultsKnown(true); if (newznabResponse.getTotal() != null) { //Animetosho doesn't provide a total number of results indexerSearchResult.setTotalResults(newznabResponse.getTotal()); indexerSearchResult.setHasMoreResults(newznabResponse.getTotal() > newznabResponse.getOffset() + indexerSearchResult.getSearchResultItems().size() + acceptorResult.getNumberOfRejectedResults()); } else { indexerSearchResult.setTotalResults(indexerSearchResult.getSearchResultItems().size()); indexerSearchResult.setHasMoreResults(false); } indexerSearchResult.setOffset(newznabResponse.getOffset()); indexerSearchResult.setLimit(100); } else { indexerSearchResult.setTotalResultsKnown(false); indexerSearchResult.setHasMoreResults(false); indexerSearchResult.setOffset(0); indexerSearchResult.setLimit(0); } }
NewznabMockRequest mockRequest = NewznabMockRequest.builder().numberOfResults(1).titleBase("oneresult").titleWords(Collections.emptyList()).total(1).build(); rssRoot = NewznabMockBuilder.generateResponse(mockRequest); rssRoot.getRssChannel().getNewznabResponse().setTotal(1); rssRoot.getRssChannel().getItems().get(0).getEnclosure().setLength(100000L); rssRoot.getRssChannel().getItems().get(0).getNewznabAttributes().clear(); rssRoot.getRssChannel().getItems().add(rssRoot2.getRssChannel().getItems().get(0)); rssRoot.getRssChannel().getNewznabResponse().setTotal(3); NewznabMockRequest mockRequest = NewznabMockRequest.builder().numberOfResults(10).titleBase("duplicates").titleWords(Collections.emptyList()).total(10).build(); rssRoot = NewznabMockBuilder.generateResponse(mockRequest); rssRoot.getRssChannel().getNewznabResponse().setTotal(10); for (NewznabXmlItem rssItem : rssRoot.getRssChannel().getItems()) { rssItem.getEnclosure().setLength(100000L); rssRoot.getRssChannel().getNewznabResponse().setTotal(2); rssRoot.getRssChannel().getNewznabResponse().setTotal(100);
if (rssRoot.getRssChannel().getNewznabResponse() == null || rssRoot.getRssChannel().getNewznabResponse().getTotal() == 0) { return NfoResult.withoutNfo();
protected void completeIndexerSearchResult(Xml response, IndexerSearchResult indexerSearchResult, AcceptorResult acceptorResult, SearchRequest searchRequest, int offset, Integer limit) { NewznabXmlResponse newznabResponse = ((NewznabXmlRoot) response).getRssChannel().getNewznabResponse(); //DogNZB does not return a reliable total number. It's always 100 if there are more results, less if it's the last page indexerSearchResult.setTotalResultsKnown(false); if (newznabResponse != null) { if (newznabResponse.getTotal() == 100) { indexerSearchResult.setHasMoreResults(true); indexerSearchResult.setTotalResults(100); } else { indexerSearchResult.setTotalResultsKnown(true); indexerSearchResult.setHasMoreResults(false); indexerSearchResult.setTotalResults(searchRequest.getOffset().orElse(0) + newznabResponse.getTotal()); } indexerSearchResult.setOffset(newznabResponse.getOffset()); indexerSearchResult.setLimit(100); } else { indexerSearchResult.setTotalResults(0); indexerSearchResult.setHasMoreResults(false); indexerSearchResult.setOffset(0); indexerSearchResult.setLimit(0); } }
public RssBuilder newznabResponse(int offset, int total) { this.rssChannel.setNewznabResponse(new NewznabXmlResponse(offset, total)); return this; }
NewznabXmlRoot getRssRoot(List<SearchResultItem> searchResultItems, Integer offset, int total, SearchRequest searchRequest) { NewznabXmlRoot rssRoot = new NewznabXmlRoot(); NewznabXmlChannel rssChannel = new NewznabXmlChannel(); rssChannel.setTitle("NZBHydra 2"); rssChannel.setLink("https://www.github.com/theotherp/nzbhydra2"); rssChannel.setWebMaster("theotherp@gmx.de"); if (searchRequest.getDownloadType() == org.nzbhydra.searching.dtoseventsenums.DownloadType.NZB) { rssChannel.setNewznabResponse(new NewznabXmlResponse(offset == null ? 0 : offset, total)); } rssChannel.setGenerator("NZBHydra2"); rssRoot.setRssChannel(rssChannel); List<NewznabXmlItem> items = new ArrayList<>(); for (SearchResultItem searchResultItem : searchResultItems) { NewznabXmlItem rssItem = buildRssItem(searchResultItem, searchRequest); items.add(rssItem); } rssChannel.setItems(items); return rssRoot; }
channel.setWebMaster("webmaster@master.com"); channel.setLink("http://www.link.xyz"); channel.setNewznabResponse(new NewznabXmlResponse(offset == null ? startCount - 1 : offset, total == null ? endCount : total));
public static NewznabXmlRoot getRssRoot(List<NewznabXmlItem> items, int offset, int total) { NewznabXmlRoot rssRoot = new NewznabXmlRoot(); rssRoot.setVersion("2.0"); NewznabXmlChannel channel = new NewznabXmlChannel(); channel.setTitle("channelTitle"); channel.setDescription("channelDescription"); channel.setLanguage("en-gb"); channel.setWebMaster("webmaster@master.com"); channel.setLink("http://127.0.0.1:5080"); channel.setNewznabResponse(new NewznabXmlResponse(offset, total)); channel.setItems(items); rssRoot.setRssChannel(channel); return rssRoot; }