SweTv::guessChannelAndProgram PHP Méthode

guessChannelAndProgram() public méthode

public guessChannelAndProgram ( $name )
    public function guessChannelAndProgram($name)
    {
        if (($pos = stripos($name, ".SWE")) > 4) {
            $name = substr($name, 0, $pos);
        }
        $name = Helper::searchfield($name);
        preg_match("/E([0-9]+)/i", $name, $match);
        $releaseEpisodeNumber = $match[1];
        $hits = array();
        $sth = $this->db->prepare("SELECT tv_program.id AS programid, priority, kanalid, episod, FROM_UNIXTIME(datum), MATCH(program_search) AGAINST(?) AS relevance FROM `tv_program` LEFT JOIN tv_kanaler ON tv_program.kanalid = tv_kanaler.id  WHERE MATCH(program_search) AGAINST(?) AND FROM_UNIXTIME(datum) > (NOW() - INTERVAL 4 DAY) ORDER BY relevance DESC, datum DESC, tv_kanaler.priority ASC LIMIT 10");
        $sth->bindParam(1, $name, PDO::PARAM_STR);
        $sth->bindParam(2, $name, PDO::PARAM_STR);
        $sth->execute();
        $relevance = -1;
        while ($r = $sth->fetch(PDO::FETCH_ASSOC)) {
            if ($relevance == -1) {
                $relevance = $r["relevance"];
            }
            if ($relevance !== $r["relevance"]) {
                break;
            }
            preg_match("/Del ([0-9]+) /i", $r["episod"], $match);
            $r["episodeNumber"] = $match[1];
            $hits[] = $r;
        }
        if (count($hits) == 0) {
            return false;
        }
        $hits = array_reverse($hits);
        $chosenEpisode = $hits[0];
        if (is_numeric($releaseEpisodeNumber)) {
            foreach ($hits as $h) {
                if ($h["episodeNumber"] == $releaseEpisodeNumber) {
                    $chosenEpisode = $h;
                    break;
                }
            }
        }
        return array($chosenEpisode["kanalid"], $chosenEpisode["programid"]);
    }

Usage Example

Exemple #1
0
 case validateRoute('GET', 'statistics'):
     $stats = new Statistics($db, $user);
     $data = $stats->getAllStats($_GET);
     httpResponse($data);
     break;
 case validateRoute('GET', 'swetv/channels'):
     $swetv = new SweTv($db);
     httpResponse($swetv->getChannels());
     break;
 case validateRoute('GET', 'swetv/programs/\\d+'):
     $swetv = new SweTv($db);
     httpResponse($swetv->getPrograms((int) $params[2]));
     break;
 case validateRoute('GET', 'swetv/guess/\\S+'):
     $swetv = new SweTv($db);
     list($channel, $program) = $swetv->guessChannelAndProgram($params[2]);
     httpResponse(array("channel" => $channel, "program" => $program));
     break;
 case validateRoute('GET', 'logs'):
     $logs = new Logs($db, $user);
     list($data, $totalCount) = $logs->get($_GET["limit"], $_GET["index"], $_GET["search"]);
     httpResponse($data, $totalCount);
     break;
 case validateRoute('GET', 'bonus-shop'):
     $bonusShop = new BonusShop($db, $user);
     httpResponse($bonusShop->getShopItems());
     break;
 case validateRoute('POST', 'bonus-shop/\\d+'):
     $mailbox = new Mailbox($db, $user);
     $bonusShop = new BonusShop($db, $user, $mailbox);
     $bonusShop->buy((int) $params[1], $postdata);
All Usage Examples Of SweTv::guessChannelAndProgram