diff --git a/bridges/ZoneTelechargementBridge.php b/bridges/ZoneTelechargementBridge.php
index f11f3b7d..06103df0 100644
--- a/bridges/ZoneTelechargementBridge.php
+++ b/bridges/ZoneTelechargementBridge.php
@@ -18,57 +18,109 @@ class ZoneTelechargementBridge extends BridgeAbstract {
'type' => 'text',
'required' => true,
'title' => 'URL d\'une série sans le https://www.zt-za.com/',
- 'exampleValue' => 'telecharger-series/31079-halt-and-catch-fire-saison-4-french-hd720p.html'
+ 'exampleValue' => 'telecharger-series/31079-halt-and-catch-fire-saison-4-french-hd720p.html'),
+ 'filter' => array(
+ 'name' => 'Type de contenu',
+ 'type' => 'list',
+ 'title' => 'Type de contenu à suivre : Téléchargement, Streaming ou les deux',
+ 'values' => array(
+ 'Streaming et Téléchargement' => 'both',
+ 'Téléchargement' => 'download',
+ 'Streaming' => 'streaming'
+ ),
+ 'defaultValue' => 'both'
)
)
);
- // This is an URL that is not protected by robot protection
+ // This is an URL that is not protected by robot protection for Direct Download
const UNPROTECED_URI = 'https://www.zone-annuaire.com/';
+ // This is an URL that is not protected by robot protection for Streaming Links
+ const UNPROTECED_URI_STREAMING = 'https://zone-telechargement.stream/';
+
public function getIcon() {
- return self::URI . '/templates/Default/images/favicon.ico';
+ return self::UNPROTECED_URI . '/templates/Default/images/favicon.ico';
}
public function collectData(){
$html = getSimpleHTMLDOM(self::UNPROTECED_URI . $this->getInput('url'))
or returnServerError('Could not request Zone Telechargement.');
+ $filter = $this->getInput('filter');
+
// Get the TV show title
$qualityselector = 'div[style=font-size: 18px;margin: 10px auto;color:red;font-weight:bold;text-align:center;]';
$show = trim($html->find('div[class=smallsep]', 0)->next_sibling()->plaintext);
$quality = trim(explode("\n", $html->find($qualityselector, 0)->plaintext)[0]);
$this->showTitle = $show . ' ' . $quality;
- // Get the post content
- $linkshtml = $html->find('div[class=postinfo]', 0);
-
$episodes = array();
- $list = $linkshtml->find('a');
- // Construct the tabble of episodes using the links
- foreach($list as $element) {
- // Retrieve episode number from link text
- $epnumber = explode(' ', $element->plaintext)[1];
- $hoster = $this->findLinkHoster($element);
+ // Handle the Direct Download links
+ if($filter == 'both' || $filter == 'download') {
+ // Get the post content
+ $linkshtml = $html->find('div[class=postinfo]', 0);
- // Format the link and add the link to the corresponding episode table
- $episodes[$epnumber][] = '' . $hoster . ' - '
- . $this->showTitle . ' Episode ' . $epnumber . '';
+ $list = $linkshtml->find('a');
+ // Construct the table of episodes using the links
+ foreach($list as $element) {
+ // Retrieve episode number from link text
+ $epnumber = explode(' ', $element->plaintext)[1];
+ $hoster = $this->findLinkHoster($element);
+ // Format the link and add the link to the corresponding episode table
+ $episodes[$epnumber]['ddl'][] = '' . $hoster . ' - '
+ . $this->showTitle . ' Episode ' . $epnumber . '';
+
+ }
+ }
+
+ // Handle the Streaming links
+ if($filter == 'both' || $filter == 'streaming') {
+ // Get the post content, on the dedicated streaming website
+ $htmlstreaming = getSimpleHTMLDOM(self::UNPROTECED_URI_STREAMING . $this->getInput('url'))
+ or returnServerError('Could not request Zone Telechargement.');
+ // Get the HTML element containing all the links
+ $streaminglinkshtml = $htmlstreaming->find('p[style=background-color: #FECC00;]', 1)->parent()->next_sibling();
+ // Get all streaming Links
+ $liststreaming = $streaminglinkshtml->find('a');
+ foreach($liststreaming as $elementstreaming) {
+ // Retrieve the episode number from the link text
+ $epnumber = explode(' ', $elementstreaming->plaintext)[1];
+
+ // Format the link and add the link to the corresponding episode table
+ $episodes[$epnumber]['streaming'][] = ''
+ . $this->showTitle . ' Episode ' . $epnumber . '';
+ }
}
// Finally construct the items array
foreach($episodes as $epnum => $episode) {
- $item = array();
- // Add every link available in the episode table separated by a
tag
- $item['content'] = implode('
', $episode);
- $item['title'] = $this->showTitle . ' Episode ' . $epnum;
- // As RSS Bridge use the URI as GUID they need to be unique : adding a md5 hash of the title element
- // should geneerate unique URI to prevent confusion for RSS readers
- $item['uri'] = self::URI . $this->getInput('url') . '#' . hash('md5', $item['title']);
- // Insert the episode at the beginning of the item list, to show the newest episode first
- array_unshift($this->items, $item);
+ // Handle the Direct Download links
+ if(array_key_exists('ddl', $episode)) {
+ $item = array();
+ // Add every link available in the episode table separated by a
tag
+ $item['content'] = implode('
', $episode['ddl']);
+ $item['title'] = $this->showTitle . ' Episode ' . $epnum . ' - Téléchargement';
+ // Generate an unique UID by hashing the item title to prevent confusion for RSS readers
+ $item['uid'] = hash('md5', $item['title']);
+ $item['uri'] = self::URI . $this->getInput('url');
+ // Insert the episode at the beginning of the item list, to show the newest episode first
+ array_unshift($this->items, $item);
+ }
+ // Handle the streaming link
+ if(array_key_exists('streaming', $episode)) {
+ $item = array();
+ // Add every link available in the episode table separated by a
tag
+ $item['content'] = implode('
', $episode['streaming']);
+ $item['title'] = $this->showTitle . ' Episode ' . $epnum . ' - Streaming';
+ // Generate an unique UID by hashing the item title to prevent confusion for RSS readers
+ $item['uid'] = hash('md5', $item['title']);
+ $item['uri'] = self::URI . $this->getInput('url');
+ // Insert the episode at the beginning of the item list, to show the newest episode first
+ array_unshift($this->items, $item);
+ }
}
}
@@ -85,8 +137,6 @@ class ZoneTelechargementBridge extends BridgeAbstract {
private function findLinkHoster($element) {
// The hoster name is one level higher than the link tag : get the parent element
$element = $element->parent();
- //echo "PARENT : $element \n";
- $continue = true;
// Walk through all elements in the reverse order until finding the one with a div and that is not a
while(!($element->find('div', 0) != null && $element->tag != 'br')) {
$element = $element->prev_sibling();