[PHP] Turbobit.net Upload Function

Status
Not open for further replies.

Halcyon

Active Member
1,306
2009
343
15
As requested by humour [hmmm] [meh]

PHP:
<?php

/** Author        : Halcyon aka V3g3t4
 *  Description   : Upload functions for turbobit.net
 *  Date          : 26-Jan-2012
 *  Copyrights    : Full rights to copy!
 */

/*
 * All functions
 */

/*
 * Function name : tbitLogin
 * Parameters    : username, password, cookie location
 * Returns       : True if login is successful
 */
function tbitLogin($tbituser, $tbitpass, $tbitcookie) {

    $postURL = "http://turbobit.net/user/login";
    $ref = "http://turbobit.net/";

    curl($ref . "lang/en/", '', $tbitcookie, $ref);

    $post['user[login]'] = $tbituser;
    $post['user[pass]'] = $tbitpass;
    $post['user[memory]'] = "on";
    $post['user[submit]'] = "Login";

    $page = curl($postURL, $post, $tbitcookie, $ref);
    is_present($page, "forgot password?", "Incorrect logins",1);

    return true;
}

/*
 * Function name : tbitUpload
 * Parameters    : Filelocation and cookie location
 * Returns       : Download link, if successful
 */
function tbitUpload($filelocation, $tbitcookie) {

    $url = "http://turbobit.net/";

    $page = curl($url, 0, $tbitcookie);

    preg_match('/flashvars="cancelLang=Cancel&browserLang=Add&downloadLang=Upload&maxSize=(.*?)&domain=main&urlSite=(.*?)&userId=(.*?)&apptype=(.*?)"/', $page, $flashVars);

    $upload_url = $flashVars[2];
    $agent = 'Shockwave Flash';
    $data['Filename'] = basename($filelocation);
    $data['stype'] = 'null';
    $data['apptype'] = $flashVars[4];
    $data['user_id'] = $flashVars[3];
    $data['id'] = 'null';
    $data['Filedata'] = "@" . $filelocation;

    $upfiles = curl($upload_url, $data, $tbitcookie, $url, 1, 1, $agent);
    preg_match('/"result":true,"id":"(.*?)","message":"Everything is ok"/', $upfiles, $link);
    if (!empty($link[1])) {
        $download_link = 'http://turbobit.net/' . $link[1] . '.html';
    } else {
        die("Error - Unable to retrive the download link, please try again later.");
    }

    return $download_link;
}

/*
 * Function name : is_present
 * Parameters    : String to search in, string to search and error message
 * Returns       : None
 */
function is_present($lpage, $mystr, $strerror, $head = 0) {
    if (stristr($lpage, $mystr)) {
        if($head)
            die($strerror);
        else
            echo $strerror;
    }
}

/*
 * Function name : cut_str
 * Parametsr     : String, delimiter on the left of required output,
 *               : delimiter on the right of required output
 * Returns       : Required string
 */
function cut_str($str, $left, $right) {
    $str = substr(stristr($str, $left), strlen($left));
    $leftLen = strlen(stristr($str, $right));
    $leftLen = $leftLen ? - ($leftLen) : strlen($str);
    $str = substr($str, 0, $leftLen);
    return $str;
}

/*
 * Function name : curl
 * Parameters    : Link, postfields, cookie location, referrer, true/false for
 *               : header and follow location, user agent if any
 * Returns       : Curl data or error response
 */
function curl($link, $postfields = '', $cookie = '', $refer = '', $header = 1, $follow = 1, $usragent = 0) {

    $ch = curl_init($link);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    if ($header)
        curl_setopt($ch, CURLOPT_HEADER, 1);
    else
        curl_setopt($ch, CURLOPT_HEADER, 0);
    if ($follow)
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    else
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);

    if ($usragent)
        curl_setopt($ch, CURLOPT_USERAGENT, $usragent);
    else
        curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1');

    if ($refer)
        curl_setopt($ch, CURLOPT_REFERER, $refer);

    if ($postfields) {
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields);
    }
    if ($cookie) {
        curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie);
        curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie);
    }

    $page = curl_exec($ch);

    curl_close($ch);

    if (empty($page)) {
        echo "<br/>Could not connect to host: <br/> $link <br/>";
    } else {
        return $page;
    }
}

/*
 * Sample usage
 */

$cookie    = getcwd() . '/.cookie';
$filelocation = "/path/to/your/file.rar";
$userEmail = "test@turbobit.net";
$userPass  = "testPass";
if(tbitLogin($userEmail, $userPass, $cookie)){
    echo tbitUpload($filelocation, $cookie);
}

?>
 
9 comments
Status
Not open for further replies.
Back
Top