af_comics_dilbert.php 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. <?php
  2. class Af_Comics_Dilbert extends Af_ComicFilter {
  3. function supported() {
  4. return array("Dilbert");
  5. }
  6. function process(&$article) {
  7. if (strpos($article["link"], "dilbert.com") !== FALSE) {
  8. $res = fetch_file_contents($article["link"], false, false, false,
  9. false, false, 0,
  10. "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)");
  11. global $fetch_last_error_content;
  12. if (!$res && $fetch_last_error_content)
  13. $res = $fetch_last_error_content;
  14. $doc = new DOMDocument();
  15. @$doc->loadHTML($res);
  16. $basenode = false;
  17. if ($doc) {
  18. $xpath = new DOMXPath($doc);
  19. $basenode = $xpath->query('//img[contains(@class, "img-comic")]')->item(0);
  20. /* $entries = $xpath->query('(//img[@src])'); // we might also check for img[@class='strip'] I guess...
  21. $matches = array();
  22. foreach ($entries as $entry) {
  23. if (preg_match("/dyn\/str_strip\/.*strip\.gif$/", $entry->getAttribute("src"), $matches)) {
  24. $entry->setAttribute("src",
  25. rewrite_relative_url("http://dilbert.com/",
  26. $matches[0]));
  27. $basenode = $entry;
  28. break;
  29. }
  30. } */
  31. if ($basenode) {
  32. $article["content"] = $doc->saveXML($basenode);
  33. }
  34. }
  35. return true;
  36. }
  37. return false;
  38. }
  39. }
  40. ?>