Index of

	Name			Last modified		Size		Description


This page includes P2P magnet links. To use these links, click the icon. You will need a magnet supporting P2P client, such as Shareaza or FrostWire.
$fileinfo) { if (file_exists($file . '.magdex')) unlink($file . '.magdex'); magdex::buildDat($file, $fileinfo); } class magdex { function getShortString ($file, $len = 20) { $out = substr($file, 0, $len); if (strlen($out) < strlen($file)) { $out .= '..'; } return $out; } function buildDat ($file, &$fileinfo) { global $version; $sha1 = (function_exists('hash_file') ? hash_file('sha1', $file) : sha1_file($file)); $fileinfo['sha1'] = magdex::b32torfc3548($sha1); $datafile = "$version\n"; $datafile .= "$file\n"; $datafile .= "$fileinfo[size]\n"; $datafile .= "$fileinfo[mtime]\n"; $datafile .= "$fileinfo[sha1]\n"; $hDAT = fopen($file . '.magdex', 'w'); fwrite($hDAT, $datafile); fclose($hDAT); } function formatFilesize ($bytes, $unknownString = '?') { $blockSize = 1024; $kbSize = $blockSize * $blockSize; $mbSize = $kbSize * $blockSize; $gbSize = $mbSize * $blockSize; $tbSize = $gbSize * $blockSize; if ( $bytes && $bytes < $blockSize ) { $output = $bytes . " Bytes"; } elseif ( $bytes >= $blockSize && $bytes < $kbSize ) { $output = round($bytes / $blockSize, 2) . " KB"; } elseif ( $bytes >= $kbSize && $bytes < $mbSize ) { $output = round($bytes / $kbSize, 2) . " MB"; } elseif ( $bytes >= $mbSize && $bytes < $gbSize ) { $output = round($bytes / $mbSize, 2) . " GB"; } else { $output = $unknownString; } return $output; } function b32torfc3548 ($hex) { $b32_alpha_to_rfc3548_chars = array( '0' => 'A', '1' => 'B', '2' => 'C', '3' => 'D', '4' => 'E', '5' => 'F', '6' => 'G', '7' => 'H', '8' => 'I', '9' => 'J', 'a' => 'K', 'b' => 'L', 'c' => 'M', 'd' => 'N', 'e' => 'O', 'f' => 'P', 'g' => 'Q', 'h' => 'R', 'i' => 'S', 'j' => 'T', 'k' => 'U', 'l' => 'V', 'm' => 'W', 'n' => 'X', 'o' => 'Y', 'p' => 'Z', 'q' => '2', 'r' => '3', 's' => '4', 't' => '5', 'u' => '6', 'v' => '7' ); $b32_alpha = ''; for ($pos = 0; $pos < strlen($hex); $pos += 10) { $hs = substr($hex,$pos,10); $b32_alpha_part = base_convert($hs,16,32); $expected_b32_len = strlen($hs) * 0.8; $actual_b32_len = strlen($b32_alpha_part); $b32_padding_needed = $expected_b32_len - $actual_b32_len; for ($i = $b32_padding_needed; $i > 0; $i--) { $b32_alpha_part = '0' . $b32_alpha_part; } $b32_alpha .= $b32_alpha_part; } $b32_rfc3548 = ''; for ($i = 0; $i < strlen($b32_alpha); $i++) { $b32_rfc3548 .= $b32_alpha_to_rfc3548_chars[$b32_alpha[$i]]; } return $b32_rfc3548; } function getMagnet ($file, $fileinfo = array()) { $output = ''; # insert URNs $urns = array('urn:sha1:' . $fileinfo['sha1']); foreach ($urns AS $urn) { magdex::magnet_add('xt=' . $urn, $output); } # Insert filesize if (isset($fileinfo['size'])) { magdex::magnet_add('xl=' . $fileinfo['size'], $output); } # Insert filename if (isset($file)) { magdex::magnet_add('dn=' . rawurlencode($file), $output); } global $folder; $source = 'http://' . $_SERVER['HTTP_HOST'] . $folder . '/' . $file; magdex::magnet_add('as=' . rawurlencode($source), $output); $source = 'http://labs.bandnet.org/g2c/?urn:sha1:' . $fileinfo['sha1']; magdex::magnet_add('xs=' . rawurlencode($source), $output); return 'magnet:?' . $output; } function magnet_add ($data, &$link) { if ($link) { $link .= '&' . $data; } else { $link = $data; } } function build_urns ($data) { $output = array(); if (SETTINGS_USE_DATAHASH && isset($data[FILEDATA_HASH_SHA1_DATA]) && isset($data[FILEDATA_HASH_TIGER_ROOT])) $output[] = 'urn:bitprint:' . $data[FILEDATA_HASH_SHA1_DATA] . '.' . $data[FILEDATA_HASH_TIGER_ROOT]; elseif (isset($data[FILEDATA_HASH_SHA1]) && isset($data[FILEDATA_HASH_TIGER_ROOT])) $output[] = 'urn:bitprint:' . $data[FILEDATA_HASH_SHA1] . '.' . $data[FILEDATA_HASH_TIGER_ROOT]; elseif (SETTINGS_USE_DATAHASH && isset($data[FILEDATA_HASH_SHA1_DATA])) $output[] = 'urn:sha1:' . $data[FILEDATA_HASH_SHA1_DATA]; elseif (isset($data[FILEDATA_HASH_SHA1])) $output[] = 'urn:sha1:' . $data[FILEDATA_HASH_SHA1]; if (isset($data[FILEDATA_HASH_ED2K])) $output[] = 'urn:ed2khash:' . $data[FILEDATA_HASH_ED2K]; return $output; } } ?>