All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, try to follow Semantic Versioning
- Les "encarts" n'étaient plus détectés, c'est réglé ! (changement de type de la page ?)
- maj des tests avec le nouveau site de rf
- le site de RF change, cette classe aussi, gros refactoring
- les images sont, à priori, toutes bien retrouvées
- les url sont nettoyées en entrée, c'est mieux !
- le choix des medias (audios) est maintenant celui de RF, la préférence interne est mise en stand-by.
- il y a plus de requêtes vers RF, c'est comme ça, faudrait paralléliser !
- maj de composer.json pour les dépendances
- $this->error sera enlevée à la prochaine version, il ne restera que les exceptions
- erreur sur certaines émissions (changement dans l'API ?)
- la classe peut maintenant être instantiée qu'une seule fois et faire +sieurs 'extract()' sans erreur.
- BC, on ne peut plus ajouter un crawler, mais directement le html avant le 'extract()'.
- Fin de l'utilisation des dépendances à Symfony/dom-crawler et Symfony/css-selector
- beaucoup plus de tests (episode (avec et ss encart), emission, serie, rss)
- Si un Crawler est existe, vérifie que l'url de l'extraction est celle du crawler
- maj test (maj de v2.4.6)
- retrouve une bonne url (new API) pour l'image d'un item d'une série
- il manquait 'image' dans le retour en json
- Les "encarts" ont toutes les informations pour être dans un flux rss
- meilleur "page" pour le type "NewsArticle"
- un peu du readme
- php >=8.0 à >=8.1
- les "encarts" peuvent être extraits dans des pages sans emission
- les pages d'article seule renvoie des informations
- helper avec *.info.json revu pour 'playlist' et 'channel'
- extrait les "encarts" si présents dans la page d'un "RadioEpisode", intégrés dans "all_items".
- pas de html si le crawler est fourni
- *.info.json 'playlist' pour 'channel' contient le nom de l'émission
- Item (et Page) est un simple DTO
- rfrance::toInfoJson() est plus proche des *.info.json
- Item::playlist est remplacé par Item::emission
- test sur une serie (que le premier épisode)
- ajout du helper rfrance::toArray()
No BC
- extrait tous les média disponibles, même pour une seule émission
Besturl explain in readme
- "Page" est maintenant seulement un DTO
No BC
- Erreur si pas de date de publication dans la page web (série)
- throw une exception avant de scraper si l'url est invalide
- tests invalid urls
- tests un épisode
- tests petite série (PodcastSeries)
- README.md
- 'emission' n'était pas bien détecté dans les séries et levait une exception (chgmnt api RF)
- la méthode 'extract' a deux arguments : URL et max_items. L'option 'force_rss' n'existe plus et c'est tant mieux, c'était confus.
- Beaucoup moins de requêtes http (une requête par page avec tous ces épisodes).
- les séries (ou podcast) sans lien d'épisode sont maintenant bien récupérées.
- la dépendance à 'http-client' et à 'cUrl'.
- la 'Page' et les 'Item' contiennent un peu plus d'information.
- s'il y a plusieurs audios pour un épisode, le "meilleur" est sélectionné et la liste est accessible dans item->media.
- dependance : colinodell/json5
- bug avec le crawler (filter) version 6.0
- requirement php 8.0.2
- 'force_rss' est dans les données retournées (mais pas dans le flux rss)
- on peut accéder à l'url d'un hypothétique flux rss : ->page->rss_url
- on peut injecter un (dom) crawler dans la classe
- Extraction de l'image de la page pour une série
- pour les séries, extrait le "bon" titre dans la page d'une émission
- retour à php >= 8.1
- "http-client" (et les requêtes en parallèle avec cUrl) pour les items.
- Extrait les items sans media
- Purger le cache
- les durées des caches par defaut sont plus cohérentes.
- qq légers bug :-)
- public accès à 'short_path', partie finale de l'url.
- cache sans limite pour les items seuls
- Amélioration de la détection d'un flux xml (et donc de l'utilisation de 'force_rss').
- Item::title commence par son numéro dans la série
Première release