$dztbl_ngpt_seeds = DB::table("ngpt_seed"); $sql = <<<EOF SELECT {$dztbl_ngpt_seeds}.seed_id, {$dztbl_ngpt_seeds}.tid, {$dztbl_ngpt_seeds}.fid FROM `{$dztbl_ngpt_seeds}` WHERE {$dztbl_ngpt_seeds}.tid IN ({$str_thread_ids}); EOF; $seeds = DB::fetch_all($sql); $req_json = []; foreach ($seeds as $seed) { $req_json[$seed['seed_id']] = $seed['tid']; } $data = ['query_json' => json_encode($req_json)]; $res = PTHelper::getApiCurl("seed/info", $data, true); if (empty($res) || $res['result'] == 'failed') { return; throw new Exception("种子服务器返回错误"); } else { $_G['threads_seeds'] = $res['extra']; foreach ($_G['threads_seeds'] as &$s) { $tmp = $s['coef_expire_time']; if ($tmp != 0) { $s['coef_expire_time'] = "剩余" . PTHelper::getReadableTimeFromMinutes($tmp / 60); } else { if (!($s['up_coef'] == 100 && $s['down_coef'] == 100)) { $s['coef_expire_time'] = '永久'; } else { $s['coef_expire_time'] = ''; } } $s['live_time'] = PTHelper::getReadableTimeFromMinutes($s['live_time'] / 60); } }
/** * 处理浏览帖子逻辑,并返回一个 Discuz 模板,该模板会被加入到帖子内容前 * 例: * return template("common/header"); * @param int $tid 即将浏览的帖子ID * @return string */ function viewthread($tid) { $record_seed = PTHelper::getSeedInfoBy('tid', $tid); $seedexists = $record_seed['is_valid']; $seedid = $record_seed['seed_id']; $infohash = $record_seed['info_hash']; $filename = $record_seed['file_name']; $filesize = $record_seed['file_size']; $filesize_str = PTHelper::getReadableFileSize($filesize); $filecount = $record_seed['file_count']; $seeds = $record_seed['seeder_count']; $leechers = $record_seed['leecher_count']; $finished = $record_seed['completed_count']; $lastactive = strtotime($record_seed['last_active_time']); $lastactive_str = date('Y-m-d H:i:s', $lastactive); $status = 'Normal'; //废弃的 $pubdate = strtotime($record_seed['pub_time']); $pubdate_str = date('Y-m-d H:i:s', $lastactive); $traffic = $record_seed['traffic_up']; $traffic_str = PTHelper::getReadableFileSize($traffic); $livetime = $record_seed['live_time']; $livetime_str = PTHelper::getReadableTimeFromMinutes($livetime / 60.0); $coef_expire = intval($record_seed['coef_expire_time']); if ($coef_expire != 0) { $coef_expire = PTHelper::getReadableTimeFromMinutes($coef_expire / 60.0); } else { $coef_expire = "永久"; } $upcoeff = $record_seed['up_coef']; $upcoeff_str = $upcoeff . "% " . $coef_expire; $downcoeff = $record_seed['down_coef']; $downcoeff_str = $downcoeff . "% " . $coef_expire; $seedingip_str = 'ipv4/ipv6'; $filename = $record_seed['torrent_name']; $downseedpageurl = PTHelper::getApiUrl("seed/download", ['seed_id' => $record_seed['seed_id']]); $downseedpageurl = preg_replace("/127.0.0.1/", $_SERVER['SERVER_ADDR'], $downseedpageurl); $candownloadstatus = 'normal'; $return = null; include template('ngpt:resthread-view'); return $return; }