@RequestMapping(value = "/torznab/api", produces = MediaType.TEXT_XML_VALUE) public ResponseEntity<? extends Object> torznabapi(NewznabParameters params) throws Exception { if (params.getT() == ActionAttribute.CAPS) { return new ResponseEntity<Object>(NewznabMockBuilder.getCaps(), HttpStatus.OK); } NewznabXmlRoot rssRoot = NewznabMockBuilder.generateResponse(0, 10, params.getApikey(), false, Collections.emptyList()); Random random = new Random(); for (NewznabXmlItem item : rssRoot.getRssChannel().getItems()) { item.setNewznabAttributes(new ArrayList<>()); item.getTorznabAttributes().add(new NewznabAttribute("seeders", String.valueOf(random.nextInt(30000)))); item.getTorznabAttributes().add(new NewznabAttribute("peers", String.valueOf(random.nextInt(30000)))); if (random.nextInt(5) > 3) { item.getTorznabAttributes().add(new NewznabAttribute("grabs", String.valueOf(random.nextInt(30000)))); } item.setCategory("5000"); item.setGrabs(null); } return new ResponseEntity<Object>(rssRoot, HttpStatus.OK); }
attributes.add(new NewznabAttribute("nfo", String.valueOf(random.nextInt(2)))); item.setNewznabAttributes(attributes);
attributes.add(new NewznabAttribute("poster", "poster")); attributes.add(new NewznabAttribute("group", "group")); item.setNewznabAttributes(attributes);
String resultType; if (isNzb) { rssItem.setNewznabAttributes(newznabAttributes); resultType = APPLICATION_TYPE_NZB; } else {
rssItem.setCategory(category); rssItem.setGrabs(grabs); rssItem.setNewznabAttributes(newznabAttributes); rssItem.setTorznabAttributes(torznabAttributes);
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())); rssRoot.getRssChannel().getItems().forEach(x -> x.setNewznabAttributes(rssRoot.getRssChannel().getItems().get(0).getNewznabAttributes())); return new ResponseEntity<Object>(rssRoot, HttpStatus.OK);