AllocineFRBridge.php 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. <?php
  2. class AllocineFRBridge extends BridgeAbstract{
  3. const MAINTAINER = "superbaillot.net";
  4. const NAME = "Allo Cine Bridge";
  5. const URI = "http://www.allocine.fr";
  6. const DESCRIPTION = "Bridge for allocine.fr";
  7. const PARAMETERS = array( array(
  8. 'category'=>array(
  9. 'name'=>'category',
  10. 'type'=>'list',
  11. 'required'=>true,
  12. 'exampleValue'=>'Faux Raccord',
  13. 'title'=>'Select your category',
  14. 'values'=>array(
  15. 'Faux Raccord'=>'faux-raccord',
  16. 'Top 5'=>'top-5',
  17. 'Tueurs en Séries'=>'tueurs-en-serie'
  18. )
  19. )
  20. ));
  21. public function getURI(){
  22. switch($this->getInput('category')){
  23. case 'faux-raccord':
  24. $uri = static::URI.'video/programme-12284/saison-24580/';
  25. break;
  26. case 'top-5':
  27. $uri = static::URI.'video/programme-12299/saison-22542/';
  28. break;
  29. case 'tueurs-en-serie':
  30. $uri = static::URI.'video/programme-12286/saison-22938/';
  31. break;
  32. }
  33. return $uri;
  34. }
  35. public function getName(){
  36. return self::NAME.' : '
  37. .array_search(
  38. $this->getInput('category'),
  39. self::PARAMETERS[$this->queriedContext]['category']['values']
  40. );
  41. }
  42. public function collectData(){
  43. $html = getSimpleHTMLDOM($this->getURI())
  44. or returnServerError("Could not request ".$this->getURI()." !");
  45. $category=array_search(
  46. $this->getInput('category'),
  47. self::PARAMETERS[$this->queriedContext]['category']['values']
  48. );
  49. foreach($html->find('figure.media-meta-fig') as $element)
  50. {
  51. $item = array();
  52. $title = $element->find('div.titlebar h3.title a', 0);
  53. $content = trim($element->innertext);
  54. $figCaption = strpos($content, $category);
  55. if($figCaption !== false)
  56. {
  57. $content = str_replace('src="/', 'src="'.static::URI, $content);
  58. $content = str_replace('href="/', 'href="'.static::URI, $content);
  59. $content = str_replace('src=\'/', 'src=\''.static::URI, $content);
  60. $content = str_replace('href=\'/', 'href=\''.static::URI, $content);
  61. $item['content'] = $content;
  62. $item['title'] = trim($title->innertext);
  63. $item['uri'] = static::URI . $title->href;
  64. $this->items[] = $item;
  65. }
  66. }
  67. }
  68. public function getCacheDuration(){
  69. return 25200; // 7 hours
  70. }
  71. }