Blame | Last modification | View Log | Download
<?php
/*************************************************************
* TorrentFlux - PHP Torrent Manager
* www.torrentflux.com
**************************************************************/
/*
This file is part of TorrentFlux.
TorrentFlux is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
TorrentFlux is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with TorrentFlux; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
include_once("config.php");
include_once("functions.php");
include_once("lastRSS.php");
// check http://varchars.com/rss/ for feeds
// The following is for PHP < 4.3
if (!function_exists('html_entity_decode'))
{
function html_entity_decode($string, $opt = ENT_COMPAT)
{
$trans_tbl = get_html_translation_table (HTML_ENTITIES);
$trans_tbl = array_flip ($trans_tbl);
if ($opt & 1)
{
// Translating single quotes
// Add single quote to translation table;
// doesn't appear to be there by default
$trans_tbl["'"] = "'";
}
if (!($opt & 2))
{
// Not translating double quotes
// Remove double quote from translation table
unset($trans_tbl["""]);
}
return strtr ($string, $trans_tbl);
}
}
// Just to be safe ;o)
if (!defined("ENT_COMPAT")) define("ENT_COMPAT", 2);
if (!defined("ENT_NOQUOTES")) define("ENT_NOQUOTES", 0);
if (!defined("ENT_QUOTES")) define("ENT_QUOTES", 3);
DisplayHead("RSS Torrents");
// Get RSS feeds from Database
$arURL = GetRSSLinks();
// create lastRSS object
$rss = new lastRSS();
// setup transparent cache
$rss->cache_dir = $cfg["torrent_file_path"];
$rss->cache_time = $cfg["rss_cache_min"] * 60; // 1200 = 20 min. 3600 = 1 hour
$rss->strip_html = false; // don't remove HTML from the description
echo "<a name=\"top\"></a><div align=\"center\">";
echo "<table border=1 cellspacing=0 width=\"760\" cellpadding=5><tr>";
echo "<td bgcolor=\"".$cfg["table_header_bg"]."\">RSS Feeds (jump list):";
echo "<ul>";
// Loop through each RSS feed
foreach( $arURL as $rid => $url )
{
if( $rs = $rss->get( $url ) )
{
if( !empty( $rs["items"] ) )
{
// Cache rss feed so we don't have to call it again
$rssfeed[] = $rs;
echo "<li><a href=\"#".$rid."\">".$rs["title"]."</a></li>\n";
}
else
{
$rssfeed[] = "";
echo "<li>* RSS timed out * (<a href=\"#".$rid."\">".$url."</a>)</li>\n";
}
}
else
{
// Unable to grab RSS feed, must of timed out
$rssfeed[] = "";
echo "<li>* RSS timed out * (<a href=\"#".$rid."\">".$url."</a>)</li>\n";
}
}
echo "</ul>* Click on Torrent Links below to add them to the Torrent Download List</td>";
echo "</tr></table>";
echo "</div>";
// Parse through cache RSS feed
foreach( $rssfeed as $rid => $rs )
{
$title = "";
$content = "";
$pageUrl = "";
if( !empty( $rs["items"] ) )
{
// get Site title and Page Link
$title = $rs["title"];
$pageUrl = $rs["link"];
$content = "";
for ($i=0; $i < count($rs["items"]); $i++)
{
$link = $rs["items"][$i]["link"];
$title2 = $rs["items"][$i]["title"];
$pubDate = (!empty($rs["items"][$i]["pubDate"])) ? $rs["items"][$i]["pubDate"] : "Unknown";
// RSS entry needs to have a link, otherwise pointless
if( empty( $link ) )
continue;
if($link != "" && $title2 !="")
{
$content .= "<tr><td><img src=\"images/download_owner.gif\" width=\"16\" height=\"16\" title=\"".$link."\"><a href=\"index.php?url_upload=".$link."\">".$title2."</a></td><td> ".$pubDate."</td></tr>\n";
}
else
{
$content .= "<tr><td class=\"tiny\"><img src=\"images/download_owner.gif\" width=\"16\" height=\"16\">".ScrubDescription(str_replace("Torrent: <a href=\"", "Torrent: <a href=\"index.php?url_upload=", html_entity_decode($rs["items"][$i]["description"])), $title2)."</td><td valign=\"top\">".$pubDate."</td></tr>";
}
}
}
else
{
// Request timed out, display timeout message
echo "<br>**** RSS timed out: <a href=\"".$url."\" target=\"_blank\">".$url."</a>";
}
if ($content != "") { // Close the content and add a line break
$content .= "<br>";
}
displayNews($title, $pageUrl, $content, $rid);
}
DisplayFoot();
function displayNews($title, $pageUrl, $content, $rid) {
global $cfg;
// Draw the Table
echo "<a name=\"".$rid."\"></a><table width=\"760\" border=1 bordercolor=\"".$cfg["table_admin_border"]."\" cellpadding=\"2\" cellspacing=\"0\" bgcolor=\"".$cfg["table_data_bg"]."\">";
echo "<tr><td colspan=2 bgcolor=\"".$cfg["table_header_bg"]."\" background=\"themes/".$cfg["theme"]."/images/bar.gif\">";
echo "<img src=\"images/properties.png\" width=18 height=13 border=0> <strong><a href=\"".$pageUrl."\" target=\"_blank\"><font class=\"adminlink\">".$title."</font></a> <font class=\"tinywhite\">[<a href=\"#\"><font class=\"tinywhite\">top</font></a>]</font></strong>";
echo "</td></tr>";
echo "<tr><td bgcolor=\"".$cfg["table_header_bg"]."\"><div align=center class=\"title\">"._TORRENTFILE."</div></td>";
echo "<td bgcolor=\"".$cfg["table_header_bg"]."\" width=\"33%\"><div align=center class=\"title\">"._TIMESTAMP."</div></td>";
echo $content;
echo "</table>";
}
// Scrub the description to take out the ugly long URLs
function ScrubDescription($desc, $title)
{
$rtnValue = "";
$parts = explode("</a>", $desc);
$replace = ereg_replace('">.*$', '">'.$title."</a>", $parts[0]);
if (strpos($parts[1], "Search:") !== false)
{
$parts[1] = $parts[1]."</a>\n";
}
for($inx = 2; $inx < count($parts); $inx++)
{
if (strpos($parts[$inx], "Info: <a ") !== false)
{
// We have an Info: and URL to clean
$parts[$inx] = ereg_replace('">.*$', '" target="_blank">Read More...</a>', $parts[$inx]);
}
}
$rtnValue = $replace;
for ($inx = 1; $inx < count($parts); $inx++)
{
$rtnValue .= $parts[$inx];
}
return $rtnValue;
}
?>