nyaa.php 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. <?php
  2. class NyaaRequest extends EngineRequest {
  3. public $SOURCE = "nyaa.si";
  4. public function get_request_url() {
  5. return "https://$this->SOURCE/?q=" . urlencode($this->query);
  6. }
  7. public function parse_results($response) {
  8. $xpath = get_xpath($response);
  9. $results = array();
  10. if (!$xpath)
  11. return $results;
  12. foreach($xpath->query("//tbody/tr") as $result)
  13. {
  14. $name_node = $xpath->evaluate(".//td[@colspan='2']//a[not(contains(@class, 'comments'))]/@title", $result);
  15. if ($name_node->length > 0) {
  16. $name = $name_node[0]->textContent;
  17. } else {
  18. $name = "";
  19. }
  20. $centered = $xpath->evaluate(".//td[@class='text-center']", $result);
  21. $magnet_node = $xpath->evaluate(".//a[2]/@href", $centered[0]);
  22. if ($magnet_node->length > 0) {
  23. $magnet = $magnet_node[0]->textContent;
  24. $magnet_without_tracker = explode("&tr=", $magnet)[0];
  25. $magnet = $magnet_without_tracker . $this->opts->bittorrent_trackers;
  26. } else {
  27. $magnet = "";
  28. }
  29. $size = $centered[1]->textContent;
  30. $seeders = $centered[3]->textContent;
  31. $leechers = $centered[4]->textContent;
  32. array_push($results,
  33. array (
  34. "name" => htmlspecialchars($name),
  35. "seeders" => (int) $seeders,
  36. "leechers" => (int) $leechers,
  37. "magnet" => htmlspecialchars($magnet),
  38. "size" => htmlspecialchars($size),
  39. "source" => $this->SOURCE
  40. )
  41. );
  42. }
  43. return $results;
  44. }
  45. }
  46. ?>