OpenClassroomsBridge.php 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. <?php
  2. class OpenClassroomsBridge extends BridgeAbstract{
  3. const MAINTAINER = "sebsauvage";
  4. const NAME = "OpenClassrooms Bridge";
  5. const URI = "https://openclassrooms.com/";
  6. const DESCRIPTION = "Returns latest tutorials from OpenClassrooms.";
  7. const PARAMETERS = array( array(
  8. 'u'=>array(
  9. 'name'=>'Catégorie',
  10. 'type'=>'list',
  11. 'required'=>true,
  12. 'values'=>array(
  13. 'Arts & Culture'=>'arts',
  14. 'Code'=>'code',
  15. 'Design'=>'design',
  16. 'Entreprise'=>'business',
  17. 'Numérique'=>'digital',
  18. 'Sciences'=>'sciences',
  19. 'Sciences Humaines'=>'humainities',
  20. 'Systèmes d\'information'=>'it',
  21. 'Autres'=>'others'
  22. )
  23. )
  24. ));
  25. public function getURI(){
  26. return self::URI.'/courses?categories='.$this->getInput('u').'&'
  27. .'title=&sort=updatedAt+desc';
  28. }
  29. public function collectData(){
  30. $html = getSimpleHTMLDOM($this->getURI())
  31. or returnServerError('Could not request OpenClassrooms.');
  32. foreach($html->find('.courseListItem') as $element) {
  33. $item = array();
  34. $item['uri'] = self::URI.$element->find('a', 0)->href;
  35. $item['title'] = $element->find('h3', 0)->plaintext;
  36. $item['content'] = $element->find('slidingItem__descriptionContent', 0)->plaintext;
  37. $this->items[] = $item;
  38. }
  39. }
  40. public function getCacheDuration(){
  41. return 21600; // 6 hours
  42. }
  43. }