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 算力,解读结果公开显示在下面。

还没有人解读过这个文件。