improved user experience for novice user(including support for standalone aria2c and ytdl binaries);support for snap installation;close #19

This commit is contained in:
huangjx
2022-02-21 15:50:42 +08:00
parent 20b3e25369
commit 8e5ebdd8e7
11 changed files with 88 additions and 18 deletions

View File

@@ -18,6 +18,7 @@ class Youtube
private $outTpl = "%(id)s-%(title).64s.%(ext)s";
private $defaultDir = "/tmp/downloads";
private $env = [];
private $bin;
public function __construct(array $options)
{
@@ -27,7 +28,7 @@ class Youtube
public function init(array $options)
{
extract($options);
if (isset($binary) && @is_executable($binary)) {
if (isset($binary) && $this->isExecutable($binary)) {
$this->bin = $binary;
} else {
$this->bin = Helper::findBinaryPath('youtube-dl', __DIR__ . "/../../bin/youtube-dl");
@@ -157,7 +158,7 @@ class Youtube
$data = ['link' => $url];
$process->run(function ($type, $buffer) use ($data, $process) {
if (Process::ERR === $type) {
// $this->onError($buffer);
// $this->onError($buffer);
} else {
$data['pid'] = $process->getPid();
$this->onOutput($buffer, $data);
@@ -235,7 +236,16 @@ class Youtube
}
public function isInstalled()
{
return (bool) (isset($this->bin) && @is_executable($this->bin));
return @is_file($this->bin);
}
public function isExecutable()
{
return @is_executable($this->bin);
}
public function getBin()
{
return $this->bin;
}
public static function install()
{