Merge pull request #35 from pmoranga/fix_absolute_path

Fix absolute path, and use one provider for the path. Closes #33
This commit is contained in:
p1rox 2016-04-28 12:21:28 +02:00
commit fd868e4e72
2 changed files with 17 additions and 19 deletions

View file

@ -1,4 +1,5 @@
<?php <?php
include_once('FileHandler.php');
class Downloader class Downloader
{ {
@ -11,16 +12,8 @@ class Downloader
public function __construct($post, $audio_only) public function __construct($post, $audio_only)
{ {
$this->config = require dirname(__DIR__).'/config/config.php'; $this->config = require dirname(__DIR__).'/config/config.php';
//this allows to use absolute paths $this->download_path = (new FileHandler())->get_downloads_folder();
if(strpos($this->config["outputFolder"], "/") === 0)
{
$this->download_path = $this->config["outputFolder"];
}
else
{
$this->download_path = dirname(__DIR__).'/'.$this->config["outputFolder"];
}
$this->audio_only = $audio_only; $this->audio_only = $audio_only;
$this->urls = explode(",", $post); $this->urls = explode(",", $post);
@ -118,7 +111,7 @@ class Downloader
} }
$config = require dirname(__DIR__).'/config/config.php'; $config = require dirname(__DIR__).'/config/config.php';
$folder = dirname(__DIR__).'/'.$config["outputFolder"].'/'; $folder = $this->download_path;
foreach(glob($folder.'*.part') as $file) foreach(glob($folder.'*.part') as $file)
{ {
@ -192,7 +185,7 @@ class Downloader
private function do_download() private function do_download()
{ {
$cmd = "youtube-dl"; $cmd = "youtube-dl";
$cmd .= " -o ".$this->config["outputFolder"]."/"; $cmd .= " -o ".$this->download_path."/";
$cmd .= escapeshellarg("%(title)s-%(uploader)s.%(ext)s"); $cmd .= escapeshellarg("%(title)s-%(uploader)s.%(ext)s");
if($this->audio_only) if($this->audio_only)

View file

@ -18,7 +18,7 @@ class FileHandler
if(!$this->outuput_folder_exists()) if(!$this->outuput_folder_exists())
return; return;
$folder = dirname(__DIR__).'/'.$this->config["outputFolder"].'/'; $folder = $this->get_downloads_folder().'/';
foreach(glob($folder.'*'.$this->videos_ext, GLOB_BRACE) as $file) foreach(glob($folder.'*'.$this->videos_ext, GLOB_BRACE) as $file)
{ {
@ -39,7 +39,7 @@ class FileHandler
if(!$this->outuput_folder_exists()) if(!$this->outuput_folder_exists())
return; return;
$folder = dirname(__DIR__).'/'.$this->config["outputFolder"].'/'; $folder = $this->get_downloads_folder().'/';
foreach(glob($folder.'*'.$this->musics_ext, GLOB_BRACE) as $file) foreach(glob($folder.'*'.$this->musics_ext, GLOB_BRACE) as $file)
{ {
@ -55,7 +55,7 @@ class FileHandler
public function delete($id, $type) public function delete($id, $type)
{ {
$folder = dirname(__DIR__).'/'.$this->config["outputFolder"].'/'; $folder = $this->get_downloads_folder().'/';
$i = 0; $i = 0;
if($type === 'v') if($type === 'v')
@ -83,10 +83,10 @@ class FileHandler
private function outuput_folder_exists() private function outuput_folder_exists()
{ {
if(!is_dir($this->config['outputFolder'])) if(!is_dir($this->get_downloads_folder()))
{ {
//Folder doesn't exist //Folder doesn't exist
if(!mkdir('./'.$this->config['outputFolder'], 0777)) if(!mkdir($this->get_downloads_folder(),0777))
{ {
return false; //No folder and creation failed return false; //No folder and creation failed
} }
@ -104,12 +104,17 @@ class FileHandler
public function free_space() public function free_space()
{ {
return $this->to_human_filesize(disk_free_space($this->config["outputFolder"])); return $this->to_human_filesize(disk_free_space($this->get_downloads_folder()));
} }
public function get_downloads_folder() public function get_downloads_folder()
{ {
return $this->config["outputFolder"]; $path = $this->config["outputFolder"];
if(strpos($path , "/") !== 0)
{
$path = dirname(__DIR__).'/' . $path;
}
return $path;
} }
} }