View Single Post
  #1  
Old 17th June 2011, 02:34
lechatsauvage lechatsauvage is offline
Member
 
Join Date: Mar 2010
P2P
Posts: 3
Default 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($ratio3) . "</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 * (- ($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 $_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 "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";

        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 "&amp;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&nbsp;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""&nbsp; "), 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"]) . "&amp;nowarn=1\">Log in</a> to rate it)";
        else {
            
$ratings = array(
                    
=> "" .D_KEWL"",
                    
=> "" .D_PRETTY_GOOD"",
                    
=> "" .D_DECENT"",
                    
=> "" .D_PRETTY_BAD"",
                    
=> "" .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""$s1);


        
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"$uprow1);

        if (
$row["type"] == "multi") {
            if (!
$_GET["filelist"])
                
tr("" .D_NUM_FILES"<br /><a href=\"details.php?id=$id&amp;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>"$s1);
            }
        }

        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&amp;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&amp;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&amp;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""&nbsp; "), format_urls(htmlspecialchars($row["descr"]))), 1); 
for
PHP Code:
tr("" .D_DESCRIPTION""str_replace(array("\n""  "), array("<br>\n""&nbsp; "), format_comment(htmlspecialchars($row["descr"]))), 1); 
__________________
www.Confuz3d.net

Last edited by lechatsauvage; 17th June 2011 at 02:43. Reason: SOLVED
Reply With Quote