1
0
Fork 0
mirror of https://github.com/DanielnetoDotCom/YouPHPTube synced 2025-10-03 17:59:55 +02:00

Auto create a playlist when bulk embed

This commit is contained in:
daniel 2019-08-15 14:09:51 -03:00
parent 20205359cd
commit 3b708cabe3
3 changed files with 74 additions and 22 deletions

View file

@ -19,6 +19,33 @@ class PlayList extends ObjectYPT {
return 'playlists'; 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 * @global type $global

View file

@ -1,12 +1,12 @@
<?php <?php
/** /**
* Convert ISO 8601 values like PT15M33S * Convert ISO 8601 values like PT15M33S
* to a total value of seconds. * to a total value of seconds.
* *
* @param string $ISO8601 * @param string $ISO8601
*/ */
function ISO8601ToSeconds($ISO8601) function ISO8601ToSeconds($ISO8601) {
{
preg_match('/\d{1,2}[H]/', $ISO8601, $hours); preg_match('/\d{1,2}[H]/', $ISO8601, $hours);
preg_match('/\d{1,2}[M]/', $ISO8601, $minutes); preg_match('/\d{1,2}[M]/', $ISO8601, $minutes);
preg_match('/\d{1,2}[S]/', $ISO8601, $seconds); preg_match('/\d{1,2}[S]/', $ISO8601, $seconds);
@ -30,10 +30,11 @@ function ISO8601ToSeconds($ISO8601)
return $toltalSeconds; return $toltalSeconds;
} }
function ISO8601ToDuration($ISO8601){ function ISO8601ToDuration($ISO8601) {
$seconds = ISO8601ToSeconds($ISO8601); $seconds = ISO8601ToSeconds($ISO8601);
return secondsToVideoTime($seconds); return secondsToVideoTime($seconds);
} }
//error_reporting(0); //error_reporting(0);
header('Content-Type: application/json'); header('Content-Type: application/json');
if (!isset($global['systemRootPath'])) { if (!isset($global['systemRootPath'])) {
@ -43,17 +44,27 @@ if (!isset($global['systemRootPath'])) {
$obj = new stdClass(); $obj = new stdClass();
$obj->error = true; $obj->error = true;
$obj->msg = array(); $obj->msg = array();
$obj->playListId = 0;
$objo = YouPHPTubePlugin::getObjectDataIfEnabled('BulkEmbed'); $objo = YouPHPTubePlugin::getObjectDataIfEnabled('BulkEmbed');
if(empty($objo) || ($objo->onlyAdminCanBulkEmbed && !User::isAdmin())){ if (empty($objo) || ($objo->onlyAdminCanBulkEmbed && !User::isAdmin())) {
$obj->msg[] = __("Permission denied"); $obj->msg[] = __("Permission denied");
$obj->msg[] = "Plugin disabled"; $obj->msg[] = "Plugin disabled";
}else if (!User::canUpload()) { } else if (!User::canUpload()) {
$obj->msg[] = __("Permission denied"); $obj->msg[] = __("Permission denied");
$obj->msg[] = "User can not upload videos"; $obj->msg[] = "User can not upload videos";
} else if (!empty($_POST['itemsToSave'])) { } 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 ($_POST['itemsToSave'] as $value) {
foreach ($value as $key => $value2) { foreach ($value as $key => $value2) {
$value[$key] = xss_esc($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); YouPHPTubePlugin::afterNewVideo($resp);

View file

@ -102,7 +102,7 @@ $obj = YouPHPTubePlugin::getObjectData("BulkEmbed");
<form id="search-form" name="search-form" onsubmit="return search()"> <form id="search-form" name="search-form" onsubmit="return search()">
<div id="custom-search-input"> <div id="custom-search-input">
<div class="input-group col-md-12"> <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"> <span class="input-group-btn">
<button class="btn btn-info btn-lg" type="button"> <button class="btn btn-info btn-lg" type="button">
<i class="glyphicon glyphicon-search"></i> <i class="glyphicon glyphicon-search"></i>
@ -133,6 +133,7 @@ $obj = YouPHPTubePlugin::getObjectData("BulkEmbed");
<script> <script>
var gapikey = '<?php echo $obj->API_KEY; ?>'; var gapikey = '<?php echo $obj->API_KEY; ?>';
var playListName = '';
$(function () { $(function () {
$('#search-form').submit(function (e) { $('#search-form').submit(function (e) {
@ -179,7 +180,7 @@ $obj = YouPHPTubePlugin::getObjectData("BulkEmbed");
} }
$.ajax({ $.ajax({
url: '<?php echo $global['webSiteRootURL']; ?>plugin/BulkEmbed/save.json.php', url: '<?php echo $global['webSiteRootURL']; ?>plugin/BulkEmbed/save.json.php',
data: {"itemsToSave": itemsToSave}, data: {"itemsToSave": itemsToSave, playListName: playListName},
type: 'post', type: 'post',
success: function (response) { success: function (response) {
if (!response.error) { if (!response.error) {
@ -236,6 +237,13 @@ $obj = YouPHPTubePlugin::getObjectData("BulkEmbed");
var playListId = getPlayListId(q); var playListId = getPlayListId(q);
if (playListId) { if (playListId) {
$.get(
"https://www.googleapis.com/youtube/v3/playlists", {
part: 'snippet',
key: gapikey,
id: playListId
}, function (data) {
playListName = data.snippet.title;
$.get( $.get(
"https://www.googleapis.com/youtube/v3/playlistItems", { "https://www.googleapis.com/youtube/v3/playlistItems", {
part: 'snippet, id', part: 'snippet, id',
@ -248,7 +256,9 @@ $obj = YouPHPTubePlugin::getObjectData("BulkEmbed");
}, function (data) { }, function (data) {
processData(data); processData(data);
}); });
});
} else { } else {
playListName = '';
// run get request on API // run get request on API
$.get( $.get(
"https://www.googleapis.com/youtube/v3/search", { "https://www.googleapis.com/youtube/v3/search", {