//echo '<p>List of episodes:</p><ol>'; foreach ($episodes as $container) { $episode_image = $xpath->query('.//div[@class="card-cloudcast-image"]/a/img', $container); $large_photo = 'http:' . $episode_image->item(0)->getAttribute("src"); $episode_info = $xpath->query('.//div[@class="card-cloudcast-image"]/span', $container); $e_title = $episode_info->item(0)->getAttribute("m-title"); $e_url = 'http://www.mixcloud.com' . $episode_info->item(0)->getAttribute("m-url"); $e_description = json_decode(curlGet('http://api.mixcloud.com' . $episode_info->item(0)->getAttribute("m-url")))->description; $e_preview = $episode_info->item(0)->getAttribute("m-preview"); $e_server = substr($e_preview, 0, 29); // todo - should not just be 39 magic number, but where 'preview/' is in url $e_identifier = substr($e_preview, 39); $e_identifier = rtrim($e_identifier, ".mp3"); $e_download = $e_server . '/c/m4a/64/' . $e_identifier . '.m4a'; $e_original = $e_server . '/c/originals/' . $e_identifier . '.mp3'; $item_size = get_Size($e_original); /* if $item_size is 168 this means not found */ if ($item_size > 200) { $episode_update = $xpath->query('.//div[@class="card-stats cf"]/span[@class="card-date"]/time', $container); if ($episode_update) { $pubDate = strtotime($episode_update->item(0)->getAttribute("datetime")); } else { $pubDate = "false"; } $output .= "<item>\n\t\t\t\t<pubDate>" . date(DATE_RSS, $pubDate) . "</pubDate>\n\t\t\t\t<title><![CDATA[{$e_title}]]></title>\n\t\t\t\t<link>{$e_url}</link>\n\t\t\t\t<description><![CDATA[{$e_description}]]></description>\n\t\t\t\t<itunes:image href=\"{$large_photo}\" />\n\t\t\t\t<enclosure url=\"{$e_original}\" length=\"{$item_size}\" type=\"audio/mp4\" />\n\t\t\t\t<guid isPermaLink=\"true\">{$e_url}</guid>\n\t\t\t</item>\n\t\t\t\t"; } } } ++$page; } /* seems like we're getting the closing footer too early */
//episodes that are disabled have no title continue; } $e_title = $episode_info->item(0)->getAttribute("m-title"); $e_url = 'http://www.mixcloud.com' . $episode_info->item(0)->getAttribute("m-url"); $e_description = json_decode(curlGet('http://api.mixcloud.com' . $episode_info->item(0)->getAttribute("m-url")))->description; $e_preview = $episode_info->item(0)->getAttribute("m-preview"); $length = strpos($e_preview, "preview"); $e_server = substr($e_preview, 0, $length - 1); $e_server = str_replace("audiocdn", "stream", $e_server); // todo - should not just be 39 magic number, but where 'preview/' is in url $e_identifier = substr($e_preview, $length + 9); $e_identifier = rtrim($e_identifier, ".mp3"); $e_download = $e_server . '/c/m4a/64/' . $e_identifier . '.m4a'; $e_original = $e_server . '/c/originals/' . $e_identifier . '.mp3'; $item_size = get_Size($e_download); /* if $item_size is 168 this means not found */ if ($item_size > 200) { $episode_update = $xpath->query('.//div[@class="card-stats cf"]/span[@class="card-date"]/time', $container); if ($episode_update) { $pubDate = strtotime($episode_update->item(0)->nodeValue); } else { $pubDate = "false"; } $output .= "<item>\n\t\t\t\t<pubDate>" . date(DATE_RSS, $pubDate) . "</pubDate>\n\t\t\t\t<title><![CDATA[{$e_title}]]></title>\n\t\t\t\t<link>{$e_url}</link>\n\t\t\t\t<description><![CDATA[{$e_description}]]></description>\n\t\t\t\t<itunes:image href=\"{$large_photo}\" />\n\t\t\t\t<enclosure url=\"{$e_download}\" length=\"{$item_size}\" type=\"audio/mp4\" />\n\t\t\t\t<guid isPermaLink=\"true\">{$e_url}</guid>\n\t\t\t</item>\n\t\t\t\t"; } } } } while ($nextURL); /* seems like we're getting the closing footer too early */ sleep(2);