function respond($arr) { Yii::info("Response send"); Yii::info($arr); $be = new BEncoder(); $be->encode($arr); echo $be->encoded; }
/** * @param string $infoPath * @param string $mainTracker * @param array $backupTracker */ public static function buildTorrentFile($infoPath, $mainTracker, $backupTracker) { $be = new BEncoder(); $info = file_get_contents($infoPath); $info = $be->decode($info); if (empty($info)) { return null; } /** @var User $user */ $user = User::findOne(Yii::$app->user->getId()); $passkey = $user->passkey; $seed = []; $seed['announce'] = $mainTracker . "passkey={$passkey}"; foreach ($backupTracker as $tracker) { $seed['announce-list'] = $tracker . "passkey={$passkey}"; } $seed['created date'] = $seed['created by'] = time(); $seed['comment'] = 'Welcome To NGPT'; $seed['encoding'] = 'UTF-8'; $seed['info'] = $info; return $be->encode($seed); }
<?php /** * Created by PhpStorm. * User: ssj * Date: 16-1-1 * Time: 上午2:30 */ use common\library\BEncoder; use frontend\models\Seed; $arr = []; $arr['file'] = []; /** @var array $seeds */ /** @var Seed $seed */ foreach ($seeds as $seed) { $tmp = ['complete' => $seed->seeder_count, 'downloaded' => $seed->completed_count, 'incomplete' => $seed->leecher_count, 'name' => $seed->torrent_name]; $arr['files'][hex2bin($seed->info_hash)] = $tmp; } Yii::info("Response send"); Yii::info($arr); $be = new BEncoder(); $be->encode($arr); echo $be->encoded;
public function actionTorrent() { $from = '/tmp/torrentinfo/'; $to = 'frontend/web/torrents/'; $files = scandir($from); $be = new BEncoder(); foreach ($files as $file) { if (substr($file, -4) != 'info') { continue; } if (file_exists($to . $file)) { continue; } $origin = file_get_contents($from . $file); $origin = 'd' . $origin . 'e'; $arr = $be->decode($origin)['info']; if (empty($arr)) { echo 'Error: ' . $from . $file; return; } var_dump($arr); $res = $be->encode($arr); if (empty($res)) { echo 'Error: ' . $from . $file; return; } file_put_contents($to . $file, $res); } }