api/src/Topxia/Api/Resource/Course/Lesson.php
(开头部分) 1KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
<?php
namespace Topxia\Api\Resource\Course;
use Biz\Accessor\AccessorInterface;
use Biz\Course\Service\CourseService;
use Silex\Application;
use AppBundle\Common\SettingToolkit;
use AppBundle\Component\MediaParser\ParserProxy;
use Topxia\Api\Resource\BaseResource;
use Symfony\Component\HttpFoundation\Request;
class Lesson extends BaseResource
{
public function get(Application $app, Request $request, $id)
{
$task = $this->getTaskService()->getTask($id);
if (empty($task)) {
return $this->error('4041202', "ID为#{$id}的课时不存在");
}
$access = $this->getCourseService()->canLearnTask($task['id']);
$isTrail = false;
if (!(AccessorInterface::SUCCESS == $access['code'] || $isTrail = 'allow_trial' == $access['code'])) {
return $this->error($access['code'], $access['msg']);
}
$course = $this->getCourseService()->getCourse($task['courseId']);
$lesson = $this->getCourseService()->convertTasks(array($task), $course);
$lesson = array_shift($lesson);
//直播回放
if ('live' == $lesson['type'] && 'videoGenerated' == $lesson['replayStatus']) {
$lesson['type'] = 'video';
}
$currentUser = $this->getCurrentUser();
if ($currentUser->isLogin()) {
$this->getTaskService()->startTask($lesson['id']);
}
if ($line = $request->query->get('line')) {
$lesson['hlsLine'] = $line;
}
$hls_encryption = $request->query->get('hls_encryption');
$enable_hls_encryption_plus = SettingToolkit::getSetting('storage.enable_hls_encryption_plus');
if (!empty($hls_encryption) && $enable_hls_encryption_plus) {
$lesson['hlsEncryption'] = true;
}
$ssl = $request->isSecure() ? true : false;
$lesson = $this->filter($this->convertLessonContent($lesson, $ssl, $isTrail));
$hasRemainTime = $this->hasRemainTime($lesson, $task['type']);
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。