src/AppBundle/Component/MediaParser/ParserProxy.php
(开头部分) 1KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
<?php
namespace AppBundle\Component\MediaParser;
use Topxia\Service\Common\ServiceKernel;
class ParserProxy
{
private $mockedParser = null;
public function parseItem($url)
{
$parsers = array('YoukuVideo', 'QQVideo', 'NeteaseOpenCourse', 'TudouVideo');
$kernel = ServiceKernel::instance();
$extras = array();
if ($kernel->hasParameter('media_parser')) {
$extras = $kernel->getParameter('media_parser');
}
if (isset($extras['item'])) {
$extrasParsers = $extras['item'];
foreach ($extrasParsers as $extrasParser) {
$class = $extrasParser['class'];
$parser = new $class();
if (!$parser->detect($url)) {
continue;
}
return $parser->parse($url);
}
}
foreach ($parsers as $parserName) {
$parser = $this->createParser("{$parserName}ItemParser");
if (!$parser->detect($url)) {
continue;
}
return $parser->parse($url);
}
throw ParserException::PARSER_NOT_SUPPORT();
}
public function prepareMediaUri($video)
{
if ('self' != $video['mediaSource']) {
if ('youku' == $video['mediaSource']) {
$parser = $this->createParser('YoukuVideoItemParser');
} elseif ('NeteaseOpenCourse' == $video['mediaSource']) {
$parser = $this->createParser('NeteaseOpenCourseItemParser');
} elseif ('qqvideo' == $video['mediaSource']) {
$parser = $this->createParser('QQVideoItemParser');
} else {
throw ParserException::PARSER_NOT_SUPPORT();
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。