Handle download lists part 2
This commit is contained in:
parent
03cf506132
commit
560e8c6a5f
3 changed files with 26 additions and 21 deletions
|
@ -209,7 +209,7 @@ class FrontController
|
||||||
private function getVideoResponse(Request $request, Response $response, array $params, $password = null)
|
private function getVideoResponse(Request $request, Response $response, array $params, $password = null)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
$video = $this->download->getJSON($params['url'], $this->defaultFormat, $password);
|
$vidarr = $this->download->getJSON($params['url'], $this->defaultFormat, $password);
|
||||||
} catch (PasswordException $e) {
|
} catch (PasswordException $e) {
|
||||||
return $this->password($request, $response);
|
return $this->password($request, $response);
|
||||||
}
|
}
|
||||||
|
@ -222,10 +222,10 @@ class FrontController
|
||||||
$response,
|
$response,
|
||||||
'video.tpl',
|
'video.tpl',
|
||||||
[
|
[
|
||||||
'video' => $video,
|
'vidarr' => $vidarr,
|
||||||
'class' => 'video',
|
'class' => 'video',
|
||||||
'title' => $video->title,
|
'title' => $vidarr[0]->title,
|
||||||
'description' => 'Download "'.$video->title.'" from '.$video->extractor_key,
|
'description' => 'Download "'.$vidarr[0]->title.'" from '.$vidarr[0]->extractor_key,
|
||||||
'protocol' => $protocol,
|
'protocol' => $protocol,
|
||||||
'config' => $this->config,
|
'config' => $this->config,
|
||||||
'canonical' => $this->getCanonicalUrl($request),
|
'canonical' => $this->getCanonicalUrl($request),
|
||||||
|
|
34
js/cast.js
34
js/cast.js
|
@ -2,7 +2,7 @@
|
||||||
/*jslint browser: true, nomen: true */
|
/*jslint browser: true, nomen: true */
|
||||||
var castModule = (function () {
|
var castModule = (function () {
|
||||||
'use strict';
|
'use strict';
|
||||||
var launchBtn, disabledBtn, stopBtn, session;
|
var launchBtn, disabledBtn, stopBtn, session, videoLink;
|
||||||
|
|
||||||
function receiverListener(e) {
|
function receiverListener(e) {
|
||||||
return (e === chrome.cast.ReceiverAvailability.AVAILABLE);
|
return (e === chrome.cast.ReceiverAvailability.AVAILABLE);
|
||||||
|
@ -51,7 +51,7 @@ var castModule = (function () {
|
||||||
|
|
||||||
function onRequestSessionSuccess(e) {
|
function onRequestSessionSuccess(e) {
|
||||||
session = e;
|
session = e;
|
||||||
var videoLink = document.getElementById('video_link'), videoURL = videoLink.dataset.video, mediaInfo = new chrome.cast.media.MediaInfo(videoURL, 'video/' + videoLink.dataset.ext), request = new chrome.cast.media.LoadRequest(mediaInfo);
|
var videoURL = videoLink.dataset.video, mediaInfo = new chrome.cast.media.MediaInfo(videoURL, 'video/' + videoLink.dataset.ext), request = new chrome.cast.media.LoadRequest(mediaInfo);
|
||||||
session.loadMedia(request, onMediaDiscovered.bind(this, 'loadMedia'), onMediaError);
|
session.loadMedia(request, onMediaDiscovered.bind(this, 'loadMedia'), onMediaError);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -59,19 +59,23 @@ var castModule = (function () {
|
||||||
throw e.description;
|
throw e.description;
|
||||||
}
|
}
|
||||||
|
|
||||||
function launchCast() {
|
function launchCast(event) {
|
||||||
|
videoLink = event.target || event.srcElement;
|
||||||
chrome.cast.requestSession(onRequestSessionSuccess, onLaunchError);
|
chrome.cast.requestSession(onRequestSessionSuccess, onLaunchError);
|
||||||
}
|
}
|
||||||
|
|
||||||
function onInitSuccess() {
|
function onInitSuccess() {
|
||||||
launchBtn = document.getElementById('cast_btn_launch');
|
launchBtn = document.getElementsByClassName('cast_btn_launch');
|
||||||
disabledBtn = document.getElementById('cast_disabled');
|
disabledBtn = document.getElementsByClassName('cast_disabled');
|
||||||
stopBtn = document.getElementById('cast_btn_stop');
|
stopBtn = document.getElementsByClassName('cast_btn_stop');
|
||||||
if (launchBtn) {
|
if (launchBtn.length > 0) {
|
||||||
disabledBtn.classList.add('cast_hidden');
|
var i;
|
||||||
launchBtn.classList.remove('cast_hidden');
|
for (i = 0; i < launchBtn.length; i++) {
|
||||||
launchBtn.addEventListener('click', launchCast, false);
|
disabledBtn[i].classList.add('cast_hidden');
|
||||||
stopBtn.addEventListener('click', stopCast, false);
|
launchBtn[i].classList.remove('cast_hidden');
|
||||||
|
launchBtn[i].addEventListener('click', launchCast, false);
|
||||||
|
stopBtn[i].addEventListener('click', stopCast, false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -94,11 +98,11 @@ var castModule = (function () {
|
||||||
|
|
||||||
return {
|
return {
|
||||||
init: function () {
|
init: function () {
|
||||||
var intro = document.getElementById('download_intro');
|
var intro = document.getElementsByClassName('download_intro'), i;
|
||||||
if (intro) {
|
for (i = 0; i < intro.length; i++) {
|
||||||
intro.insertAdjacentHTML('beforeend', '<img class="cast_icon" id="cast_disabled" src="img/ic_media_route_disabled_holo_light.png" alt="" title="Google Cast is not supported on this browser." /> <img class="cast_btn cast_hidden cast_icon" id="cast_btn_launch" src="img/ic_media_route_off_holo_light.png" title="Cast to ChromeCast" alt="Google Cast™" /> <img src="img/ic_media_route_on_holo_light.png" alt="Casting to ChromeCast…" title="Stop casting" id="cast_btn_stop" class="cast_btn cast_hidden cast_icon" />');
|
intro[i].insertAdjacentHTML('beforeend', '<img class="cast_disabled cast_icon" id="cast_disabled'+i+'" src="img/ic_media_route_disabled_holo_light.png" alt="" title="Google Cast is not supported on this browser." /> <img class="cast_btn_launch cast_btn cast_hidden cast_icon" id="cast_btn_launch'+i+'" src="img/ic_media_route_off_holo_light.png" title="Cast to ChromeCast" alt="Google Cast™" /> <img src="img/ic_media_route_on_holo_light.png" alt="Casting to ChromeCast…" title="Stop casting" id="cast_btn_stop'+i+'" class="cast_btn_stop cast_btn cast_hidden cast_icon" />');
|
||||||
window.__onGCastApiAvailable = loadCastApi;
|
|
||||||
}
|
}
|
||||||
|
window.__onGCastApiAvailable = loadCastApi;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}());
|
}());
|
||||||
|
|
|
@ -4,8 +4,9 @@
|
||||||
<div class="main">
|
<div class="main">
|
||||||
{include file="inc/logo.tpl"}
|
{include file="inc/logo.tpl"}
|
||||||
{foreach $vidarr as $video}
|
{foreach $vidarr as $video}
|
||||||
<p id="download_intro">You are going to download<i itemprop="name">
|
<p id="download_intro{$video@index}" class="download_intro">You are going to download<i itemprop="name">
|
||||||
<a itemprop="url" id="video_link"
|
<a itemprop="url" id="video_link{$video@index}"
|
||||||
|
class="video_link"
|
||||||
data-ext="{$video->ext}"
|
data-ext="{$video->ext}"
|
||||||
data-video="{$video->url|escape}"
|
data-video="{$video->url|escape}"
|
||||||
href="{$video->webpage_url}">
|
href="{$video->webpage_url}">
|
||||||
|
|
Loading…
Reference in a new issue