added the option for restarting stalled downloads
This commit is contained in:
@@ -10,6 +10,7 @@ return [
|
||||
['name' => 'Youtube#Index', 'url' => '/youtube/get', 'verb' => 'POST'],
|
||||
['name' => 'Youtube#Download', 'url' => '/youtube/new', 'verb' => 'POST'],
|
||||
['name' => 'Youtube#Delete', 'url' => '/youtube/delete', 'verb' => 'POST'],
|
||||
['name' => 'Youtube#Redownload', 'url' => '/youtube/redownload', 'verb' => 'POST'],
|
||||
['name' => 'Search#Execute', 'url' => '/search', 'verb' => 'POST'],
|
||||
// AdminSettings
|
||||
['name' => 'Settings#Admin', 'url' => '/admin/save', 'verb' => 'POST'],
|
||||
|
||||
@@ -65,6 +65,9 @@ div .number {
|
||||
.icon-unpause {
|
||||
background-image: url('../img/play.svg');
|
||||
}
|
||||
.icon-refresh {
|
||||
background-image: url('../img/refresh.svg');
|
||||
}
|
||||
|
||||
#ncdownloader-action-links-container {
|
||||
position: relative;
|
||||
|
||||
@@ -59,7 +59,8 @@ class YoutubeController extends Controller
|
||||
$path = $this->urlGenerator->linkToRoute('ncdownloader.Youtube.Delete');
|
||||
$tmp['actions'][] = ['name' => 'delete', 'path' => $path];
|
||||
} else {
|
||||
$tmp['actions'][] = ['name' => 'disabled', 'path' => '#'];
|
||||
$path = $this->urlGenerator->linkToRoute('ncdownloader.Youtube.Redownload');
|
||||
$tmp['actions'][] = ['name' => 'refresh', 'path' => $path];
|
||||
}
|
||||
$tmp['data_gid'] = $value['gid'] ?? 0;
|
||||
array_push($resp['row'], $tmp);
|
||||
@@ -115,6 +116,25 @@ class YoutubeController extends Controller
|
||||
|
||||
}
|
||||
}
|
||||
/**
|
||||
* @NoAdminRequired
|
||||
* @NoCSRFRequired
|
||||
*/
|
||||
public function Redownload()
|
||||
{
|
||||
$gid = $this->request->getParam('gid');
|
||||
if (!$gid) {
|
||||
return new JSONResponse(['error' => "no gid value is received!"]);
|
||||
}
|
||||
$row = $this->dbconn->getByGid($gid);
|
||||
$data = unserialize($row['data']);
|
||||
if (!empty($data['link'])) {
|
||||
$resp = $this->youtube->forceIPV4()->download($data['link']);
|
||||
folderScan::sync();
|
||||
return new JSONResponse($resp);
|
||||
}
|
||||
return new JSONResponse(['error' => "no link"]);
|
||||
}
|
||||
|
||||
private function _download($url, $filename = null)
|
||||
{
|
||||
|
||||
@@ -14,7 +14,7 @@ class Youtube
|
||||
private $format = 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best';
|
||||
private $options = [];
|
||||
private $downloadDir;
|
||||
private $timeout = 60 * 60 * 3; //3 hours
|
||||
private $timeout = 60 * 60 * 10; //10 hours
|
||||
private $outTpl = "/%(id)s-%(title)s.%(ext)s";
|
||||
private $defaultDir = "/tmp/downloads";
|
||||
private $env = [];
|
||||
|
||||
@@ -47,7 +47,7 @@ const helper = {
|
||||
|
||||
return magnetURI.test(url.trim());
|
||||
},
|
||||
message: function (message,duration = 5000) {
|
||||
message: function (message,duration = 3000) {
|
||||
Toastify({
|
||||
text: message,
|
||||
duration:duration,
|
||||
|
||||
@@ -72,7 +72,6 @@ const inputHandler = (event) => {
|
||||
|
||||
let inputData = helper.getData('form-input-wrapper');
|
||||
let inputValue = inputData.form_input_text;
|
||||
|
||||
if (inputData.type !== 'search' && !helper.isURL(inputValue) && !helper.isMagnetURI(inputValue)) {
|
||||
helper.message(t("ncdownloader", "Invalid url"));
|
||||
return;
|
||||
|
||||
@@ -92,7 +92,8 @@ class ncTable {
|
||||
if (!value.name) {
|
||||
return;
|
||||
}
|
||||
container.appendChild(this.createActionButton(value.name, value.path));
|
||||
let data = value.data || '';
|
||||
container.appendChild(this.createActionButton(value.name, value.path,data));
|
||||
})
|
||||
rowItem.appendChild(container);
|
||||
row.appendChild(rowItem);
|
||||
@@ -126,10 +127,11 @@ class ncTable {
|
||||
|
||||
}
|
||||
|
||||
createActionButton(name, path) {
|
||||
createActionButton(name, path, data) {
|
||||
let button = document.createElement("button");
|
||||
button.classList.add("icon-" + name);
|
||||
button.setAttribute("path", path);
|
||||
button.setAttribute("data", data);
|
||||
return button;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user