mirror of
https://github.com/DanielnetoDotCom/YouPHPTube
synced 2025-10-03 09:49:28 +02:00
Auto create a playlist when bulk embed
This commit is contained in:
parent
20205359cd
commit
3b708cabe3
3 changed files with 74 additions and 22 deletions
|
@ -19,6 +19,33 @@ class PlayList extends ObjectYPT {
|
|||
return 'playlists';
|
||||
}
|
||||
|
||||
static protected function getFromDbFromName($name) {
|
||||
global $global;
|
||||
$sql = "SELECT * FROM " . static::getTableName() . " WHERE name = ? users_id = ". User::getId()." LIMIT 1";
|
||||
$res = sqlDAL::readSql($sql, "s", array($name));
|
||||
$data = sqlDAL::fetchAssoc($res);
|
||||
sqlDAL::close($res);
|
||||
if ($res) {
|
||||
$row = $data;
|
||||
} else {
|
||||
$row = false;
|
||||
}
|
||||
return $row;
|
||||
}
|
||||
|
||||
function loadFromName($name) {
|
||||
if(!User::isLogged()){
|
||||
return false;
|
||||
}
|
||||
$row = self::getFromDbFromName($name);
|
||||
if (empty($row))
|
||||
return false;
|
||||
foreach ($row as $key => $value) {
|
||||
$this->$key = $value;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @global type $global
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* Convert ISO 8601 values like PT15M33S
|
||||
* to a total value of seconds.
|
||||
*
|
||||
* @param string $ISO8601
|
||||
*/
|
||||
function ISO8601ToSeconds($ISO8601)
|
||||
{
|
||||
function ISO8601ToSeconds($ISO8601) {
|
||||
preg_match('/\d{1,2}[H]/', $ISO8601, $hours);
|
||||
preg_match('/\d{1,2}[M]/', $ISO8601, $minutes);
|
||||
preg_match('/\d{1,2}[S]/', $ISO8601, $seconds);
|
||||
|
@ -30,10 +30,11 @@ function ISO8601ToSeconds($ISO8601)
|
|||
return $toltalSeconds;
|
||||
}
|
||||
|
||||
function ISO8601ToDuration($ISO8601){
|
||||
function ISO8601ToDuration($ISO8601) {
|
||||
$seconds = ISO8601ToSeconds($ISO8601);
|
||||
return secondsToVideoTime($seconds);
|
||||
}
|
||||
|
||||
//error_reporting(0);
|
||||
header('Content-Type: application/json');
|
||||
if (!isset($global['systemRootPath'])) {
|
||||
|
@ -43,17 +44,27 @@ if (!isset($global['systemRootPath'])) {
|
|||
$obj = new stdClass();
|
||||
$obj->error = true;
|
||||
$obj->msg = array();
|
||||
$obj->playListId = 0;
|
||||
|
||||
|
||||
$objo = YouPHPTubePlugin::getObjectDataIfEnabled('BulkEmbed');
|
||||
if(empty($objo) || ($objo->onlyAdminCanBulkEmbed && !User::isAdmin())){
|
||||
if (empty($objo) || ($objo->onlyAdminCanBulkEmbed && !User::isAdmin())) {
|
||||
$obj->msg[] = __("Permission denied");
|
||||
$obj->msg[] = "Plugin disabled";
|
||||
}else if (!User::canUpload()) {
|
||||
} else if (!User::canUpload()) {
|
||||
$obj->msg[] = __("Permission denied");
|
||||
$obj->msg[] = "User can not upload videos";
|
||||
} else if (!empty($_POST['itemsToSave'])) {
|
||||
|
||||
if (!empty($_POST['playListName'])) {
|
||||
require_once $global['systemRootPath'] . 'objects/playlist.php';
|
||||
$playList = new PlayList(0);
|
||||
$playList->loadFromName($_POST['playListName']);
|
||||
$playList->setName($_POST['playListName']);
|
||||
$playList->setStatus('p');
|
||||
$obj->playListId = $playList->save();
|
||||
}
|
||||
|
||||
foreach ($_POST['itemsToSave'] as $value) {
|
||||
foreach ($value as $key => $value2) {
|
||||
$value[$key] = xss_esc($value2);
|
||||
|
@ -82,6 +93,10 @@ if(empty($objo) || ($objo->onlyAdminCanBulkEmbed && !User::isAdmin())){
|
|||
}
|
||||
}
|
||||
|
||||
if(!empty($resp) && !empty($obj->playListId)){
|
||||
$playList = new PlayList($obj->playListId);
|
||||
$playList->addVideo($resp, true);
|
||||
}
|
||||
|
||||
YouPHPTubePlugin::afterNewVideo($resp);
|
||||
|
||||
|
|
|
@ -102,7 +102,7 @@ $obj = YouPHPTubePlugin::getObjectData("BulkEmbed");
|
|||
<form id="search-form" name="search-form" onsubmit="return search()">
|
||||
<div id="custom-search-input">
|
||||
<div class="input-group col-md-12">
|
||||
<input type="search" id="query" class="form-control input-lg" placeholder="Search YouTube" />
|
||||
<input type="search" id="query" class="form-control input-lg" placeholder="Search YouTube / PlayList URL" />
|
||||
<span class="input-group-btn">
|
||||
<button class="btn btn-info btn-lg" type="button">
|
||||
<i class="glyphicon glyphicon-search"></i>
|
||||
|
@ -133,6 +133,7 @@ $obj = YouPHPTubePlugin::getObjectData("BulkEmbed");
|
|||
<script>
|
||||
|
||||
var gapikey = '<?php echo $obj->API_KEY; ?>';
|
||||
var playListName = '';
|
||||
|
||||
$(function () {
|
||||
$('#search-form').submit(function (e) {
|
||||
|
@ -179,7 +180,7 @@ $obj = YouPHPTubePlugin::getObjectData("BulkEmbed");
|
|||
}
|
||||
$.ajax({
|
||||
url: '<?php echo $global['webSiteRootURL']; ?>plugin/BulkEmbed/save.json.php',
|
||||
data: {"itemsToSave": itemsToSave},
|
||||
data: {"itemsToSave": itemsToSave, playListName: playListName},
|
||||
type: 'post',
|
||||
success: function (response) {
|
||||
if (!response.error) {
|
||||
|
@ -236,6 +237,13 @@ $obj = YouPHPTubePlugin::getObjectData("BulkEmbed");
|
|||
var playListId = getPlayListId(q);
|
||||
|
||||
if (playListId) {
|
||||
$.get(
|
||||
"https://www.googleapis.com/youtube/v3/playlists", {
|
||||
part: 'snippet',
|
||||
key: gapikey,
|
||||
id: playListId
|
||||
}, function (data) {
|
||||
playListName = data.snippet.title;
|
||||
$.get(
|
||||
"https://www.googleapis.com/youtube/v3/playlistItems", {
|
||||
part: 'snippet, id',
|
||||
|
@ -248,7 +256,9 @@ $obj = YouPHPTubePlugin::getObjectData("BulkEmbed");
|
|||
}, function (data) {
|
||||
processData(data);
|
||||
});
|
||||
});
|
||||
} else {
|
||||
playListName = '';
|
||||
// run get request on API
|
||||
$.get(
|
||||
"https://www.googleapis.com/youtube/v3/search", {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue