Torrent Strike multi BBCODE
Isearched on the forum and didn'T find an answer to this. I want to enable BBCODE in torrent description. here's my details.php
PHP Code:
<?
ob_start("ob_gzhandler");
require_once("include/bittorrent.php");
function getagent($httpagent) { if (preg_match("/^Azureus ([0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+)/", $httpagent, $matches)) return "Azureus/$matches[1]"; elseif (preg_match("/BitTorrent\\/S-([0-9]+\\.[0-9]+(\\.[0-9]+)*)/", $httpagent, $matches)) return "Shadow's/$matches[1]"; elseif (preg_match("/BitTorrent\\/U-([0-9]+\\.[0-9]+\\.[0-9]+)/", $httpagent, $matches)) return "UPnP/$matches[1]"; elseif (preg_match("/^BitTorrent\\/T-(.+)$/", $httpagent, $matches)) return "BitTornado/$matches[1]"; elseif (preg_match("/^BitTorrent\\/([0-9]+\\.[0-9]+(\\.[0-9]+)*)/", $httpagent, $matches)) return "BitTorrent/$matches[1]"; elseif (preg_match("/^Python-urllib\\/.+?, BitTorrent\\/([0-9]+\\.[0-9]+(\\.[0-9]+)*)/", $httpagent, $matches)) return "BitTorrent/$matches[1]"; elseif (ereg("^BitTorrent\\/BitSpirit$", $httpagent)) return "BitSpirit"; elseif (preg_match("/^BitTorrent\\/brst(.+)/", $httpagent, $matches)) return "Burst/$matches[1]"; elseif (preg_match("/^RAZA (.+)$/", $httpagent, $matches)) return "Shareaza/$matches[1]"; else return "---"; }
function dltable($name, $arr, $torrent) {
global $CURUSER; $s = "<b>" . count($arr) . " $name</b><br/><br/>\n"; if (!count($arr)) return $s; $s .= "\n"; $s .= "<table width=\"100%\" class=\"coltable\" cellspacing=\"1\" >\n"; $s .= "<tr><td class=\"colhead\">" .D_USER_IP. "</td>" . "<td class=\"colhead\" align=\"center\">" .D_CONNECTABLE. "</td>". "<td class=\"colhead\" align=\"right\">" .D_UPLOADED. "</td>". "<td class=\"colhead\" align=\"center\">" .D_RATE. "</td>". "<td class=\"colhead\" align=\"right\">" .D_DOWNLOADED. "</td>" . "<td class=\"colhead\" align=\"center\">" .D_RATE. "</td>" . "<td class=\"colhead\" align=\"right\">" .D_RATIO. "</td>" . "<td class=\"colhead\" align=\"right\">" .D_COMPLETE. "</td>" . "<td class=\"colhead\" align=\"right\">" .D_CONNECTED. "</td>" . "<td class=\"colhead\" align=\"right\">" .D_IDLE. "</td>" . "<td class=\"colhead\" align=\"left\">" .D_CLIENT. "</td></tr>\n"; $now = time(); $moderator = (isset($CURUSER) && get_user_class() >= UC_MODERATOR); $mod = get_user_class() >= UC_MODERATOR; foreach ($arr as $e) {
// user/ip/port // check if anyone has this ip ($unr = mysql_query("SELECT username, privacy FROM users WHERE id=$e[userid] ORDER BY last_access DESC LIMIT 1")) or die; $una = mysql_fetch_array($unr); if ($una["privacy"] == "strong") continue; $s .= "<tr>\n"; if ($una["username"]) $s .= "<td class=\"row1\"><a href=\"userdetails.php?id=$e[userid]\"><b>$una[username]</b></a></td>\n"; else $s .= "<td class=\"row1\">" . ($mod ? $e["ip"] : preg_replace('/\.\d+$/', ".xxx", $e["ip"])) . "</td>\n"; $secs = max(1, ($now - $e["st"]) - ($now - $e["la"])); $revived = $e["revived"] == "yes"; $s .= "<td class=\"row1\" align=\"center\">" . ($e[connectable] == "yes" ? "Yes" : "<font color=\"red\">No</font>") . "</td>\n"; $s .= "<td class=\"row1\" align=\"right\">" . mksize($e["uploaded"]) . "</td>\n"; $s .= "<td class=\"row1\" align=\"right\"><nobr>" . mksize(($e["uploaded"] - $e["uploadoffset"]) / $secs) . "/s</nobr></td>\n"; $s .= "<td class=\"row1\" align=\"right\">" . mksize($e["downloaded"]) . "</td>\n"; if ($e["seeder"] == "no") $s .= "<td class=\"row1\" align=\"right\"><nobr>" . mksize(($e["downloaded"] - $e["downloadoffset"]) / $secs) . "/s</nobr></td>\n"; else $s .= "<td class=\"row1\" align=\"right\"><nobr>" . mksize(($e["downloaded"] - $e["downloadoffset"]) / max(1, $e["finishedat"] - $e[st])) . "/s</nobr></td>\n"; if ($e["downloaded"]) { $ratio = floor(($e["uploaded"] / $e["downloaded"]) * 1000) / 1000; $s .= "<td class=\"row1\" align=\"right\"><font color=\"" . get_ratio_color($ratio) . "\">" . number_format($ratio, 3) . "</font></td>\n"; } else if ($e["uploaded"]) $s .= "<td class=\"row1\" align=\"right\">Inf.</td>\n"; else $s .= "<td class=\"row1\" align=\"right\">---</td>\n"; $s .= "<td class=\"row1\" align=\"right\">" . sprintf("%.2f%%", 100 * (1 - ($e["to_go"] / $torrent["size"]))) . "</td>\n"; $s .= "<td class=\"row1\" align=\"right\">" . mkprettytime($now - $e["st"]) . "</td>\n"; $s .= "<td class=\"row1\" align=\"right\">" . mkprettytime($now - $e["la"]) . "</td>\n"; $s .= "<td class=\"row1\" align=\"left\">" . htmlspecialchars(getagent($e["agent"])) . "</td>\n"; $s .= "</tr>\n"; } $s .= "</table>\n"; return $s; }
loggedinorreturn();
$id = 0 + $_GET["id"];
if (!isset($id) || !$id) die();
$res = mysql_query("SELECT torrents.seeders, torrents.banned, torrents.leechers, torrents.info_hash, torrents.filename, LENGTH(torrents.nfo) AS nfosz, UNIX_TIMESTAMP() - UNIX_TIMESTAMP(torrents.last_action) AS lastseed, torrents.numratings, torrents.name, IF(torrents.numratings < $minvotes, NULL, ROUND(torrents.ratingsum / torrents.numratings, 1)) AS rating, torrents.owner, torrents.save_as, torrents.descr, torrents.visible, torrents.size, torrents.added, torrents.views, torrents.hits, torrents.times_completed, torrents.id, torrents.type, torrents.numfiles, categories.name AS cat_name, users.username FROM torrents LEFT JOIN categories ON torrents.category = categories.id LEFT JOIN users ON torrents.owner = users.id WHERE torrents.id = $id") or sqlerr(); $row = mysql_fetch_array($res);
$owned = $moderator = 0; if (get_user_class() >= UC_MODERATOR) $owned = $moderator = 1; elseif ($CURUSER["id"] == $row["owner"]) $owned = 1; //}
if (!$row || ($row["banned"] == "yes" && !$moderator)) stderr("Error", "" .NO_TORRENT_WITH_ID. ""); else { if ($_GET["hit"]) { mysql_query("UPDATE torrents SET views = views + 1 WHERE id = $id"); if ($_GET["tocomm"]) header("Location: $BASEURL/details.php?id=$id&page=0#startcomments"); elseif ($_GET["filelist"]) header("Location: $BASEURL/details.php?id=$id&filelist=1#filelist"); elseif ($_GET["toseeders"]) header("Location: $BASEURL/details.php?id=$id&dllist=1#seeders"); elseif ($_GET["todlers"]) header("Location: $BASEURL/details.php?id=$id&dllist=1#leechers"); else header("Location: $BASEURL/details.php?id=$id"); exit(); }
if (!isset($_GET["page"])) { stdhead("" .D_DETAILS_FOR_TORRENT. "\"" . $row["name"] . "\"");
if ($CURUSER["id"] == $row["owner"] || get_user_class() >= UC_MODERATOR) $owned = 1; else $owned = 0;
$spacer = " ";
if ($_GET["uploaded"]) { print("<h2>" .D_SUCCESSFULLY_UPLOADED. "</h2>\n"); print("<p>" .D_YOU_CAN_START_SEEDING_NOW. "</p>\n"); } elseif ($_GET["edited"]) { print("<h2>" .D_SUCCESSFULLY_EDITED. "</h2>\n"); if (isset($_GET["returnto"])) print("<p><b>" .D_GO_BACK_TO. "<a href=\"" . htmlspecialchars($_GET["returnto"]) . "\">" .D_WHENCE_YOU_CAME. "</a>.</b></p>\n"); } elseif (isset($_GET["searched"])) { print("<h2>" .D_YOUR_SEARCH_FOR. "\"" . htmlspecialchars($_GET["searched"]) . "\"" .D_GAVE_A_SINGLE_RESULT. "</h2>\n"); } elseif ($_GET["rated"]) print("<h2>" .D_RATING_ADDED. "</h2>\n");
$s=$row["name"]; print("<h1>$s</h1>\n"); //print("<table width=750 border=\"1\" cellspacing=\"0\" cellpadding=\"5\">\n"); begin_frame("" .D_DETAILS_FOR_TORRENT. "\"" . $row["name"] . "\"",false,5,750); begin_table();
$url = "edit.php?id=" . $row["id"]; if (isset($_GET["returnto"])) { $addthis = "&returnto=" . urlencode($_GET["returnto"]); $url .= $addthis; $keepget .= $addthis; } $editlink = "a href=\"$url\" class=\"sublink\"";
// $s = "<b>" . htmlspecialchars($row["name"]) . "</b>"; // if ($owned) // $s .= " $spacer<$editlink>[Edit torrent]</a>"; // tr("Name", $s, 1);
$wait = 0; if ($CURUSER["class"] < UC_VIP) { $gigs = $CURUSER["uploaded"] / (1024*1024*1024); $ratio = (($CURUSER["downloaded"] > 0) ? ($CURUSER["uploaded"] / $CURUSER["downloaded"]) : 0); if ($ratio < 0.5 || $gigs < 5) $wait = 0; elseif ($ratio < 0.65 || $gigs < 6.5) $wait = 0; elseif ($ratio < 0.8 || $gigs < 8) $wait = 0; elseif ($ratio < 0.95 || $gigs < 9.5) $wait = 0; else $wait = 0; $elapsed = floor((gmtime() - strtotime($row["added"])) / 3600); if ($elapsed < $wait) $wait = number_format($wait - $elapsed);
} print("<tr><td align=\"right\" class=\"rowhead\" width=\"1%\">" .D_DOWNLOAD. "</td><td class=\"row1\" width=\"99%\" align=\"left\">"); if ($owned || ($wait==0)) print("<a class=\"index\" href=\"download.php/$id/" . rawurlencode($row["filename"]) . "\">" . htmlspecialchars($row["filename"]) . "</a>"); else print("" .D_YOU_HAVE_TO_WAIT. "".$wait." " .D_HOURS_TO_DOWNLOAD_THIS_FILE. "");
print("</td></tr>"); // tr("Downloads as", $row["save_as"]);
function hex_esc($matches) { return sprintf("%02x", ord($matches[0])); } tr("" .D_INFO_HASH. "", preg_replace_callback('/./s', "hex_esc", hash_pad($row["info_hash"])));
if (!empty($row["descr"])) tr("" .D_DESCRIPTION. "", str_replace(array("\n", " "), array("<br>\n", " "), format_urls(htmlspecialchars($row["descr"]))), 1);
if (get_user_class() >= UC_POWER_USER && $row["nfosz"] > 0) print("<tr><td align=\"right\" class=\"rowhead\">" .D_NFO. "</td><td class=\"row1\" align=\"left\"><a href=\"viewnfo.php?id=$row[id]\"><b>" .D_VIEW_NFO. "</b></a> (" . mksize($row["nfosz"]) . ")</td></tr>\n"); if ($row["visible"] == "no") tr("" .D_VISIBLE. "", "<b>" .D_NO. "</b> (dead)", 1); if ($moderator) tr("" .D_BANNED. "", $row["banned"]);
if (isset($row["cat_name"])) tr("" .D_TYPE. "", $row["cat_name"]); else tr("" .D_TYPE. "", "(" .D_NONE_SELLECTED. ")");
tr("" .D_LAST_SEEDER. "", "Last activity " . mkprettytime($row["lastseed"]) . " ago"); tr("" .D_SIZE. "",mksize($row["size"]) . " (" . number_format($row["size"]) . " bytes)");
$s = ""; $s .= "<table class=\"row1\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr ><td valign=\"top\" class=\"embedded\">"; if (!isset($row["rating"])) { if ($minvotes > 1) { $s .= "none yet (needs at least $minvotes votes and has got "; if ($row["numratings"]) $s .= "only" . $row["numratings"]; else $s .= "none"; $s .= ")"; } else $s .= "" .D_NO_VOTES_YET. ""; } else { $rpic = ratingpic($row["rating"]); if (!isset($rpic)) $s .= "invalid?"; else $s .= "$rpic (" . $row["rating"] . " out of 5 with " . $row["numratings"] . " vote(s) total)"; } $s .= "\n"; $s .= "</td><td class=\"embedded\">$spacer</td><td valign=\"top\" class=\"embedded\">"; if (!isset($CURUSER)) $s .= "(<a href=\"login.php?returnto=" . urlencode($_SERVER["REQUEST_URI"]) . "&nowarn=1\">Log in</a> to rate it)"; else { $ratings = array( 5 => "" .D_KEWL. "", 4 => "" .D_PRETTY_GOOD. "", 3 => "" .D_DECENT. "", 2 => "" .D_PRETTY_BAD. "", 1 => "" .D_SUCKS. "", ); if (!$owned || $moderator) { $xres = mysql_query("SELECT rating, added FROM ratings WHERE torrent = $id AND user = " . $CURUSER["id"]); $xrow = mysql_fetch_array($xres); if ($xrow) $s .= "(" .D_YOU_RATED_THIS_TORRENT_AS. "\"" . $xrow["rating"] . " - " . $ratings[$xrow["rating"]] . "\")"; else { $s .= "<form method=\"post\" action=\"takerate.php\"><input type=\"hidden\" name=\"id\" value=\"$id\" />\n"; $s .= "<select name=\"rating\">\n"; $s .= "<option value=\"0\">(" .D_ADD_RATING. ")</option>\n"; foreach ($ratings as $k => $v) { $s .= "<option value=\"$k\">$k - $v</option>\n"; } $s .= "</select>\n"; $s .= "<input type=\"submit\" value=\"" .D_VOTE. "\" />"; $s .= "</form>\n"; } } } $s .= "</td></tr></table>"; tr("" .D_RATING. "", $s, 1);
tr("" .D_ADDED. "", $row["added"]); tr("" .D_VIEWS. "", $row["views"]); tr("" .D_HITS. "", $row["hits"]); tr("" .D_SNATCHED. "", $row["times_completed"] . " time(s)");
$keepget = ""; $uprow = (isset($row["username"]) ? ("<a href=\"userdetails.php?id=" . $row["owner"] . "\"><b>" . htmlspecialchars($row["username"]) . "</b></a>") : "<i>unknown</i>"); if ($owned) $uprow .= " $spacer<$editlink><b>[" .D_EDIT_THIS_TORRENT. "]</b></a>"; tr("Upped by", $uprow, 1);
if ($row["type"] == "multi") { if (!$_GET["filelist"]) tr("" .D_NUM_FILES. "<br /><a href=\"details.php?id=$id&filelist=1$keepget#filelist\" class=\"sublink\">[See full list]</a>", $row["numfiles"] . " files", 1); else { tr("" .D_NUM_FILES. "", $row["numfiles"] . " files", 1);
$s = "<table class=\"main\" border=\"1\" cellspacing=\"0\" cellpadding=\"5\">\n";
$subres = mysql_query("SELECT * FROM files WHERE torrent = $id ORDER BY id"); $s.="<tr><td class=colhead>" .D_PATH. "</td><td class=colhead align=right>" .D_SIZE. "</td></tr>\n"; while ($subrow = mysql_fetch_array($subres)) { $s .= "<tr><td>" . $subrow["filename"] . "</td><td align=\"right\">" . mksize($subrow["size"]) . "</td></tr>\n"; }
$s .= "</table>\n"; tr("<a name=\"filelist\">" .D_FILE_LIST. "</a><br /><a href=\"details.php?id=$id$keepget\" class=\"sublink\">[" .D_HIDE_LIST. "]</a>", $s, 1); } }
if (!$_GET["dllist"]) { /* $subres = mysql_query("SELECT seeder, COUNT(*) FROM peers WHERE torrent = $id GROUP BY seeder"); $resarr = array(yes => 0, no => 0); $sum = 0; while ($subrow = mysql_fetch_array($subres)) { $resarr[$subrow[0]] = $subrow[1]; $sum += $subrow[1]; } tr("Peers<br /><a href=\"details.php?id=$id&dllist=1$keepget#seeders\" class=\"sublink\">[See full list]</a>", $resarr["yes"] . " seeder(s), " . $resarr["no"] . " leecher(s) = $sum peer(s) total", 1); */ tr("" .D_PEERS. "<br /><a href=\"details.php?id=$id&dllist=1$keepget#seeders\" class=\"sublink\">[" .D_SEE_FULL_LIST. "]</a>", $row["seeders"] . " seeder(s), " . $row["leechers"] . " leecher(s) = " . ($row["seeders"] + $row["leechers"]) . " peer(s) total", 1); } else { $downloaders = array(); $seeders = array(); $subres = mysql_query("SELECT seeder, finishedat, downloadoffset, uploadoffset, ip, port, uploaded, downloaded, to_go, UNIX_TIMESTAMP(started) AS st, connectable, agent, UNIX_TIMESTAMP(last_action) AS la, userid FROM peers WHERE torrent = $id") or sqlerr(); while ($subrow = mysql_fetch_array($subres)) { if ($subrow["seeder"] == "yes") $seeders[] = $subrow; else $downloaders[] = $subrow; }
function leech_sort($a,$b) { if ( isset( $_GET["usort"] ) ) return seed_sort($a,$b); $x = $a["to_go"]; $y = $b["to_go"]; if ($x == $y) return 0; if ($x < $y) return -1; return 1; } function seed_sort($a,$b) { $x = $a["uploaded"]; $y = $b["uploaded"]; if ($x == $y) return 0; if ($x < $y) return 1; return -1; }
usort($seeders, "seed_sort"); usort($downloaders, "leech_sort");
tr("<a name=\"seeders\">" .D_SEEDERS. "</a><br /><a href=\"details.php?id=$id$keepget\" class=\"sublink\">[" .D_HIDE_LIST. "]</a>", dltable("Seeder(s)", $seeders, $row), 1); tr("<a name=\"leechers\">" .D_LEECHERS. "</a><br /><a href=\"details.php?id=$id$keepget\" class=\"sublink\">[" .D_HIDE_LIST. "]</a>", dltable("Leecher(s)", $downloaders, $row), 1); }
//print("</table></p>\n"); end_table(); end_frame(); } else { stdhead("" .D_COMMENTS_FOR_TORRENT. "\"" . $row["name"] . "\""); print("<h1>" .D_COMMENTS_FOR. "<a href=\"details.php?id=$id\">" . $row["name"] . "</a></h1>\n"); // print("<p><a href=\"details.php?id=$id\">" .D_BACK_TO_FULL_DETAILS. "</a></p>\n"); }
print("<p><a name=\"" .D_START_COMMENTS. "\"></a></p>\n");
$commentbar = "<p align=\"center\"><a class=\"index\" href=\"comment.php?action=add&tid=$id\">" .D_ADD_A_COMMENT. "</a></p>\n";
$subres = mysql_query("SELECT COUNT(*) FROM comments WHERE torrent = $id"); $subrow = mysql_fetch_array($subres); $count = $subrow[0];
if (!$count) { print("<h2>" .D_NO_COMMENTS_YET. "</h2>\n"); } else { list($pagertop, $pagerbottom, $limit) = pager(20, $count, "details.php?id=$id&", array(lastpagedefault => 1));
$subres = mysql_query("SELECT comments.id, text, user, comments.added, editedby, editedat, avatar, warned, ". "username, title, class, donor FROM comments LEFT JOIN users ON comments.user = users.id WHERE torrent = " . "$id ORDER BY comments.id $limit") or sqlerr(__FILE__, __LINE__); $allrows = array(); while ($subrow = mysql_fetch_array($subres)) $allrows[] = $subrow;
print($commentbar); print($pagertop);
commenttable($allrows);
print($pagerbottom); }
print($commentbar); }
stdfoot();
?>
Bump: Ok I fixed that.
I just changed:
PHP Code:
tr("" .D_DESCRIPTION. "", str_replace(array("\n", " "), array("<br>\n", " "), format_urls(htmlspecialchars($row["descr"]))), 1);
for
PHP Code:
tr("" .D_DESCRIPTION. "", str_replace(array("\n", " "), array("<br>\n", " "), format_comment(htmlspecialchars($row["descr"]))), 1);
Last edited by lechatsauvage; 17th June 2011 at 02:43.
Reason: SOLVED
|