Jak cześć może wie z innego tematu, posiadam klasę, umożliwiającą sciąganie filmów bezpośrednio z serwera MegaVideo. Problem w tym, ze generując link na localhoście, wszystko pięknie chodzi, lecz na hoście klasa generuje złe linki. Spowodowane jest to generowaniem linku na IP?
Czy da rade przepisać to tak, żeby link był generowany na serwerze, a każdy korzystający mógł z tego linku ściągać?
<?
class Megavideo
{
function __construct($url)
{
$this->id = $id[1]?$id[1]:$url;
$this->getxml();
$parse = array ( 'runtimehms' => 'duration', 'size' => 'size',
's' => 'server',
'title' => 'title',
'description' => 'description',
'added' => 'added',
'username' => 'username',
'category' => 'category',
'views' => 'views',
'comments' => 'comments',
'favorited' => 'favorited',
'rating' => 'rating',
'k1' => 'key1',
'k2' => 'key2',
'un' => 'str');
foreach($parse as $key=>$val)
{
$this->parsexml($key, $val);
}
$this->size = round($this->size/(1024
*1024
));
}
function get($what=false)
{
$all = array( "URL" => "http://www".$this->server. ".megavideo.com/files/".
$this->decrypt($this->str, $this->key1, $this->key2)."/",
"SIZE" => $this->size,
"TITLE" => $this->title,
"DURATION" => $this->duration,
"SERVER" => $this->server,
"DESCRIPTION" => $this->description,
"ADDED" => $this->added,
"USERNAME" => $this->username,
"CATEGORY" => $this->category,
"VIEWS" => $this->views,
"COMMENTS" => $this->comments,
"FAVORITED" => $this->favorited,
"RATING" => $this->rating
);
}
function getxml()
{
$this->xml = file_get_contents("http://www.megavideo.com/xml/videolink.php?v=".$this->id."&id=".time()) or
}
function parsexml($attribute, $name)
{
preg_match("#\s$attribute=\"(.+?)\"#", $this->xml, $tmp); list(,$this->$name) = $tmp;
}
function decrypt($str, $key1, $key2)
{
for($reg3=0; $reg3<strlen($str); $reg3++)
{
$reg0 = $str[$reg3];
switch($reg0)
{
case '0': $reg1[] = '0000'; break;
case '1': $reg1[] = '0001'; break;
case '2': $reg1[] = '0010'; break;
case '3': $reg1[] = '0011'; break;
case '4': $reg1[] = '0100'; break;
case '5': $reg1[] = '0101'; break;
case '6': $reg1[] = '0110'; break;
case '7': $reg1[] = '0111'; break;
case '8': $reg1[] = '1000'; break;
case '9': $reg1[] = '1001'; break;
case 'a': $reg1[] = '1010'; break;
case 'b': $reg1[] = '1011'; break;
case 'c': $reg1[] = '1100'; break;
case 'd': $reg1[] = '1101'; break;
case 'e': $reg1[] = '1110'; break;
case 'f': $reg1[] = '1111'; break;
}
}
for($reg3=0; $reg3<384; $reg3++)
{
$key1 = ($key1 * 11 + 77213) % 81371;
$key2 = ($key2 * 17 + 92717) % 192811;
$reg6[] = ($key1 + $key2) % 128;
}
for($reg3=256; $reg3>=0; $reg3--)
{
$reg5 = $reg6[$reg3];
$reg4 = $reg3 % 128;
$reg8 = $reg1[$reg5];
$reg1[$reg5] = $reg1[$reg4];
$reg1[$reg4] = $reg8;
}
for($reg3=0; $reg3<128; $reg3++)
{
$reg1[$reg3] = $reg1[$reg3] ^ ($reg6[$reg3+256] & 1);
}
$reg12 = $reg1;
for($reg3=0; $reg3<strlen($reg12); $reg3+=4)
{
$reg9 = substr($reg12, $reg3, 4
); $reg7[] = $reg9;
}
for($reg3=0; $reg3<count($reg7); $reg3++)
{
$reg0 = $reg7[$reg3];
switch($reg0)
{
case '0000': $reg2[] = '0'; break;
case '0001': $reg2[] = '1'; break;
case '0010': $reg2[] = '2'; break;
case '0011': $reg2[] = '3'; break;
case '0100': $reg2[] = '4'; break;
case '0101': $reg2[] = '5'; break;
case '0110': $reg2[] = '6'; break;
case '0111': $reg2[] = '7'; break;
case '1000': $reg2[] = '8'; break;
case '1001': $reg2[] = '9'; break;
case '1010': $reg2[] = 'a'; break;
case '1011': $reg2[] = 'b'; break;
case '1100': $reg2[] = 'c'; break;
case '1101': $reg2[] = 'd'; break;
case '1110': $reg2[] = 'e'; break;
case '1111': $reg2[] = 'f'; break;
}
}
}
}
?>
@edit
Pomocy potrzebuję dość pilnie. Nie ma sprytnego, mogącego mnie naprowadzić do celu?
/
Ten post edytował screv 28.01.2010, 20:44:15