getURI() . '/seasons');
if (!$html) {
returnServerError('Could not load \'seasons\' page!');
}
$season = $html->find('div.follows_menu/a', 1);
if (!$season) {
returnServerError('Could not find \'Season Anime List\'!');
}
$html = getSimpleHTMLDOM($this->getURI() . $season->href);
if (!$html) {
returnServerError('Could not load \'Season Anime List\' from \'' . $season->innertext . '\'!');
}
return $html;
}
// Extracts the anime title
private function ExtractAnimeTitle($anime)
{
$title = $anime->find('a', 0);
if (!$title) {
returnServerError('Could not find anime title!');
}
return trim($title->innertext);
}
// Extracts the anime URI
private function ExtractAnimeURI($anime)
{
$uri = $anime->find('a', 0);
if (!$uri) {
returnServerError('Could not find anime URI!');
}
return $this->getURI() . $uri->href;
}
// Extracts the anime release date (timestamp)
private function ExtractAnimeTimestamp($anime)
{
$timestamp = $anime->find('span.header_info_block', 1);
if (!$timestamp) {
returnServerError('Could not find anime timestamp!');
}
return strtotime($timestamp->innertext);
}
// Extracts the anime studio name (author)
private function ExtractAnimeAuthor($anime)
{
$author = $anime->find('span.header_info_block', 2);
if (!$author) {
return;
} // Sometimes the studio is unknown, so leave empty
return trim($author->innertext);
}
// Extracts the episode information (x of y released)
private function ExtractAnimeEpisodeInformation($anime)
{
$episode = $anime->find('div.header_info_episode', 0);
if (!$episode) {
returnServerError('Could not find anime episode information!');
}
return preg_replace('/\r|\n/', ' ', $episode->plaintext);
}
// Extracts the background image
private function ExtractAnimeBackgroundImage($anime)
{
// Getting the picture is a little bit tricky as it is part of the style.
// Luckily the style is part of the parent div :)
if (preg_match("/url\(\/\/([^\)]+)\)/i", $anime->parent->style, $matches)) {
return $matches[1];
}
returnServerError('Could not extract background image!');
}
// Builds an URI to search for a specific anime (subber is left empty)
private function BuildAnimeSearchURI($anime)
{
return $this->getURI() . '/search/?title=' . urlencode($this->ExtractAnimeTitle($anime)) . '&subber=';
}
// Builds the content string for a given anime
private function BuildAnimeContent($anime)
{
// We'll use a template string to place our contents
return '
' . $this->ExtractAnimeEpisodeInformation($anime) . '