mainURL = "www.bitme.org"; $this->altURL = "www.bitme.org"; $this->mainTitle = "BitMe"; $this->engineName = "BitMe"; $this->author = "Kalep"; $this->version = "1.01-tfb"; $this->updateURL = "http://www.torrentflux.com/forum/index.php/topic,2085.0.html"; $this->Initialize($cfg); } function populateMainCategories() { $this->mainCatalog["1"] = "AppDev"; $this->mainCatalog["2"] = "Audio"; $this->mainCatalog["3"] = "CBT"; $this->mainCatalog["4"] = "College Lectures"; $this->mainCatalog["5"] = "Documentaries"; $this->mainCatalog["6"] = "e-Books"; $this->mainCatalog["7"] = "Keystone"; $this->mainCatalog["8"] = "Languages"; $this->mainCatalog["9"] = "LearnKey"; $this->mainCatalog["10"] = "Lynda.com"; $this->mainCatalog["11"] = "Misc"; $this->mainCatalog["12"] = "Misc E-Learning"; $this->mainCatalog["13"] = "Total Training"; $this->mainCatalog["14"] = "ART"; $this->mainCatalog["15"] = "3D Buzz"; $this->mainCatalog["16"] = "SFX"; $this->mainCatalog["17"] = "Stock Photography"; $this->mainCatalog["18"] = "Medical"; $this->mainCatalog["19"] = "Magic"; $this->mainCatalog["20"] = "3D"; $this->mainCatalog["21"] = "Dating"; $this->mainCatalog["22"] = "Music Learning"; $this->mainCatalog["23"] = "Political"; $this->mainCatalog["24"] = "Religion"; $this->mainCatalog["25"] = "Self Improvement"; $this->mainCatalog["26"] = "Sports"; $this->mainCatalog["27"] = "Video Stock"; } //---------------------------------------------------------------- // Function to Get Sub Categories /* function getSubCategories($mainGenre) { return $output; }*/ //---------------------------------------------------------------- // Function to Make the Request (overriding base) function makeRequest($request) { return parent::makeRequest($request, false); } //---------------------------------------------------------------- // Function to get Latest.. function getLatest() { $cat = tfb_getRequestVar('mainGenre'); if (empty($cat)) $cat = tfb_getRequestVar('cat'); $request = "/browse.php"; if(!empty($cat)) { if(strpos($request,"?")) { $request .= "&cat=".$cat; } else { $request .= "?cat=".$cat; } } if (!empty($this->pg)) { if(strpos($request,"?")) { $request .= "&page=" . $this->pg; } else { $request .= "?page=" . $this->pg; } } if ($this->makeRequest($request,true)) { if (strlen($this->htmlPage) > 0 ) { return $this->parseResponse(); } else { return 'Unable to Browse at this time.'; } } else { return $this->msg; } } //---------------------------------------------------------------- // Function to perform Search. function performSearch($searchTerm) { // create the request string. $searchTerm = str_replace(" ", "+", $searchTerm); $request = "/browse.php?search=".$searchTerm; if(!empty($cat)) { $request .= "&cat=".$cat; } $incldead = tfb_getRequestVar('incldead'); if (empty($incldead)) $incldead = "0"; $request .= "&incldead=".$incldead; if (!empty($this->pg)) { $request .= "&page=" . $this->pg; } if ($this->makeRequest($request,true)) { return $this->parseResponse(); } else { return $this->msg; } } //---------------------------------------------------------------- // Override the base to show custom table header. // Function to setup the table header function tableHeader() { $output = ""; $output .= "
\n"; $output .= "cfg["bgLight"]."\">"; if ($needWait) { $output .= " ")); //$userinfo = str_replace("../pic/", "images/", $userinfo); $output .= $userinfo; } $output .= ""; $output .= "cfg["table_header_bg"]."\">"; $output .= " "; $output .= " "; $output .= " "; $output .= " "; $output .= " "; $output .= " "; $output .= " "; $output .= " "; $output .= "\n"; return $output; } //---------------------------------------------------------------- // Function to parse the response. function parseResponse($latest = true) { $thing = $this->htmlPage; if(strpos($thing,"Not logged in!") > 0) { $tmpStr = substr($thing,strpos($thing,"takelogin")); $tmpStr = substr($tmpStr,strpos($tmpStr, ">")+1); $tmpStr2 = "mainURL."/takelogin.php\">"; $tmpStr = substr($tmpStr,0,strpos($tmpStr,"")+strlen("")); $output = $tmpStr2.str_replace("src=\"","src=\"http://".$this->mainURL."/",$tmpStr)."
"; } else { $output .= " "; } if (is_integer(strpos($this->htmlPage,"Welcome back, "))) { $userinfo = substr($this->htmlPage,strpos($this->htmlPage,"Welcome back, ")+strlen("Welcome back, ")); $userinfo = substr($userinfo,strpos($userinfo,"
")+strlen("
")); // Comment the following line and uncomment the next two if you would like to have the arrows for active torrents. Remember to download the arrow files and put them in your images directory $userinfo = substr($userinfo,0,strpos($userinfo,"Active:")); //$userinfo = substr($userinfo,0,strpos($userinfo,"
 Torrent Name  ("; $tmpURI = str_replace(array("?hideSeedless=yes","&hideSeedless=yes","?hideSeedless=no","&hideSeedless=no"),"",$_SERVER["REQUEST_URI"]); // Check to see if Question mark is there. if (strpos($tmpURI,'?')) { $tmpURI .= "&"; } else { $tmpURI .= "?"; } if($this->hideSeedless == "yes") { $output .= "Show Seedless"; } else { $output .= "Hide Seedless"; } $output .= ")CategoryLifeSizeSeedsPeersSnatched
"; } else { $output = $this->tableHeader(); if(strpos($thing,"Error:") > 0) { $tmpStr = substr($thing,strpos($thing,"Error:")+strlen("Error:")); $tmpStr = substr($tmpStr,0,strpos($tmpStr,"

")); $this->msg = strip_tags($tmpStr); return $output . "
".$this->msg."

"; } // We got a response so display it. // Chop the front end off. $thing = substr($thing,strpos($thing,"leechers.gif>")); $thing = substr($thing,strpos($thing,"")+strlen("")); //$tmpList = substr($thing,0,strpos($thing,"")); // ok so now we have the listing. $tmpListArr = explode("",$thing); $bg = $this->cfg["bgLight"]; //var_export($tmpListArr); foreach($tmpListArr as $key =>$value) { $buildLine = true; if (strpos($value,"id=")) { $ts = new BitMe($value); if (!empty($ts->torrentFile) && $buildLine) { $output .= trim($ts->BuildOutput($bg,$this->searchURL())); // ok switch colors. if ($bg == $this->cfg["bgLight"]) { $bg = $this->cfg["bgDark"]; } else { $bg = $this->cfg["bgLight"]; } } } } // set thing to end of this table. $thing = substr($thing,strpos($thing,"")); $output .= ""; // is there paging at the bottom? if (strpos($thing, "page=") != false) { // Yes, then lets grab it and display it! ;) $pages = substr($thing,strpos($thing,"")); $pages = substr($pages,0,strpos($pages,"

")); $pages = str_replace("  ",'',$pages); $tmpPageArr = explode("",$pages); array_pop($tmpPageArr); $pagesout = ''; foreach($tmpPageArr as $key => $value) { $value .= "  "; $tmpVal = substr($value,strpos($value,"browse.php?"),strpos($value,">")-1); $pgNum = substr($tmpVal,strpos($tmpVal,"page=")+strlen("page=")); $pagesout .= str_replace($tmpVal,"XXXURLXXX".$pgNum,$value); } $cat = tfb_getRequestVar('mainGenre'); if(strpos($this->curRequest,"LATEST")) { if (!empty($cat)) { $pages = str_replace("XXXURLXXX",$this->searchURL()."&LATEST=1&cat=".$cat."&pg=",$pagesout); } else { $pages = str_replace("XXXURLXXX",$this->searchURL()."&LATEST=1&pg=",$pagesout); } } else { if(!empty($cat)) { $pages = str_replace("XXXURLXXX",$this->searchURL()."&searchterm=".$_REQUEST["searchterm"]."&cat=".$cat."&pg=",$pagesout); } else { $pages = str_replace("XXXURLXXX",$this->searchURL()."&searchterm=".$_REQUEST["searchterm"]."&pg=",$pagesout); } } // $pages = strip_tags($pages,""); $output .= "
".substr($pages,1)."
"; } } return $output; } } // This is a worker class that takes in a row in a table and parses it. class BitMe { var $torrentName = ""; var $torrentDisplayName = ""; var $torrentFile = ""; var $torrentSize = ""; var $torrentLife = ""; var $torrentStatus = ""; var $MainId = ""; var $MainCategory = ""; var $fileCount = ""; var $Seeds = ""; var $Peers = ""; var $needsWait = false; var $waitTime = ""; var $Data = ""; var $torrentRating = ""; function BitMe( $htmlLine ) { if (strlen($htmlLine) > 0) { $this->Data = $htmlLine; // Cleanup any bugs in the HTML $htmlLine = preg_replace("/\n/i",'',$htmlLine); // Chunck up the row into columns. $tmpListArr = explode("MainCategory = substr($tmpStr,0,strpos($tmpStr,"\"")); $tmpStr = substr($tmpListArr["1"],strpos($tmpListArr["1"],"cat=")+strlen("cat=")); // Main Id $this->MainId = substr($tmpStr,0,strpos($tmpStr,"\"")); $this->torrentName = substr($tmpListArr["2"],strpos($tmpListArr["2"],"title=")+strlen("title=")); $this->torrentName = substr($this->torrentName,0,strpos($this->torrentName,">")); $tmpStr = substr($tmpListArr["3"],strpos($tmpListArr["3"],"href=\"download.php")+strlen("href=\"")); $this->torrentFile = "http://www.bitme.org/".substr($tmpStr,0,strpos($tmpStr,"\"")); $this->fileCount = $this->cleanLine(""); // File Count $this->torrentLife = "  ".$this->cleanLine(""); $this->torrentLife = str_replace("hours", " hr", $this->torrentLife); $this->torrentLife = str_replace("hour", " hr", $this->torrentLife); // Life of File $this->torrentSize = "  ".$this->cleanLine(""); // Size of File $this->torrentStatus = $this->cleanLine(str_replace("
"," ","")); // Snatched $this->Seeds = $this->cleanLine(""); // Seeds $this->Peers = $this->cleanLine(""); // Leech $this->torrentDisplayName = $this->torrentName; if(strlen($this->torrentDisplayName) > 50) { $this->torrentDisplayName = substr(str_replace(" ", " ", $this->torrentDisplayName),0,50)."..."; } } } function cleanLine($stringIn,$tags='') { if(empty($tags)) return trim(str_replace(array(" "," ")," ",strip_tags($stringIn))); else return trim(str_replace(array(" "," ")," ",strip_tags($stringIn,$tags))); } //---------------------------------------------------------------- // Function to build output for the table. function BuildOutput($bg, $searchURL = '') { $output = "\n"; $output .= "
torrentFile."\">torrentName."\" border=0>\n"; $output .= " torrentFile."\" title=\"".$this->torrentName."\">".$this->torrentDisplayName."\n"; if (strlen($this->MainCategory) > 1){ $genre = "MainId."\">".$this->MainCategory.""; }else{ $genre = ""; } $output .= " ". $genre ."\n"; $output .= " ".$this->torrentLife."\n"; $output .= " ".$this->torrentSize."\n"; $output .= " ".$this->Seeds."\n"; $output .= " ".$this->Peers."\n"; $output .= " ".$this->torrentStatus."\n"; $output .= "\n"; return $output; } } ?>