src/AppBundle/Controller/HLSBaseController.php
(开头部分) 1KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
<?php
namespace AppBundle\Controller;
use Biz\File\UploadFileException;
use Biz\User\Service\UserService;
use Biz\User\Service\TokenService;
use Biz\CloudPlatform\CloudAPIFactory;
use Biz\System\Service\SettingService;
use Biz\File\Service\UploadFileService;
use Biz\User\TokenException;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
abstract class HLSBaseController extends BaseController
{
public function playlistAction(Request $request, $id, $token)
{
$line = $request->query->get('line', null);
$format = $request->query->get('format', '');
$levelParam = $request->query->get('level', '');
$token = $this->getTokenService()->verifyToken('hls.playlist', $token);
$fromApi = isset($token['data']['fromApi']) ? $token['data']['fromApi'] : false;
$clientIp = $request->getClientIp();
if (empty($token)) {
$this->createNewException(TokenException::TOKEN_INVALID());
}
$dataId = is_array($token['data']) ? $token['data']['id'] : $token['data'];
if ($dataId != $id) {
throw $this->createNotFoundException();
}
$file = $this->getFile($id, $token);
if (empty($file)) {
$this->createNewException(UploadFileException::NOTFOUND_FILE());
}
$streams = array();
$inWhiteList = $this->agentInWhiteList($request->headers->get('user-agent'));
$metas = $file[$this->getMediaAttr()];
foreach (array('sd', 'hd', 'shd') as $level) {
if (empty($metas[$level])) {
continue;
}
if (empty($levelParam) || (!empty($levelParam) && strtolower($levelParam) == $level)) {
$tokenFields = array(
'data' => array(
'id' => $file['id'].$level,
'fromApi' => $fromApi,
),
'times' => $inWhiteList ? 0 : 1,
'duration' => 3600,
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。