Youtube-dl-WebUI/class/FileHandler.php

130 lines
2.3 KiB
PHP
Raw Normal View History

<?php
class FileHandler
{
private $config = [];
public function __construct()
{
$this->config = require dirname(__DIR__).'/config/config.php';
}
2016-01-21 00:36:34 +08:00
public function listFiles()
{
2016-01-21 00:36:34 +08:00
$files = [];
if(!$this->outuput_folder_exists())
return;
$folder = dirname(__DIR__).'/'.$this->config["outputFolder"].'/';
2016-01-21 00:36:34 +08:00
foreach(glob($folder.'*.*', GLOB_BRACE) as $file)
{
2016-01-21 00:36:34 +08:00
$content = [];
$content["name"] = str_replace($folder, "", $file);
$content["size"] = $this->to_human_filesize(filesize($file));
2016-01-21 00:36:34 +08:00
$files[] = $content;
}
2016-01-21 00:36:34 +08:00
return $files;
}
2016-01-21 05:06:26 +08:00
public function is_log_enabled()
{
return !!($this->config["log"]);
}
2016-01-21 04:55:28 +08:00
public function listLogs()
{
$files = [];
if(!$this->config["log"])
return;
if(!$this->outuput_folder_exists())
return;
$folder = dirname(__DIR__).'/'.$this->config["logFolder"].'/';
2016-01-21 05:02:24 +08:00
foreach(glob($folder.'*.txt', GLOB_BRACE) as $file)
2016-01-21 04:55:28 +08:00
{
$content = [];
$content["name"] = str_replace($folder, "", $file);
$content["size"] = $this->to_human_filesize(filesize($file));
$files[] = $content;
}
return $files;
}
2016-01-21 05:08:07 +08:00
public function delete($id)
{
$folder = dirname(__DIR__).'/'.$this->config["outputFolder"].'/';
$i = 0;
2016-01-21 04:55:28 +08:00
foreach(glob($folder.'*.*', GLOB_BRACE) as $file)
{
if($i == $id)
{
unlink($file);
}
$i++;
}
}
2016-01-21 05:08:07 +08:00
public function deleteLog($id)
2016-01-21 04:55:28 +08:00
{
$folder = dirname(__DIR__).'/'.$this->config["logFolder"].'/';
$i = 0;
2016-01-21 05:02:24 +08:00
foreach(glob($folder.'*.txt', GLOB_BRACE) as $file)
{
if($i == $id)
{
unlink($file);
}
$i++;
}
}
private function outuput_folder_exists()
{
if(!is_dir($this->config['outputFolder']))
{
//Folder doesn't exist
if(!mkdir('./'.$this->config['outputFolder'], 0777))
{
return false; //No folder and creation failed
}
}
return true;
}
public function to_human_filesize($bytes, $decimals = 0)
{
$sz = 'BKMGTP';
$factor = floor((strlen($bytes) - 1) / 3);
return sprintf("%.{$decimals}f", $bytes / pow(1024, $factor)) . @$sz[$factor];
}
public function free_space()
{
return $this->to_human_filesize(disk_free_space($this->config["outputFolder"]));
}
public function get_downloads_folder()
{
return $this->config["outputFolder"];
}
2016-01-21 05:06:26 +08:00
public function get_logs_folder()
{
return $this->config["logFolder"];
}
}
?>