Merge branch 'master' into master

This commit is contained in:
Mohamed-Ismail Mejri
2022-04-25 13:33:53 +01:00
committed by GitHub
24 changed files with 389 additions and 417 deletions

View File

@@ -6,7 +6,6 @@ use OCA\NCDownloader\Tools\Counters;
use OCA\NCDownloader\Tools\DbHelper;
use OCA\NCDownloader\Tools\folderScan;
use OCA\NCDownloader\Tools\Helper;
use OCA\NCDownloader\Tools\Settings;
use OCP\AppFramework\Controller;
use OCP\AppFramework\Http\JSONResponse;
use OCP\Files\IRootFolder;
@@ -32,8 +31,7 @@ class Aria2Controller extends Controller
$this->l10n = $IL10N;
$this->rootFolder = $rootFolder;
$this->urlGenerator = \OC::$server->getURLGenerator();
$this->settings = new Settings($UserId);
$this->downloadDir = $this->settings->get('ncd_downloader_dir') ?? "/Downloads";
$this->downloadDir = Helper::getDownloadDir();
OC_Util::setupFS();
//$this->config = \OC::$server->getAppConfig();
$this->aria2 = $aria2;
@@ -122,15 +120,6 @@ class Aria2Controller extends Controller
$data = $this->aria2->start();
return $data;
}
/**
* @NoAdminRequired
* @NoCSRFRequired
*/
public function Update()
{
$resp = folderScan::create()->scan();
return new JSONResponse($resp);
}
private function createActionItem($name, $path)
{
@@ -235,7 +224,7 @@ class Aria2Controller extends Controller
$tmp = [];
$actions = [];
$filename = sprintf('<a class="download-file-folder" href="%s">%s</a>', $folderLink, $filename);
$fileInfo = sprintf('<button id="icon-clipboard" class="icon-clipboard" data-text="%s"></button> %s | %s', $extra ? $extra['link'] : 'nolink', $total, date("Y-m-d H:i:s", $timestamp));
$fileInfo = sprintf('<button id="icon-clipboard" class="icon-clipboard" data-text="%s"></button> %s | %s', $extra["link"] ?? 'nolink', $total, date("Y-m-d H:i:s", $timestamp));
$tmp['filename'] = array($filename, $fileInfo);
if ($this->aria2->methodName === "tellStopped") {

View File

@@ -11,10 +11,11 @@ use OCA\NCDownloader\Tools\Youtube;
use OCP\AppFramework\Controller;
use OCP\AppFramework\Http\JSONResponse;
use OCP\AppFramework\Http\TemplateResponse;
//use OCP\Files\IRootFolder;
use OCP\IL10N;
//use OCP\Files\IRootFolder;
use OCP\IRequest;
use OC_Util;
use OCA\NCDownloader\Tools\folderScan;
class MainController extends Controller
{
@@ -27,6 +28,7 @@ class MainController extends Controller
public function __construct($appName, IRequest $request, $UserId, IL10N $IL10N, Aria2 $aria2, Youtube $youtube)
{
parent::__construct($appName, $request);
$this->appName = $appName;
$this->uid = $UserId;
@@ -38,10 +40,9 @@ class MainController extends Controller
$this->dbconn = new DbHelper();
$this->counters = new Counters($aria2, $this->dbconn, $UserId);
$this->youtube = $youtube;
$this->settings = new Settings($this->uid);
$this->isAdmin = \OC_User::isAdminUser($this->uid);
$this->hideError = $this->settings->get("ncd_hide_errors", false);
$this->disable_bt_nonadmin = $this->settings->setType($this->settings::TYPE['SYSTEM'])->get("ncd_disable_bt", false);
$this->hideError = Helper::getSettings("ncd_hide_errors", false);
$this->disable_bt_nonadmin = Helper::getSettings("ncd_disable_bt", false, Settings::TYPE["SYSTEM"]);
$this->accessDenied = $this->l10n->t("Sorry,only admin users can download files via BT!");
}
/**
@@ -56,7 +57,6 @@ class MainController extends Controller
// OC_Util::addStyle($this->appName, 'table');
$params = $this->buildParams();
$response = new TemplateResponse($this->appName, 'Index', $params);
return $response;
}
@@ -124,6 +124,10 @@ class MainController extends Controller
*/
public function Download()
{
$dlDir = $this->aria2->getDownloadDir();
if (!is_writable($dlDir)) {
return new JSONResponse(['error' => sprintf("%s is not writable", $dlDir)]);
}
$url = trim($this->request->getParam('text-input-value'));
if (Helper::isMagnet($url)) {
if ($this->disable_bt_nonadmin && !($this->isAdmin)) {
@@ -192,4 +196,14 @@ class MainController extends Controller
return new JSONResponse($resp);
}
/**
* @NoAdminRequired
* @NoCSRFRequired
*/
public function scanFolder()
{
$resp = folderScan::create()->scan();
return new JSONResponse($resp);
}
}

View File

@@ -111,7 +111,7 @@ class SettingsController extends Controller
{
$saved = json_decode($this->settings->get("custom_youtube_dl_settings"), 1);
$params = $this->request->getParams();
foreach ($data as $key => $value) {
foreach ($params as $key => $value) {
unset($saved[$key]);
}
$resp = $this->settings->save("custom_youtube_dl_settings", json_encode($saved));

View File

@@ -5,7 +5,6 @@ use OCA\NCDownloader\Tools\Aria2;
use OCA\NCDownloader\Tools\DbHelper;
use OCA\NCDownloader\Tools\folderScan;
use OCA\NCDownloader\Tools\Helper;
use OCA\NCDownloader\Tools\Settings;
use OCA\NCDownloader\Tools\Youtube;
use OCP\AppFramework\Controller;
use OCP\AppFramework\Http\JSONResponse;
@@ -27,8 +26,7 @@ class YoutubeController extends Controller
$this->uid = $UserId;
$this->urlGenerator = \OC::$server->getURLGenerator();
$this->l10n = $IL10N;
$this->settings = new Settings($UserId);
$this->downloadDir = $this->settings->get('ncd_downloader_dir') ?? "/Downloads";
$this->downloadDir = Helper::getDownloadDir();
$this->dbconn = new DbHelper();
$this->youtube = $youtube;
$this->aria2 = $aria2;
@@ -77,7 +75,10 @@ class YoutubeController extends Controller
*/
public function Download()
{
$params = array();
$dlDir = $this->youtube->getDownloadDir();
if (!is_writable($dlDir)) {
return new JSONResponse(['error' => sprintf("%s is not writable", $dlDir)]);
}
$url = trim($this->request->getParam('text-input-value'));
$yt = $this->youtube;
if (in_array($this->request->getParam('extension'), $this->audio_extensions)) {
@@ -119,7 +120,7 @@ class YoutubeController extends Controller
}
$row = $this->dbconn->getByGid($gid);
$data = $this->dbconn->getExtra($value["data"]);;
$data = $this->dbconn->getExtra($row["data"]);
if (!isset($data['pid'])) {
if ($this->dbconn->deleteByGid($gid)) {
$msg = sprintf("%s is deleted from database!", $gid);
@@ -204,9 +205,9 @@ class YoutubeController extends Controller
private function installYTD()
{
try {
$filename = Helper::getFileName($yt->installUrl());
$yt->setDownloadDir($this->dataDir . "/bin");
$resp = $this->Save($yt->installUrl(), $filename);
$filename = Helper::getFileName($this->installUrl());
$this->setDownloadDir($this->dataDir . "/bin");
$resp = $this->Save($this->installUrl(), $filename);
return $resp;
} catch (\Exception $e) {
return ['error' => $e->getMessage()];