177 lines
5.2 KiB
PHP
177 lines
5.2 KiB
PHP
<?php
|
|
|
|
include "common.php";
|
|
|
|
use Animarr\Release\Release;
|
|
use Animarr\Torrent\Torrent;
|
|
use Animarr\Database;
|
|
use Animarr\Release\MultiRelease;
|
|
|
|
$aid = null;
|
|
$info = null;
|
|
|
|
$limitSpecial = false;
|
|
|
|
if(isset($_GET["aid"])){
|
|
$aid = intval($_GET["aid"]);
|
|
$info = $aniDB->getAnime($aid);
|
|
$limitSpecial = isset($_GET["specials"]) ? $_GET["specials"] == 1 : false;
|
|
}
|
|
|
|
if($info !== null){
|
|
|
|
printHeader($info["title"]);
|
|
|
|
echo "<h1>".$info["title"]." <a href=\"https://anidb.net/perl-bin/animedb.pl?show=anime&aid=$aid\" target=\"_blank\">[anidb-$aid]</a></h1>";
|
|
|
|
}else{
|
|
|
|
printHeader("Recent releases");
|
|
|
|
echo "<h1>Recent releases</h1>";
|
|
|
|
}
|
|
echo "<p>";
|
|
|
|
echo "<table class=\"table table-striped table-hover\">";
|
|
|
|
|
|
echo "<tr>";
|
|
if($aid === null){
|
|
echo "<th>Show Name</th>";
|
|
}
|
|
echo "<th>Info</th><th>#</th><th style='min-width: 150px'>Name</th><th>Date</th><th>Link</th></tr>";
|
|
|
|
$blacklist = Database::getConfigKey("filter.groups.blacklist", []);
|
|
|
|
foreach($database->getRecentReleases(500, $aid, $limitSpecial ? Release::TYPE_SPECIAL : null) as $release){
|
|
|
|
$group = $release->getGroup();
|
|
|
|
if(in_array($group, $blacklist)){
|
|
continue;
|
|
}
|
|
|
|
if($release->isTrusted()){
|
|
$group = "<span class=\"label label-success\">$group</span>";
|
|
}else{
|
|
$group = "<span class=\"label label-default\">$group</span>";
|
|
}
|
|
|
|
|
|
$source = $release->getSourceString();
|
|
if($release->getSource() === Release::SOURCE_BLURAY){
|
|
$source = "<span class=\"label label-primary\">$source</span>";
|
|
}elseif($release->getSource() === Release::SOURCE_DVD){
|
|
$source = "<span class=\"label label-success\">$source</span>";
|
|
}elseif($release->getSource() === Release::SOURCE_TV){
|
|
$source = "<span class=\"label label-info\">$source</span>";
|
|
}else{
|
|
$source = "<span class=\"label label-default\">$source</span>";
|
|
}
|
|
|
|
$quality = $release->getQualityString();
|
|
if($release->getQuality() === Release::QUALITY_1080){
|
|
$quality = "<span class=\"label label-primary\">$quality</span>";
|
|
}elseif($release->getQuality() === Release::QUALITY_720){
|
|
$quality = "<span class=\"label label-success\">$quality</span>";
|
|
}else{
|
|
$quality = "<span class=\"label label-default\">$quality</span>";
|
|
}
|
|
|
|
$type = $release->getTypeString();
|
|
if($release->getType() === Release::TYPE_SINGLE){
|
|
$type = "<span class=\"label label-success\">$type</span>";
|
|
}elseif($release->getType() === Release::TYPE_VOLUME or $release->getType() === Release::TYPE_BATCH){
|
|
$type = "<span class=\"label label-primary\">$type</span>";
|
|
}else if($release->getType() === Release::TYPE_SPECIAL){
|
|
$type = "<span class=\"label label-warning\">$type</span>";
|
|
}else{
|
|
$type = "<span class=\"label label-default\">$type</span>";
|
|
}
|
|
|
|
$episodes = $release->getNumber() !== -1 ? "<span class=\"label label-success\">#" . $release->getNumber() . "</span>" : "";
|
|
if($release instanceof MultiRelease){
|
|
$e = [];
|
|
foreach($release->getContents() as $r){
|
|
if($r->getType() == Release::TYPE_SINGLE and $r->getNumber() >= 0){
|
|
$e[$r->getNumber()] = $r->getNumber();
|
|
}
|
|
}
|
|
|
|
sort($e);
|
|
|
|
$episodes = "";
|
|
$lastEpisode = null;
|
|
$lastWritten = null;
|
|
foreach($e as $episodeNumber){
|
|
$diff = ($episodeNumber - $lastEpisode);
|
|
if($lastEpisode !== null and $diff <= 1){
|
|
$lastEpisode = $episodeNumber;
|
|
continue;
|
|
}
|
|
$episodes .= ($lastEpisode === null ? "" : ("-$lastEpisode, ")) . $episodeNumber;
|
|
$lastEpisode = $episodeNumber;
|
|
$lastWritten = $episodeNumber;
|
|
}
|
|
|
|
|
|
$diff = ($episodeNumber - $lastWritten);
|
|
if($diff > 0){
|
|
$episodes .= ($lastWritten === null ? "" : ("-$lastEpisode"));
|
|
}
|
|
}
|
|
|
|
$diff = time() - $release->getUploadDate();
|
|
$hour = 3600;
|
|
$day = $hour * 24;
|
|
$week = $day * 7;
|
|
|
|
$date = "";
|
|
|
|
if($diff >= $week){
|
|
$weeks = floor($diff / $week);
|
|
$date .= "{$weeks}w ";
|
|
$diff -= $weeks * $week;
|
|
}
|
|
|
|
if($diff >= $day){
|
|
$days = floor($diff / $day);
|
|
$date .= "{$days}d ";
|
|
$diff -= $days * $day;
|
|
}
|
|
|
|
if($diff >= $hour){
|
|
$hours = floor($diff / $hour);
|
|
$date .= "{$hours}h ";
|
|
$diff -= $hours * $hour;
|
|
}
|
|
|
|
$date .= floor($diff / 60) . "m ago";
|
|
|
|
$url = $release->getInfoLink();
|
|
$urlName = getURLName($url);
|
|
if(strlen($urlName) > 23){
|
|
$urlName = substr($urlName, 0, 20) . "...";
|
|
}
|
|
echo "<tr class=\"".($release->isBest() ? "info" : ($release->isTrusted() ? "success" : ""))."\">";
|
|
$i = $aniDB->matchRelease($release);
|
|
if($aid === null){
|
|
echo "<td><small><a href=\"list.php?aid=".$i["aid"]."\">".$i["title"]."</a></small></td>";
|
|
}else if ($i !== null and $aid != $i["aid"]){
|
|
$database->matchRelease($release, true);
|
|
}
|
|
echo "<td>$group $type $source $quality</td>";
|
|
echo "<td>$episodes</td>";
|
|
echo "<td><small><code>".$release->getOriginalTitle()."</code> <a href=\"release.php?release_id=".$release->getId()."\"><span class=\"glyphicon glyphicon-info-sign\"></span></a></small></td>";
|
|
echo "<td>$date</td>";
|
|
echo "<td><a href=\"".$url."\" target=\"_blank\">".$urlName."</a> <a href=\"".$release->getDownloadLink()."\"><span class=\"glyphicon ".(strpos($release->getDownloadLink(), "magnet:") !== false ? "glyphicon-magnet" : "glyphicon-circle-arrow-down") ."\"></span></a> <a href=\"get.php?release_id=".$release->getId()."\"><span class=\"glyphicon glyphicon-plus\"></span></a></td>";
|
|
echo "</tr>";
|
|
}
|
|
|
|
echo "</table>";
|
|
|
|
echo "</p>";
|
|
|
|
printFooter();
|